什么是變化數(shù)據(jù)捕獲(CDC)?
2022-06-30 18:19:06
次
在進(jìn)行數(shù)據(jù)ETL過(guò)程中,我們經(jīng)常需要通過(guò)周期性的定時(shí)調(diào)度將業(yè)務(wù)數(shù)據(jù)按照T+1的方式同步到數(shù)據(jù)倉(cāng)庫(kù)中,進(jìn)行數(shù)據(jù)分析處理,最終通過(guò)BI報(bào)表展示給最終用戶,但這種方式實(shí)時(shí)性較差,用戶往往只能看到昨天的數(shù)據(jù),會(huì)影響用戶決策的及時(shí)性;而如果用戶要近實(shí)時(shí)的查看報(bào)表,則需要將調(diào)度周期頻率提高到小時(shí)或分鐘,這對(duì)整個(gè)數(shù)據(jù)分析系統(tǒng)是個(gè)很大的考驗(yàn);而上述過(guò)程也只適用于數(shù)據(jù)不斷新增的情況,如果遇到業(yè)務(wù)數(shù)據(jù)修改、刪除的過(guò)程,則只能每次全量同步覆蓋;在面對(duì)上述數(shù)據(jù)同步過(guò)程中數(shù)據(jù)時(shí)效性要求高、歷史數(shù)據(jù)會(huì)變更的問(wèn)題,我們可以使用變化數(shù)據(jù)捕獲技術(shù)進(jìn)行數(shù)據(jù)的實(shí)時(shí)同步。
什么是變化數(shù)據(jù)捕獲?
變化數(shù)據(jù)捕獲 (Change Data Capture,縮寫CDC) 是指識(shí)別和捕獲對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)所做的更改(包括數(shù)據(jù)或數(shù)據(jù)表的插入、更新、刪除等),然后將這些更改按發(fā)生的順序完整記錄下來(lái),并實(shí)時(shí)通過(guò)消息中間件傳送到下游流程或系統(tǒng)的過(guò)程。通過(guò)這種方式,CDC能夠向數(shù)據(jù)倉(cāng)庫(kù)提供高效、低延遲的數(shù)據(jù)傳輸,以便信息被及時(shí)轉(zhuǎn)換并交付給專供分析的應(yīng)用程序。

CDC具備那些優(yōu)點(diǎn)呢?
對(duì)于各種時(shí)間敏感類的數(shù)據(jù)很適合通過(guò)CDC的方式進(jìn)行同步傳輸,其具備以下好處:
- 通過(guò)增量加載或?qū)?shù)據(jù)更改實(shí)時(shí)流式傳輸,而無(wú)需周期性調(diào)度執(zhí)行批量加載更新操作。
- CDC實(shí)時(shí)同步傳輸數(shù)據(jù),它利于不停機(jī)的數(shù)據(jù)庫(kù)遷移,并支持實(shí)時(shí)分析,可以幫助用戶根據(jù)最新的數(shù)據(jù)做出更快、更準(zhǔn)確的決策。
- CDC最大限度地減少了數(shù)據(jù)的傳輸網(wǎng)絡(luò)流量,適合跨廣域網(wǎng)傳輸數(shù)據(jù)。
- CDC可以確保多個(gè)系統(tǒng)中的數(shù)據(jù)保持同步。
CDC的使用場(chǎng)景有哪些呢?
CDC技術(shù)的應(yīng)用場(chǎng)景非常廣泛,包括:
- 數(shù)據(jù)分發(fā):將一個(gè)數(shù)據(jù)源的數(shù)據(jù)分發(fā)給多個(gè)下游業(yè)務(wù)系統(tǒng),常用于業(yè)務(wù)解耦、微服務(wù)系統(tǒng)。
- 數(shù)據(jù)采集:面向數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)湖的ETL數(shù)據(jù)集成,消除數(shù)據(jù)孤島,便于后續(xù)的分析。
- 數(shù)據(jù)同步:常用于數(shù)據(jù)備份、容災(zāi)等。