开源数据同步工具——datax
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。
github地址:https://github.com/alibaba/DataX
支持的数据存储
类型 | 数据源 | Reader(读) | Writer(写) | 文档 |
---|---|---|---|---|
RDBMS 关系型数据库 | MySQL | √ | √ | 读 、写 |
Oracle | √ | √ | 读 、写 | |
SQLServer | √ | √ | 读 、写 | |
PostgreSQL | √ | √ | 读 、写 | |
DRDS | √ | √ | 读 、写 | |
通用RDBMS(支持所有关系型数据库) | √ | √ | 读 、写 | |
阿里云数仓数据存储 | ODPS | √ | √ | 读 、写 |
ADS | √ | 写 | ||
OSS | √ | √ | 读 、写 | |
OCS | √ | √ | 读 、写 | |
NoSQL数据存储 | OTS | √ | √ | 读 、写 |
Hbase0.94 | √ | √ | 读 、写 | |
Hbase1.1 | √ | √ | 读 、写 | |
Phoenix4.x | √ | √ | 读 、写 | |
MongoDB | √ | √ | 读 、写 | |
Hive | √ | √ | 读 、写 | |
无结构化数据存储 | TxtFile | √ | √ | 读 、写 |
FTP | √ | √ | 读 、写 | |
HDFS | √ | √ | 读 、写 | |
Elasticsearch | √ | 写 |
环境依赖
cd E:\Application\datax #进入 datax 目录
python2 bin\datax.py -p "-Dtable=TableName" job\myjob.json
- 任务文件:job/job.json ,内容如下:
{
"job": {
"setting": {
"speed": {
"byte": 10485760
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [{
"reader": {
"name": "sqlserverreader",
"parameter": {
"username": "sa",//源数据库用户名
"password": "123456",//源数据库密码
"column": ["*"],
"connection": [{
"table": ["$table"],
"jdbcUrl": ["jdbc:sqlserver://10.1.1.1:1433;DatabaseName=dbname"]//源数据库ip、port、库名
}]
}
},
"writer": {
"name": "sqlserverwriter",
"parameter": {
"username": "sa",//目的数据库用户名
"password": "123456",//目的数据库密码
"column": ["*"],
"preSql": [
" truncate table @table "
],
"postSql": ["],
"connection": [{
"table": ["$table"],
"jdbcUrl": "jdbc:sqlserver://10.1.1.1:1433;DatabaseName=dbname"
}]//目的数据库 ip、port、库名
}
}
}]
}
}
目录结构
datax
├──run.bat
│
├──job
│ ├──job.json