datax 离线同步SqlServer 到Mysql

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

正好业务数据库使用的sqlserver,一部分表需要全量同步到mysql。

datax 也刚刚好满足需求。

说干就干,上配置代码:

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "sqlserverreader",
                    "parameter": {
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bigdata"],
                                "table": ["${readTable}"]
                            }
                        ],
                        "password": "***",
                        "username": "sa",
                        "column": ["*"]
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": ["*"],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/bigdata",
                                "table": ["${writeTable}"]
                            }
                        ],
                        "password": "****",
                        "preSql": ["truncate table ${writeTable}"],
                        "session": [],
                        "username": "root",
                        "writeMode": "insert"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "5"
            }
        }
    }
}

这是一个通用的job json 配置文件。

那么我们就需要创建一个sh 脚本,方便调度系统调度

vi sqlserver2mysql.sh

python /opt/servers/datax/bin/datax.py /opt/servers/datax/job/sqlserver2mysql.json -p "-DreadTable=$1 -DwriteTable=$2" --jvm="-Xms8G -Xmx8G"

执行
 sh sqlserver2mysql.sh  readtable writetable

readtable 为sqlserver 表

writetable 为mysql 表

如果出现错误,可以联系我解决。

也可以使用dolpinscheduler  shell 任务加入调度

我使用的dolpinscheduler 3.0.0-beta-1  的datax 节点 没有尝试,后续看朋友们是否需要,再补充。


版权声明:本文为flye原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。