DataX的概述
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。
DataX开源地址:https://github.com/alibaba/DataX
安装步骤如下:
1.前置条件
DataX需要有JDK(1.8版本,推荐使用1.8)、Python(推荐使用Python2.7.x)、Apache Maven 3..x(编译打包DataX)。
2.开始安装
下载DataX包,可以使用开源地址进行下载,下载完成之后,对文件进行解压。
3.测试
进入bin目录下,开始进行测试,运行一下命令
python datax.py ../job/job.json
运行结果如下图,表明DataX已经能够正常使用。
运行期间可能会发生的问题:
命令行中文乱码问题
解决方法:在运行测试命令时,输入CHCP 65001,在执行测试命令即可。
自定义配置文件,以oracle导向MySQL为例,样本如下:
{
"job": {
"setting": {
//配置的是全局的字节速度,也可通过core.json配置每个channel的字节速度。
//DataX有两种方式控制速度,一种为byte,一种为record
"speed": {
"byte":104857
},
//脏数据配置,如果超过当前的阈值,会触发回滚。
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
//reader和writer的name参数必须
//和DataX包下的plugin下的reader和writer的用到的相应的plugin.json的name对应
"reader": {
"name": "oraclereader",
"parameter": {
"username": "",
"password": "",
"connection": [
{
"querySql": [
"select name,id from test"
],
"jdbcUrl": ["jdbc:oracle:thin:@localhost:1521:orcl"]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"writeMode": "insert",
"username": "",
"password": "",
"column": [
"name","id"
],
"preSql": [
"delete from test"
],
"connection": [
{
"jdbcUrl": "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8",
"table": [
"test"
]
}
]
}
}
}
]
}
}
注意:使用样本时,需要把注释行全部删掉,否则会影响之后的Java解析JSON程序。