DataX 的配置及使用

DataX 是阿里巴巴集團(tuán)內(nèi)被廣泛使用的離線數(shù)據(jù)同步工具/平臺,實現(xiàn)包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各種異構(gòu)數(shù)據(jù)源之間高效的數(shù)據(jù)同步功能。

其官網(wǎng)地址:https://github.com/alibaba/DataX

快速上手步驟

1.下載 DataX:DataX 下載地址

2.配置任務(wù) Json

下載的 DataX 的目錄:

配置 datax/job 文件夾下的 Json:

{
    "job":{
        "content":[
            {
                "reader":{
                    "name":"mysqlreader",
                    "parameter":{
                        "column":[
                            "id",
                            "resource",
                            "remark"
                        ],
                        "connection":[
                            {
                                "jdbcUrl":[
                                    "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8"
                                ],
                                "table":[
                                    "school_menu"
                                ]
                            }
                        ],
                        "password":"123456",
                        "username":"root"
                    }
                },
                "writer":{
                    "name":"mysqlwriter",
                    "parameter":{
                        "column":[
                            "id",
                            "resource",
                            "remark"
                        ],
                        "connection":[
                            {
                                "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8",
                                "table":[
                                    "school_test"
                                ]
                            }
                        ],
                        "password":"123456",
                        "username":"root"
                    }
                }
            }
        ],
        "setting":{
            "speed":{
                "channel":"1"
            }
        }
    }
}

任務(wù) Json 由三部分組成,分別是讀,寫和通用配置。

Reader 部分常用參數(shù):
參數(shù)名 解釋 備注
name 與要讀取的數(shù)據(jù)庫一致 字符串
jdbcUrl 數(shù)據(jù)庫鏈接 數(shù)組,會自動選擇一個合法的鏈接,可以填寫連接附件控制信息
username 數(shù)據(jù)庫用戶名 字符串,數(shù)據(jù)庫的用戶名
password 數(shù)據(jù)庫密碼 字符串,數(shù)據(jù)庫的密碼
table 要同步的表名 數(shù)組,需保證表結(jié)構(gòu)一致
column 要同步的列名 數(shù)組
where 選取的條件 字符串
querySql 自定義查詢語句 會自動忽略上述的同步條件
Writer 部分常用參數(shù):
參數(shù)名 解釋 備注
name 與要讀取的數(shù)據(jù)庫一致 字符串
jdbcUrl 數(shù)據(jù)庫鏈接 字符串,可以填寫連接附件控制信息
username 數(shù)據(jù)庫用戶名 字符串,數(shù)據(jù)庫的用戶名
password 數(shù)據(jù)庫密碼 字符串,數(shù)據(jù)庫的密碼
table 要同步的表名 數(shù)組,需保證表結(jié)構(gòu)一致
column 列名可以不對應(yīng),但是類型和總的個數(shù)要一致 數(shù)組,需保證表結(jié)構(gòu)一致
preSql 寫入前執(zhí)行的語句 數(shù)組,比如清空表等
postSql 寫入后執(zhí)行的語句 數(shù)組
writeMode 寫入方式,默認(rèn)為insert insert/replace/update
  • job.setting.speed (流量控制)
    • Job 支持用戶對速度的自定義控制,channel 的值可以控制同步時的并發(fā)數(shù),byte 的值可以控制同步時的速度
  • job.setting.errorLimit (臟數(shù)據(jù)控制)
    • Job 支持用戶對于臟數(shù)據(jù)的自定義監(jiān)控和告警,包括對臟數(shù)據(jù)最大記錄數(shù)閾值(record 值)或者臟數(shù)據(jù)占比閾值(percentage 值),當(dāng) Job 傳輸過程出現(xiàn)的臟數(shù)據(jù)大于用戶指定的數(shù)量/百分比,DataX Job 報錯退出。

命令行 cd 到 datax/bin 目錄下,執(zhí)行 python datax.py ../job/mysqltomysql.json

然后看到 school_test 表的數(shù)據(jù):

到此已經(jīng)成功了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容