天天看点

DataX3.0 sqlServer数据迁移DataX

DataX3.0

DataX

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、PostgreSQL、HDFS、Hive、HBase等各种异构数据源之间高效的数据同步功能。

环境

  1. Linux;
  2. JDK 1.8;
  3. Python 2.7.5;
  4. 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"//表名
						]
					}]
				}
			}
		}]
	}
}
           

执行命令:

DataX3.0 sqlServer数据迁移DataX

执行命令后会发现mysql和oracle之间的数据迁移都是好的,但是只要涉及到sqlServer就会出问题,在网上找了N中解决办法,然鹅在我这里都不好使,最后发现是我的jar包放多了,脑阔痛。。。

DataX3.0 sqlServer数据迁移DataX

正常的只有上面23个,可是我这里多了一个sqljdbc42.jar的包,那就删掉吧。可以依然不行,肿么办呢,急的我冷汗直流。。。

DataX3.0 sqlServer数据迁移DataX

最后发现在datax/plugin/reader/sqlserverreader/libs里面也有一个sqljdbc4-4.0.jar的jar包,果断换成3.0的包,重新运行,运行成功的感觉真好。。。

DataX3.0 sqlServer数据迁移DataX

下载sqljdbc3.0.jar链接:https://pan.baidu.com/s/13PKdwW8FnNjkhaPTRwAB9w

提取码:3hwx

继续阅读