1. 背景
筆者在先前的一篇文檔《數(shù)據(jù)標(biāo)簽設(shè)計 – 大數(shù)據(jù)平臺(XSailboat)的數(shù)據(jù)標(biāo)簽?zāi)K》 提到了關(guān)于數(shù)據(jù)標(biāo)簽的模塊,現(xiàn)已實現(xiàn)并應(yīng)用于項目中。在項目中遇到這樣一種情形:
在業(yè)務(wù)系統(tǒng)中,對某類對象打了標(biāo)簽,現(xiàn)在需要對這類對象進行過濾并分頁查詢,支持使用這類對象的屬性和所打標(biāo)簽進行過濾。
這就出現(xiàn)了一個問題:標(biāo)簽和打標(biāo)信息是存儲在大數(shù)據(jù)平臺的數(shù)據(jù)庫中的,而業(yè)務(wù)數(shù)據(jù)是存儲在業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫中的,這是兩個數(shù)據(jù)庫實例。
如果打標(biāo)信息和業(yè)務(wù)數(shù)據(jù)是在一個數(shù)據(jù)庫實例中,那么只需要連接兩張表進行查詢即可。但是數(shù)據(jù)標(biāo)簽作為大數(shù)據(jù)平臺的模塊,顯然是不能將打標(biāo)數(shù)據(jù)分散到各個業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫中的,所以我們就想到了使用CDC,將相關(guān)的打標(biāo)數(shù)據(jù)同步到需要這些數(shù)據(jù)的業(yè)務(wù)庫中。
2. 實踐
首先構(gòu)造出下圖所示的計算管道:
整個計算管道就3個節(jié)點:
-
MySQL_BinLog(源)1節(jié)點,從源端MySQL上用BinLog模式增量拉取數(shù)據(jù)。它的主要配置如下:
主要是選擇數(shù)據(jù)源,選擇表,下面的輸出項會根據(jù)選擇的表模式自動生成。 -
1_1映射1節(jié)點,主要是為了使用側(cè)輸出功能,篩選過濾出目標(biāo)庫所需的部分打標(biāo)數(shù)據(jù)。因為數(shù)據(jù)標(biāo)簽功能對在平臺中定義了數(shù)據(jù)源的,有唯一標(biāo)識的數(shù)據(jù)都能進行打標(biāo),所以當(dāng)前目標(biāo)數(shù)據(jù)源需要的打標(biāo)數(shù)據(jù)只是其中一部分。這里之所以使用1_1映射節(jié)點的側(cè)輸出功能,而不是使用過濾節(jié)點,主要是因為考慮到后續(xù)可能有其它源也需要同步打標(biāo)數(shù)據(jù),用側(cè)輸出有更好的擴展性。
因為這里不需要按鍵分區(qū),所以它的表達式是一個常數(shù)就行。然后定義了輸出標(biāo)簽,右側(cè)的表達式定義了篩選條件。這里輸入數(shù)據(jù)行直接作為輸出數(shù)據(jù),無需處理,所以輸出行一鍵使用輸入行填充即可。 -
MySQL(目標(biāo))1節(jié)點,將“規(guī)則的打標(biāo)數(shù)據(jù)”下沉到目標(biāo)數(shù)據(jù)庫。
選擇目標(biāo)數(shù)據(jù)源和表。這里的數(shù)據(jù)寫入方式“全操作”指的是UpdteOrInsertOrDelete,另外還有
- 插入
- 更新
- 插入或更新
- 插入或刪除
- 更新或刪除
點擊下圖中的1按鈕在開發(fā)環(huán)境調(diào)試。如果中心集群中當(dāng)前工作空間專屬的Flink集群沒有運行,平臺會自動啟動這個Flink集群。
點擊上圖中的2按鈕提交到開發(fā)環(huán)境,然后去部署。文章來源:http://www.zghlxwxcb.cn/news/detail-796622.html
下圖是調(diào)試運行界面。
在生產(chǎn)環(huán)境,點擊相應(yīng)版本的計算管道進行部署。
選擇集群,輸入/選擇集群標(biāo)簽,如果在指定的集群資源上沒有指定標(biāo)簽的Flink集群,平臺也會自動啟動相應(yīng)標(biāo)簽名稱的集群,并部署Flink任務(wù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-796622.html
到了這里,關(guān)于基于大數(shù)據(jù)平臺(XSailboat)的計算管道實現(xiàn)MySQL數(shù)據(jù)源的CDC同步--flink CDC的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!