天天看點

dataX使用指南

DataX

DataX 是阿裡巴巴集團内被廣泛使用的離線資料同步工具/平台,實作包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各種異構資料源之間高效的資料同步功能。

DataXgit位址

安裝

直接下載下傳DataX工具包:DataX下載下傳位址

下載下傳後解壓至本地某個目錄,進入bin目錄,即可運作同步作業:

shell cd {YOUR_DATAX_HOME}/bin python datax.py {YOUR_JOB.json}

自檢腳本:

python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json

使用

1.生成job.json的示例檔案

cd  {YOUR_DATAX_HOME}/bin
python datax.py -r mysqlreader -w postgresqlwriter
           

會生成執行個體檔案

2.将執行個體檔案複制到.json檔案裡。修改裡面的配置項,執行個體json檔案如下所示:

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "column": ["id" , "fid" , "name" , "type" , "ab"],
            "connection": [
              {
                "jdbcUrl": ["jdbc:mysql://192.168.0.111:3306/etl"],
                "table": ["district"]
              }
            ],
            "password": "root",
            "username": "root",
            "where": ""
          }
        },
        "writer": {
          "name": "postgresqlwriter",
          "parameter": {
            "column": ["id" , "fid" , "name" , "type" , "ab"],
            "connection": [
              {
                "jdbcUrl": "jdbc:postgresql://192.168.0.111:5432/etl",
                "table": ["district"]
              }
            ],
            "password": "root",
            "postSql": [],
            "preSql": [],
            "username": "postgres"
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 5
      }
    }
  }
}

           

須知

  1. DataX沒法同步表結構,是以在同步資料時,必須保證writer裡的表已經存在。
  2. column字段最好不要用“*”代替,保證需要同步什麼字段就寫什麼字段。WARN:您的配置檔案中的列配置存在一定的風險. 因為您未配置讀取資料庫表的列,當您的表字段個數、類型有變動時,可能影響任務正确性甚至會運作出錯。
  3. 通常不建議寫入資料庫時,通道個數 > 32

繼續閱讀