CDC (Change Data Capture) 是一種用于捕捉數(shù)據(jù)庫變更數(shù)據(jù)的技術(shù),F(xiàn)link 從 1.11 版本開始原生支持 CDC 數(shù)據(jù)(changelog)的處理,目前已經(jīng)是非常成熟的變更數(shù)據(jù)處理方案。
Flink CDC Connectors 是 Flink 的一組 Source 連接器,是 Flink CDC 的核心組件,這些連接器負(fù)責(zé)從?MySQL、PostgreSQL、Oracle、MongoDB?等數(shù)據(jù)庫讀取存量歷史數(shù)據(jù)和增量變更數(shù)據(jù)。在 2020 年 7 月開源,社區(qū)保持了相當(dāng)高速的發(fā)展,平均兩個月一個版本,在開源社區(qū)的關(guān)注度持續(xù)走高,也逐漸有越來越多的用戶使用 Flink CDC 來快速構(gòu)建實時數(shù)倉和數(shù)據(jù)湖。
Flink CDC 2.1的改進(jìn)
Flink CDC 2.1 版本重點提升了?MySQL CDC
?連接器的性能和生產(chǎn)穩(wěn)定性,重磅推出?Oracle CDC
?連接器和?MongoDB CDC
?連接器。新增內(nèi)容如下:
(1)MySQL CDC 支持百億級數(shù)據(jù)的超大表,支持 MySQL 全部數(shù)據(jù)類型,通過連接池復(fù)用等優(yōu)化大幅提升穩(wěn)定性。同時提供支持無鎖算法,并發(fā)讀取的 DataStream API,用戶可以借此搭建整庫同步鏈路;
(2)新增 Oracle CDC 連接器, 支持從 Oracle 數(shù)據(jù)庫獲取全量歷史數(shù)據(jù)和增量變更數(shù)據(jù);
(3)新增 MongoDB CDC 連接器,支持從 MongoDB 數(shù)據(jù)庫獲取全量歷史數(shù)據(jù)和增量變更數(shù)據(jù);
(4)所有連接器均支持metadata column
?功能, 用戶通過 SQL 就可以訪問庫名,表名,數(shù)據(jù)變更時間等 meta 信息,這對分庫分表場景的數(shù)據(jù)集成非常實用;
豐富 Flink CDC 入門文檔,增加多種場景的端到端實踐教程。
Flink CDC 1.x 問題點
1、加鎖時間不確定,極端情況會鎖住數(shù)據(jù)庫
針對 一致性加鎖的痛點 Flink cdc 2.x 借鑒 Netflix 的 DBlog paper 設(shè)計了全程無鎖算法
2、因為 Flink CDC 底層是基于 Debezium,Debezium 架構(gòu)是單節(jié)點,所以 Flink CDC 1.x?只支持單并發(fā)。在全量讀取階段,如果表非常大 (億級別),讀取時間在小時甚至天級別,用戶不能通過增加資源去提升作業(yè)速度。
3、全量讀取階段不支持 checkpoint
Flink CDC ?讀取分為兩個階段,全量讀取和增量讀取,目前全量讀取階段是不支持 checkpoint 的;
因此會存在一個問題:當(dāng)我們同步全量數(shù)據(jù)時,假設(shè)需要 5 個小時,當(dāng)我們同步了 4 小時的時候作業(yè)失敗,這時候就需要重新開始,再讀取 5 個小時。
Flink cdc 2.x 中定期為源執(zhí)行檢查點,在故障轉(zhuǎn)移的情況下,作業(yè)將從上次成功的檢查點狀態(tài)重新啟動并恢復(fù),并保證恰好一次語義。文章來源:http://www.zghlxwxcb.cn/news/detail-506567.html
Flink CDC 高頻面試 13 問(萬字長文吐血總結(jié)!)文章來源地址http://www.zghlxwxcb.cn/news/detail-506567.html
到了這里,關(guān)于Flink CDC介紹及原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!