DataX使用以及安裝

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程序。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章