DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各类异构数据源之间稳定高效的数据同步功能python
为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX做为中间传输载体负责链接各类数据源。当须要接入一个新的数据源的时候,只须要将此数据源对接到DataX,便能跟已有的数据源作到无缝数据同步。mysql
下载datax的安装包linux
解压gz包git
tar -zxvf ./datax.tar.gz
bin conf job lib log log_perf plugin script tmp
{ "job": { "setting": { "speed": { "channel": 15, "record":-1, "byte":-1, "batchSize":2048 } }, "content": [ { "reader": { "name": "oraclereader", "parameter": { "username": "xxxx", "password": "xxxx", "column": ["*"], "where":"", "connection": [ { "jdbcUrl": ["jdbc:oracle:thin:@ip:1521:SID"], "table": ["T_PLT_VEHICLE_LOCATION"] } ] } }, "writer": { "name": "mysqlwriter", "parameter": { "writeMode": "insert", "username": "xxxx", "password": "xxxx", "column": ["*"], "connection": [ { "jdbcUrl": "jdbc:mysql://ip:3306/库名?useUnicode=true&characterEncoding=utf-8", "table": [ "t_plt_vehicle_location" ] } ] } } } ] } }
编写本身的jobgithub
进行运行sql
python2 /home/datax/bin/datax.py /home/datax/job/job1.json
优化datax策略数据库
"speed": { "channel": 20, ##线程数量 "record":-1, ##此处解除对读取行数的限制 "byte":-1, ##此处解除对字节的限制 "batchSize":2048 ##每次读取batch的大小 }
--jvm="-Xms3G -Xmx3G" 例子:nohup python2 /home/datax/bin/datax.py --jvm="-Xms3G -Xmx3G" /home/datax/job/job1.json &
运行成功之后,查看运行的日志,以及去写入的数据源进行查看,数据已经正常写入。json
测试结果1000万数据,耗时9分钟,线程数10,其余默认oracle