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