日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

离线数据同步神器:DataX,支持几乎所有异构数据源的离线同步到MaxCompute

發(fā)布時間:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 离线数据同步神器:DataX,支持几乎所有异构数据源的离线同步到MaxCompute 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

摘要:?概述 DataX 是阿里巴巴集團內(nèi)被廣泛使用的離線數(shù)據(jù)同步工具/平臺,實現(xiàn)包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各種異構(gòu)數(shù)據(jù)源之間高效的數(shù)據(jù)同步功能。

概述

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

DataX本身作為數(shù)據(jù)同步框架,將不同數(shù)據(jù)源的同步抽象為從源頭數(shù)據(jù)源讀取數(shù)據(jù)的Reader插件,以及向目標(biāo)端寫入數(shù)據(jù)的Writer插件,理論上DataX框架可以支持任意數(shù)據(jù)源類型的數(shù)據(jù)同步工作。同時DataX插件體系作為一套生態(tài)系統(tǒng), 每接入一套新數(shù)據(jù)源該新加入的數(shù)據(jù)源即可實現(xiàn)和現(xiàn)有的數(shù)據(jù)源互通。

離線數(shù)據(jù)同步在大數(shù)據(jù)分析,數(shù)據(jù)備份,數(shù)據(jù)同步等應(yīng)用場景中都會被用到,所以本文特別介紹阿里開源的這款神器:DataX!

準(zhǔn)備工作

  • 環(huán)境準(zhǔn)備:Linux服務(wù)器一臺,安裝有JDK8,maven和python 2.6+;

  • 下載源碼:https://github.com/alibaba/DataX.git

  • 解壓后編譯源碼:mvn -U clean package assembly:assembly -Dmaven.test.skip=true

  • 出現(xiàn)以下信息,表示編譯成功(編譯時間稍長,由于DataX支持的數(shù)據(jù)源很多,對應(yīng)的依賴包也比較多,所以可能需要20min左右編譯時間,具體視下載速度和機器性能而定):

    常見錯誤:

    • 在第3步可能會出現(xiàn)無法編譯tablestore-streamclient的錯誤,請到https://mvnrepository.com/artifact/com.aliyun.openservices/tablestore-streamclient/1.0.0 下載相應(yīng)的包并放到maven相應(yīng)路徑下;

    工具使用

    成功編譯DataX后,在cd target/datax/datax/目錄下就會生成可執(zhí)行文件,我們就可以來使用DataX同步各種格式的離線數(shù)據(jù)(具體看參考:https://github.com/alibaba/DataX/blob/master/userGuid.md),如下:

    不在這個表格中的數(shù)據(jù)源格式你可以通過自定義插件編寫,具體編碼可參考:https://github.com/alibaba/DataX/blob/master/dataxPluginDev.md

    比如我們實現(xiàn)一個最簡單的任務(wù),將JSON格式化數(shù)據(jù)輸出到控制臺:

  • 切換目錄:cd target/datax/datax/bin,比如在我們的192.168.1.63的服務(wù)器,切換到目錄:/home/data-transfer/datax/target/datax/datax/bin

  • 查看配置格式命令:python datax.py -r streamreader -w streamwriter

  • 編寫配置文件,stream2stream.json文件如下:

  • 1{2??"job":?{3????"content":?[4??????{5????????"reader":?{6??????????"name":?"streamreader",7??????????"parameter":?{8????????????"sliceRecordCount":?10,9????????????"column":?[ 10??????????????{ 11????????????????"type":?"long", 12????????????????"value":?"10" 13??????????????}, 14??????????????{ 15????????????????"type":?"string", 16????????????????"value":?"hello,你好,世界-DataX" 17??????????????} 18????????????] 19??????????} 20????????}, 21????????"writer":?{ 22??????????"name":?"streamwriter", 23??????????"parameter":?{ 24????????????"encoding":?"UTF-8", 25????????????"print":?true 26??????????} 27????????} 28??????} 29????], 30????"setting":?{ 31??????"speed":?{ 32????????"channel":?5 33???????} 34????} 35??} 36}
  • 運行腳本:python datax.py ./stream2stream.json,執(zhí)行后控制臺輸出:

  • 再比如mysql到mysql的離線數(shù)據(jù)同步,可使用:
    python datax.py -r mysqlreader -w mysqlwriter?獲取配置文件模板;

    更多的writer可參看plugins目錄下的writer文件夾(官方默認(rèn)包含的Writer,支持自定義可擴展):

    更多的reader可參看plugins目錄下的reader文件夾(官方默認(rèn)包含的Reader,支持自定義可擴展):

    注:如果要使用離線增量同步數(shù)據(jù),可指定配置文件中的where過濾;

    原文鏈接

    轉(zhuǎn)載于:https://my.oschina.net/u/1464083/blog/2875555

    總結(jié)

    以上是生活随笔為你收集整理的离线数据同步神器:DataX,支持几乎所有异构数据源的离线同步到MaxCompute的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。