streampark+flink一鍵整庫或多表同步mysql到doris實戰

發表於2024-02-06

streampark+flink一鍵整庫或多表同步mysql到doris實戰,此應用一旦推廣起來,那麼資料實時異構時,不僅可以減少對資料庫的查詢壓力,還可以減少資料同步時的至少50%的成本,還可以減少30%的儲存成本;

streampark搭建

二進位制包編譯構建

編譯構建二進位制可執行包,使用自己構建的二進位制包構建Docker映象,需要準備一臺Linux的服務或者是虛擬機器,可以正常上網即可,在該臺機子上需要事先安裝Git(拉取原始碼檔案),Maven和java環境(JDK1.8),我採用的是是上傳的原始碼包:incubator-streampark-2.1.0.tar.gz,然後解壓原始碼包:

tar -zxvf incubator-streampark-2.1.0.tar.gz

解壓到伺服器上,然後進入到解壓路徑裡面

執行:

到此streampark已經搭建完成,可以在web頁面驗證應用是否可以訪問,

登入賬號;

是否能建立

flink 搭建

執行:

到此flink特搭建完畢;

web是否可以訪問:

上述兩個應用搭建成功之後,一定要檢查對應的應用的涉及到的埠網路許可權是否都開啟,如果沒有開啟的話,那麼後續執行的任務的時候,不會成功;

建立同步mysql到doris任務:

此任務是mysql表資料自動同步到doris的任務,首先需要mysql和doris資料庫的相關配置都知道,其次是配置任務中的相關jar都有,在同步過程中,doris中對應的mysql表ddl是會自動建立的,不需要人工介入,可以節約同步幾十上百張表時人工建表的欄位對映的大量時間;

streampark中建立任務

建立完任務,執行啟動

服務中指令啟動同步任務

在flink目錄執行此指令碼,

bin/flink run -Dexecution.checkpointing.interval=10s -Dparallelism.default=1 -c org.apache.doris.flink.tools.cdc.CdcTools /opt/streampark\_workspace/workspace/100003/streampark-flinkjob\_wuhuabiun.jar mysql-sync-database --database jd\_carmax --mysql-conf hostname= ..... --mysql-conf port=3306 --mysql-conf username=.... --mysql-conf password=... --mysql-conf database-name=jd\_carmax --including-tables ".*" --sink-conf fenodes=....:2004 --sink-conf username=wuhuabin --sink-conf password=.... --sink-conf jdbc-url=jdbc:.... :2000 --sink-conf sink.label-prefix=label --table-conf replication_num=3

執行完之後,在flink ui中能看到對應的任務:

doris資料驗證

表ddl驗證

登入doris資料庫;

mysql表的ddl:

查詢doris是否把表ddl都同步成功,

mysql表ddl和doris中的表ddl一致;

表資料量驗證

doris表資料量

mysql表資料量:

至此,自運維mysql一鍵同步到doris的實戰到此;

作者:京東零售 吳化斌

來源:京東雲開發者社群 轉載請註明來源

相關文章