資料實時傳輸平臺(CDC)與低程式碼平臺(APAAS)資料整合

RestCloud發表於2022-08-16

首選感謝微信群裡RC的各位老師,一早上都在問問題,感謝他們耐心回覆!

RC的實時資料傳輸平臺(CDC)前段時間就釋出了,但是因為忙其他事,就沒去研究學習,最近正好有一個小需求,erp出庫單某個欄位修改後同步到低程式碼平臺中對應的單據欄位中。一開始想透過寫程式碼實現的。但是本著能不寫程式碼的原則,我又開啟了rc etl平臺(簡稱平臺),正好平臺也升級到了全新的1.6版本,修復了不少bug,給RC點贊!我就升級到了1.6版本,開始了漫長的學習之路。


一、先介紹一下CDC、ETL流程、KAFKA之間的關係吧,在CDC裡面有2中資料消費方式:

1、CDC讀取過來的資料轉成資料流直接交給ETL流程消費。

2、CDC讀出來過來的資料存到KAFKA裡面,KAFKA建立資料聯結器,然後在交給ETL流程消費。

注意:不管是CDC直接給ETL流程,還是KAFKA給ETL流程,在ETL流程裡面都是不需要輸入元件的,這點一定要注意,CDC資料流直接給到ETL流程了。不需要您在配置任何輸入元件去讀取資料在操作。


二、接下來我介紹下具體的配置過程

1、配置CDC資料聯結器

按照表單欄位錄入就可以,一定要注意聯結器儲存這裡,如果選擇kafka,CDC會把所有記錄寫到kafka中,想要消費就需要配置KAFKA聯結器了,這裡我們選擇不儲存,配置完成後點選儲存就好了。吐槽一個地方,資料庫表選擇這塊,如果資料庫表太多會卡死,下拉搜尋也很慢,這塊可以最佳化下。

接下來我們配置消費者,這塊就比較簡單,選擇一個流程然後點選儲存就可以了。

激動人心的時候到了,我們要啟動了,要啟動了,點選啟動,等待三秒,啟動失敗,請檢測xxxx,原以為是美夢的開始,誰知道這裡才是噩夢,坑,這裡都是大坑。由於CDC依賴資料庫的一些特性,比如表日誌,binlog等,我們就要針對不同資料庫去開啟各種日誌,這一點等待官方出具體文件。我資料庫是mysql,我說一下遇到的2個問題:

1、沒開啟binlog,具體如何開啟百度一下;

2、mysql的時區不對,具體如何設定百度一下;

當解決完這些問題後,在次點選開啟,終於啟動了,高興的拍手手,這期間也算是踩了不少坑(還是個人能力不行),希望官網早日出CDC的文件拯救下我們這些小白。


三、配置ETL流程(既資料的消費者)

先簡單按照個人的理解說下原理吧,CDC透過讀取資料庫日誌或者其他方式,將內容形成資料流傳遞給ETL流程中,這裡的ETL流程您可以理解為一段程式碼,捕獲到了資料就執行下這段程式碼,我還曾糾結過,是不是這個ETL流程沒執行所以導致沒資料啊,這個ETL流程其實不用你手動觸發或者設定排程,您可以直接理解為有了資料流程就執行,接下來我給大家講解下ETL流程配置的過程。

重要的地方說三遍,別想著透過配置資料輸入元件獲取資料!資料在流裡!

重要的地方說三遍,別想著透過配置資料輸入元件獲取資料!資料在流裡!

重要的地方說三遍,別想著透過配置資料輸入元件獲取資料!資料在流裡!

為什麼別配置,因為資料在流裡,資料在流裡,不在KAFKA,或者資料庫裡面!我就傻乎乎的配置了一個kafka輸入想著獲取資料,結果怎麼也不行。

下面是我配置流程的截圖,我的配置很簡單,也沒處理json資料,直接配置了一個rest輸出介面,把json內容傳送給apaas平臺。流裡的json物件叫data,如果需要處理自己處理下。



有一個地方也說一下,如何判斷這條資料是新增,還是刪除,還是修改呢?流中的內容是json格式,json中有一個P_TAG_IUD,D-刪除,U-更新,I-插入,資料消費方根據這個判斷操作就可以了。


四、配置apaas平臺的webhook

我們的apaas是明道雲,我透過明道雲新建了一個webhook用來接收變化資料,當mysql資料庫資料發生變化時候CDC會呼叫ETL流程,ETL流程會呼叫明道雲的webhook,將修改的單據資料傳遞過來,明道雲找到對應本地資料記錄,找到後直接修改對應欄位即可。


明道雲的webhook會根據呼叫方傳遞的資料自動生成對應的引數列表,這點真的相當不錯,具體明道雲如何配置我就不詳細描述了。


五、總結

透過無程式碼的方式實現了資料發生變化時及時同步到三方系統的功能,利用CDC和APAAS大大提升了開發效率,降低了程式碼維護性,提高了應用建設的敏捷性。同時也對平臺CDC配置流程有了基本瞭解,未來將繼續深入挖掘RC ETL平臺的功能,並深度應用到實際工作當中,期待RC ETL社群版本釋出更多功能,感謝微信群RC各種老師的耐心指導,祝RC越來越好!

對於資料整合需求多的的使用者一定要試試RC 的IPAAS平臺啊,

真的是隻有你想不到,沒有你做不到的啊,真的是解放生產力工具啊。



---

作者:孫杰

來源:RestCloud ETL社群(

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005218/viewspace-2910699/,如需轉載,請註明出處,否則將追究法律責任。

相關文章