简介

image

DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQLOracleOceanBaseSqlServerPostgreHDFSHiveADSHBaseTableStore(OTS)MaxCompute(ODPS)HologresDRDS, databend 等各种异构数据源之间高效的数据同步功能。

项目地址:https://github.com/alibaba/DataX

快速开始

mysql全量同步数据将async_a同步到asycn_b中,需两个数据库之间要同步的表结构一致

配置环境

下载DataX并解压

下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz

DataX自检

python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json

image

image

配置文件

配置文件放在job文件夹下

简单表同步

同步命令

python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job_name_xxx.json

image

image

{
    "job": {
        "content": [
            {
                "reader": { // 读库
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root", // 数据库用户名
                        "password": "Pwd@123", // 数据库密码
                        "column": [
                            "*" // 表示所有字段
                        ],
                        "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:mysql://[ip]:[port]/[database]?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false" // 注意ip、port、database为真实信息
                                ],
                                "table": [
                                    "table_name" // 表名
                                ]
                            }
                        ]
                    }
                },
                "writer": { // 写库
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert", // 同步模式 insert update
                        "username": "root",  // 数据库用户名
                        "password": "Pwd@12",  // 数据库密码
                        "column": [
                            "*"  // 表示所有字段
                        ],
                        "preSql": [],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://[ip]:[port]/[database]?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false",  // 注意ip、port、database为真实信息
                                "table": [
                                    "table_name" // 表名
                                ]
                            }
                        ]
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 3
            }
        }
    }
}

条件表同步

image

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "Pwd@123",
                        "column": [
                            "*"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:mysql://[ip]:[port]/[database]?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false"
                                ],
                                "table": [
                                    "table_name"
                                ]
                            }
                        ],
                        "where":"", // 筛选条件
                        "querySql":"" // 自定义筛选SQL,配置querySql时,MysqlReader直接忽略table、column、where条件的配置
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "root",
                        "password": "Pwd@12",
                        "column": [
                            "*"
                        ],
                        "preSql": [],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://[ip]:[port]/[database]?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false",
                                "table": [
                                    "table_name"
                                ]
                            }
                        ]
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 3
            }
        }
    }
}
最后修改:2024 年 12 月 11 日
如果觉得我的文章对你有用,请随意赞赏