DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。
DataX 本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的 Reader 插件,以及向目标端写入数据的 Writer 插件,理论上 DataX 框架可以支持任意数据源类型的数据同步工作。同时 DataX 插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。
请参考:DataX-Introduction
下载压缩包:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
下载后的包名:datax.tar.gz
解压后 {datax} 目录下有 {bin conf job lib log log_perf plugin script tmp} 几个目录
将下载后的压缩包直接解压后可用,前提是对应的 java 及 python 环境满足要求。
由于我本地 python 为 3.7.0 ,所以把 [datax_hoem]/bin 目录下的三个py文件修改成了符合 python3 语法要求的文件,执行也没报错,
修改后的文件,如需要可下载替换:https://github.com/TwoThreeWang/DataX_Python3
测试配置了一个读取 csv 写入到另一个 csv 的 json
{
"setting": {},
"job": {
"setting": {
"speed": {
"channel": 2
}
},
"content": [
{
"reader": {
"name": "txtfilereader",
"parameter": {
"path": ["E:\\test.csv"],
"encoding": "UTF-8",
"column": [
{
"index": 0,
"type": "long"
},
{
"index": 1,
"type": "long"
},
{
"index": 2,
"type": "long"
}
],
"fieldDelimiter": ",",
"skipHeader": "False"
}
},
"writer": {
"name": "txtfilewriter",
"parameter": {
"path": "E:\\test",
"fileName": "test",
"writeMode": "truncate",
"format": "yyyy-MM-dd",
"header":['id', 'name', 'age']
}
}
}
]
}
}
TxtFileReader 参数说明:https://github.com/alibaba/DataX/blob/master/txtfilereader/doc/txtfilereader.md
所有类型参数说明:https://github.com/alibaba/DataX
python datax.py E:\DataX-json\test.json
"jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/dq?characterEncoding=utf8"]
参考:
- https://blog.csdn.net/qq_37552993/article/details/80235010
- https://github.com/alibaba/DataX
- https://www.imooc.com/article/15640#