DataX入门教学
阅读原文时间:2023年08月22日阅读:4

https://www.bilibili.com/video/BV1H44y1x76X/?p=5&spm_id_from=pageDriver&vd_source=5fcc0d714ffdcc521fdaa5ef49391aef

1、环境

1.1:本地安装好 jdk 、 maven 、 python 的基础环境

    java版本:java 20.0.1 2023-04-18
    maven:Apache Maven 3.9.2
    python:Python 3.11.4
    dataX:DataX-datax_v202303.zip
    dataX-Web:2.1.2
    下载地址:
            DataX:              https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202303/datax.tar.gz
            DataX-Web:          https://codeload.github.com/WeiYe-Jing/datax-web/zip/refs/tags/v-2.1.2
            DatatX_python3:     https://codeload.github.com/HxYyWw/DatatX_python3/zip/refs/heads/master
            python:             https://www.python.org/ftp/python/3.11.4/python-3.11.4-embed-amd64.zip
            Java:               https://download.oracle.com/java/20/latest/jdk-20_windows-x64_bin.msi
            maven:              https://dlcdn.apache.org/maven/maven-3/3.9.2/binaries/apache-maven-3.9.2-bin.zip

    安装参考文档:https://blog.csdn.net/m0_46517444/article/details/118723643

1.2:在DataX的官网上下载压缩包,然后解压到自定义的文件夹里面

    官网地址:https://github.com/alibaba/DataX

1.3:win +R 输入cmd命令。进入命令行模式[使用管理员模式]

    本地安装路径:D:\Work\DataX\datax
    防止乱码执行命令: CHCP 65001
    使用命令进入bin目录:cd D:\Work\DataX\datax\bin
    执行脚本:python datax.py …/job/json/job.json   也可以
    执行脚本:python datax.py D:\Work\DataX\datax\job\job.json

1.4:查看模板

    命令行:python datax.py -r streamreader -w streamwriter

1.5:编写脚本,

    将脚本存放到datax\datax\job目录底下,
    然后执行后python datax.py datax\job\你的脚本.json运行
    脚本格式信息可以去 https://github.com/alibaba/DataX/ 查看

备注:

   本地使用的python环境是python3.11.4,

请到 https://github.com/HxYyWw/DatatX_python3/tree/master

下载对应的三个.py文件代替datax文件夹中bin目录下的三个.py文件即可。

2、入门使用DataX

2.1 查看模板命令

    python datax.py -r mysqlreader -w mysqlwriter

2.2 使用案例

 {
 "job": {
     "setting": {
         "speed": {
             "channel": 并发数
             }
         },
         "content": [
             {
             "reader": {
               "name": "固定的名字",
                     "parameter": {
                         "username": "账号",
                         "password": "密码",
                         "column": [
                             "字段1",
                             "字段2",
                             "字段3"
                             ps:[*]表示所有列,但是不建议使用
                         ],
                         "splitPk": "分片字段,丢给task,所以必须是整形。一般用主键即可(非必须)",
                         "connection": [
                             {
                                 "table": [ "表"],
                                 "jdbcUrl": [  "数据库连接地址"],
                                 "querySql":["这里可以写查询数据的sql语句,但是如果这里写了,则不允许再配置table,否则会报错(非必须,table和querySql只能存在一个)"]
                             }
                         ],
                         "where":"过滤条件"
                     }
                 },
                 "writer": {
                     "name": "固定的名字",
                     "parameter": {
                         "writeMode": "写入策略",
                         "username": "账户",
                         "password": "密码",
                         "column": [
                             "字段1",
                             "字段2",
                             "字段3"
                         ],
                         "session": [
                             "DataX在获取Mysql连接时,执行session指定的SQL语句,修改当前connection session属性(非必须)"
                         ],
                         "preSql": [
                             "写入数据到目的表前,会先执行这里的标准语句(非必须)"
                         ],
                         "connection": [
                             {
                                 "jdbcUrl": "数据库连接地址",
                                 "table": [
                                     "表"
                                 ]
                             }
                         ]
                     }
                 }
             }
         ]
     }
 }

2.3 其他配置连接

2.3.1:MySQL 数据库连接配置信息示例

"connection": [
        {
            "jdbcUrl": [ // 数据库连接字符串
                "jdbc:mysql://localhost:3306/your_mysql_database"
            ],
            "table": [ // 需要读取或写入的数据表名称
                "your_mysql_table"
            ],
            "username": "your_mysql_username", // 数据库用户名
            "password": "your_mysql_password", // 数据库密码
            "driverClassName": "com.mysql.jdbc.Driver", // 数据库驱动类名
            "fetchSize": 1024 // 数据抓取的数量
        }
    ]

2.3.2:Oracle 数据库连接配置信息示例:

"connection": [
            {
                "jdbcUrl": [ // 数据库连接字符串
                    "jdbc:oracle:thin:@your_oracle_host:port:your_oracle_sid"
                ],
                "table": [ // 需要读取或写入的数据表名称
                    "your_oracle_table"
                ],
                "username": "your_oracle_username", // 数据库用户名
                "password": "your_oracle_password", // 数据库密码
                "driverClassName": "oracle.jdbc.driver.OracleDriver", // 数据库驱动类名
                "fetchSize": 1024 // 数据抓取的数量
            }
        ]

2.3.3:SQL Server 数据库连接配置信息示例

        "connection": [
            {
                "jdbcUrl": "jdbc:sqlserver://your_sqlserver_host:port;database=your_sqlserver_database", // 数据库连接字符串
                "table": "your_sqlserver_table", // 需要读取或写入的数据表名称
                "username": "your_sqlserver_username", // 数据库用户名
                "password": "your_sqlserver_password", // 数据库密码
                "driverClassName": "com.microsoft.sqlserver.jdbc.SQLServerDriver", // 数据库驱动类名
                "fetchSize": 1024 // 数据抓取的数量
            }
        ]

2.3.4:PostgreSQL 数据库连接配置信息示例:

    "connection": [
            {
                "jdbcUrl": [ // 数据库连接字符串
                    "jdbc:postgresql://your_postgresql_host:port/your_postgresql_database"
                ],
                "table": [ // 需要读取或写入的数据表名称
                    "your_postgresql_table"
                ],
                "username": "your_postgresql_username", // 数据库用户名
                "password": "your_postgresql_password", // 数据库密码
                "driverClassName": "org.postgresql.Driver", // 数据库驱动类名
                "fetchSize": 1024 // 数据抓取的数量
            }
        ]

3、DataX Web 安装[未安装,需要linux系统,或者window idea]

3.1:安装
    下载地址:https://github.com/WeiYe-Jing/datax-web
    本地安装路径:D:\Work\DataX\datax-web
    首先运行需要一个本地的MySQL数据库
    解压执行数据库脚本:D:\Work\DataX\datax-web\bin\db
    解压后的目录里bin目录的db目录下有个datax_web.sql
    打开之后可以看到,它只有建表语句,没有建库语句,而数据库名是datax_web

3.2:修改application.yml
    文件路径:D:\Work\DataX\datax-web\datax-admin\src\main\resources\application.yml