ETL工具-DataX

mtain 2024年03月13日 62次浏览

说明

DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。

Github:https://github.com/alibaba/DataX
使用说明:https://github.com/alibaba/DataX/blob/master/userGuid.md

下载和使用

环境:Linux+JDK+Python2/3

1. 下载

直接下载编译好的完整包:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz

下载后,在Linux上解压,并进入目录cd datax

2. 编写job定义json

数据格式,直接在Github文档中复制
image.png

例如:MySQL->PostgreSQL
vi job/job_mysql_postgresql.json

{
    "job": {
        "setting": {
            "speed": {
                "channel": 1
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "root",
                        "column": [
                            "id",
                            "name"
                        ],
                        "splitPk": "db_id",
                        "connection": [
                            {
                                "table": [
                                    "table"
                                ],
                                "jdbcUrl": [
                                    "jdbc:mysql://127.0.0.1:3306/database"
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "postgresqlwriter",
                    "parameter": {
                        "username": "xx",
                        "password": "xx",
                        "column": [
                            "id",
                            "name"
                        ],
                        "preSql": [
                            "delete from test"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:postgresql://127.0.0.1:3002/datax",
                                "table": [
                                    "test"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}

3. 运行job

python bin/datax.py job/python bin/datax.py job/api_bank_log_job.json


2024-03-13 03:09:01.915 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2024-03-13 15:08:51
任务结束时刻                    : 2024-03-13 15:09:01
任务总计耗时                    :                 10s
任务平均流量                    :          469.98KB/s
记录写入速度                    :           2921rec/s
读出记录总数                    :               29218
读写失败总数                    :                   0