DATAX 相关了解
简介
DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能
设计理念
为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。

使用步骤
-
下载datax的安装包
-
解压gz包
- 运行解压命令,我这里解压到home目录
tar -zxvf ./datax.tar.gz
- linux解压以后目录有
bin conf job lib log log_perf plugin script tmp
- 参考我自己配置的job.json( 注意参考使用的时候,去除注释)
{ "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" ] } ] } } } ] } }
-
编写自己的job
- 进入解压的job 目录,编写一个自己的job.json 官网参考地址
- 参考已经支持的数据源读写配置,建立自己的job
-
进行运行
- 执行
python2 /home/datax/bin/datax.py /home/datax/job/job1.json
-
优化datax策略
- 参数优化
"speed": { "channel": 20, ##线程数量 "record":-1, ##此处解除对读取行数的限制 "byte":-1, ##此处解除对字节的限制 "batchSize":2048 ##每次读取batch的大小 }
- 运行的jvm 优化
--jvm="-Xms3G -Xmx3G" 例子:nohup python2 /home/datax/bin/datax.py --jvm="-Xms3G -Xmx3G" /home/datax/job/job1.json &
运行成功以后,查看运行的日志,以及去写入的数据源进行查看,数据已经正常写入。
测试结果1000万数据,耗时9分钟,线程数10,其他默认
来源:oschina
链接:https://my.oschina.net/u/2971292/blog/3140787