DataX 简介
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。
安装与使用
环境要求
– JDK(1.8以上,推荐1.8)
– Python(推荐Python2.6.X)
下载解压
下载后直接解压,解压后目录如下
进入 bin 目录
使用方法
直接执行如下命令即可
python datax.py test.json
test.json 为配置文件,标明了 数据源 和 迁移后的路径
datax 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'] } } } ] } }
更多示例见参考文档,或者查阅官网,即 “了解更多” 章节
使用异常记录
1. 默认支持的是 python2,如果想用 python3,需要把 datax.py 等文件的代码改成 python3 语法,不过貌似只是 print 加 括号就行了
2. 数据库中的数据中文乱码解决:在 json 文件中 jdbcUrl 项加上:?characterEncoding=utf8
"jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/dq?characterEncoding=utf8"]
3. 运行 datax.py 后出现乱码,在 cmd 中 输入 CHCP 65001 【仅适用于 windows】
了解更多
原理篇
未完待续...
参考资料:
https://zhuanlan.zhihu.com/p/163710564 最简使用教程
https://www.cnblogs.com/longbing/p/9430084.html dataX json配置 mysql2mysql、mysql到本地、HDFS打印到本地控制台、orcle打印到Linux
https://www.cnblogs.com/qingyunzong/p/9759993.html DataX的使用