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的實戰到此;
作者:京東零售 吳化斌
來源:京東雲開發者社群 轉載請註明來源