环境要求:
- JDK(1.8以上,推荐1.8)
- Python(推荐Python2.6.X)
- Apache Maven 3.x (Compile DataX)
下载地址:
下载页面地址:https://github.com/alibaba/DataX
在页面中【Quick Start】—>【Download DataX下载地址】进行下载。下载后的包名:datax.tar.gz 下载后解压即可
命令页面进入datax的bin目录下,运行
python datax.py -r #你需要读取的数据库# -w #你需要写入的数据库# > #文件名#.json
官方参考文档:https://github.com/alibaba/DataX/blob/master/dataxPluginDev.md
运行命令后会出现一个json格式的文件(以mysql读+写为例
python datax.py -r mysqlreader -w mysqlwriter > myjob.json
打开json文件,里面有需要的json文件的格式和参考的格式网址
红色边框框起来的要记得删除
下面的job格式在官方给的参考网页都有对应的参数解析
遇到的问题:
[AnalysisStatistics.analysisStatisticsLog-53] com.alibaba.datax.common.exception.DataXException: Code:[Framework-03], Description:[DataX引擎配置错误,该问题通常是由于DataX安装错误引起,请联系您的运维解决 .]. - 在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数
修改文件datax/conf/core.json,core -> transport -> channel -> speed -> “byte”: 2000000,将单个channel的大小改为2MB
job文件中的channel也要记得赋值
好像是同时并行的线程数?不是很清楚 之后问一下
控制台报错乱码:运行指令 CHCP 65001
从mysql中reader的时候会遇到一个问题:mysql的查询结果只有1000条,导致导出的数据只有1000,同时datax不支持limit分页,如果要解决这个问题,需要在connection中写入 “querySql” 的查询语句直接limit查询,要注意,所有的reader的connection属性都需要使用 “[]” 修饰, 不然会报错,同时写了querySql之后就不需要写table属性了,不然会配置冲突
写好之后在bin目录下运行命令
python datax.py myjob.json
要提前建好对应的数据表