DataX的概述
DataX 是阿里巴巴集團內被廣泛使用的離線數據同步工具/平臺,實現包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各種異構數據源之間高效的數據同步功能。
DataX開源地址:https://github.com/alibaba/DataX
安裝步驟如下:
1.前置條件
DataX需要有JDK(1.8版本,推薦使用1.8)、Python(推薦使用Python2.7.x)、Apache Maven 3..x(編譯打包DataX)。
2.開始安裝
下載DataX包,可以使用開源地址進行下載,下載完成之後,對文件進行解壓。
3.測試
進入bin目錄下,開始進行測試,運行一下命令
python datax.py ../job/job.json
運行結果如下圖,表明DataX已經能夠正常使用。
運行期間可能會發生的問題:
命令行中文亂碼問題
解決方法:在運行測試命令時,輸入CHCP 65001,在執行測試命令即可。
自定義配置文件,以oracle導向MySQL爲例,樣本如下:
{
"job": {
"setting": {
//配置的是全局的字節速度,也可通過core.json配置每個channel的字節速度。
//DataX有兩種方式控制速度,一種爲byte,一種爲record
"speed": {
"byte":104857
},
//髒數據配置,如果超過當前的閾值,會觸發回滾。
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
//reader和writer的name參數必須
//和DataX包下的plugin下的reader和writer的用到的相應的plugin.json的name對應
"reader": {
"name": "oraclereader",
"parameter": {
"username": "",
"password": "",
"connection": [
{
"querySql": [
"select name,id from test"
],
"jdbcUrl": ["jdbc:oracle:thin:@localhost:1521:orcl"]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"writeMode": "insert",
"username": "",
"password": "",
"column": [
"name","id"
],
"preSql": [
"delete from test"
],
"connection": [
{
"jdbcUrl": "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8",
"table": [
"test"
]
}
]
}
}
}
]
}
}
注意:使用樣本時,需要把註釋行全部刪掉,否則會影響之後的Java解析JSON程序。