DataX3.0
DataX
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、PostgreSQL、HDFS、Hive、HBase等各种异构数据源之间高效的数据同步功能。
环境
- Linux;
- JDK 1.8;
- Python 2.7.5;
-
Apache Maven 3.5.3;
下载DataX工具包(解压后直接使用):http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
DataX使用步骤
生成json格式文件test.json,文件格式如下:
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"percentage": 0//容错量
}
},
"content": [{
"reader": {
"name": "sqlserverreader",//名称固定,以数据库类型加reader后缀组成
"parameter": {
"username": "sa",
"password": "123456",
"connection": [{
"querySql": [
"SELECT id,report_id,source_name FROM test_20190408"//导出数据sql
],
"jdbcUrl": [
"jdbc:sqlserver://localhost:1433;DatabaseName=sqlserverTest"
]
}],
"maxRetries": 3
}
},
"writer": {
"name": "mysqlwriter",//名称固定,以数据库类型加writer后缀组成
"parameter": {
"username": "root",
"password": "123456",
"dateFormat": "YYYY-MM-dd hh:mm:ss",
"column": [
"id", "report_id", "source_name"
],
"preSql": [
"DELETE FROM test_20190408"//覆盖条件,没有可以不要该属性
],
"connection": [{
"jdbcUrl": "jdbc:mysql://localhost:3306/mysqlTest",
"table": [
"test_20190408"//表名
]
}]
}
}
}]
}
}
执行命令:
执行命令后会发现mysql和oracle之间的数据迁移都是好的,但是只要涉及到sqlServer就会出问题,在网上找了N中解决办法,然鹅在我这里都不好使,最后发现是我的jar包放多了,脑阔痛。。。
正常的只有上面23个,可是我这里多了一个sqljdbc42.jar的包,那就删掉吧。可以依然不行,肿么办呢,急的我冷汗直流。。。
最后发现在datax/plugin/reader/sqlserverreader/libs里面也有一个sqljdbc4-4.0.jar的jar包,果断换成3.0的包,重新运行,运行成功的感觉真好。。。
下载sqljdbc3.0.jar链接:https://pan.baidu.com/s/13PKdwW8FnNjkhaPTRwAB9w
提取码:3hwx