數(shù)據(jù)抽取中的CDC(變化數(shù)據(jù)捕獲)方式

? ? ? ?考慮一個(gè)問題:需要抽取哪部分?jǐn)?shù)據(jù)加載到數(shù)據(jù)倉庫?是完全抽取還是變化數(shù)據(jù)捕獲?
? ? ? ?如果數(shù)據(jù)量很小,則采取完全源數(shù)據(jù)抽??;如果源數(shù)據(jù)量很大,則抽取變化的源數(shù)據(jù),這種數(shù)據(jù)抽取模式叫做變化數(shù)據(jù)捕獲,簡(jiǎn)稱CDC。
? ? ? ?CDC大體分為兩種:侵入式和非侵入式。侵入式指CDC操作會(huì)給源系統(tǒng)帶來性能影響,只要CDC操作以任何一種方式對(duì)源數(shù)據(jù)庫執(zhí)行了SQL操作,就認(rèn)為是侵入式的。
? ? ? ?常用的4種CDC方法是:基于時(shí)間戳的CDC、基于觸發(fā)器的CDC、基于快照的CDC和基于日志的CDC,其中前三種是侵入式的。

1.基于時(shí)間戳的CDC

? ? ? ?抽取過程可以根據(jù)某些屬性列來判斷哪些數(shù)據(jù)是增量的,最常見的屬性列有以下兩種:
1.時(shí)間戳:最好有兩個(gè)列,一個(gè)插入時(shí)間戳,表示何時(shí)創(chuàng)建,一個(gè)更新時(shí)間戳,表示最后一次更新的時(shí)間。
2.序列:大多數(shù)數(shù)據(jù)庫都提供自增功能,如果數(shù)據(jù)庫表列被定義成自增的,就可以很容易地根據(jù)該列識(shí)別新插入的數(shù)據(jù)。

? ? ? ?這種方法是最簡(jiǎn)單且常用的,但是有如下缺點(diǎn):
1.不能記錄刪除記錄的操作
2.無法識(shí)別多次更新
3.不具有實(shí)時(shí)能力

2.基于觸發(fā)器的CDC

? ? ? ?當(dāng)執(zhí)行INSERT、UPDATE、DELETE這些SQL語句時(shí),可以激活數(shù)據(jù)庫里的觸發(fā)器,并執(zhí)行一些動(dòng)作,就是說觸發(fā)器可以用來捕獲變更的數(shù)據(jù)并把數(shù)據(jù)保存在中間臨時(shí)表里。然后這些變更數(shù)據(jù)再從臨時(shí)表取出,抽取到數(shù)據(jù)倉庫的過渡區(qū)中。大多數(shù)場(chǎng)合下,不允許向操作型數(shù)據(jù)庫里添加觸發(fā)器,且這種方法會(huì)降低系統(tǒng)性能,所以用的不多。
? ? ? ?可以使用源數(shù)據(jù)庫的復(fù)制功能,將源庫的數(shù)據(jù)備用到備用庫上,在備庫上創(chuàng)建觸發(fā)器。

3.基于快照的CDC

? ? ? ?如果沒有時(shí)間戳,不允許使用觸發(fā)器,就要使用快照表??梢酝ㄟ^比較源表和快照表來獲得數(shù)據(jù)變化。
? ? ? ?基于快照的CDC可以檢測(cè)到插入、更新和刪除的數(shù)據(jù),這是相對(duì)于基于時(shí)間戳的CDC方案的有點(diǎn)。其缺點(diǎn)是需要大量存儲(chǔ)空間來保存快照。

4.基于日志的CDC

? ? ? ?最復(fù)雜的和沒有侵入性的CDC方法是基于日志的方式。數(shù)據(jù)庫會(huì)把每個(gè)插入、更新、刪除操作記錄到日志里。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,279評(píng)論 2 89
  • 宮崎駿的《千與千尋》里,那個(gè)無臉男給我的感動(dòng)很深刻。我所理解的他是一種孤獨(dú)到極點(diǎn)的代表。當(dāng)遇到善良的小千時(shí),他的世...
    瑜伽喵閱讀 825評(píng)論 17 14
  • 剪短的發(fā),不帶一絲凌亂與分叉 一絲絲,一縷縷, 宣告分離的神秘與神話; 暗暗的紅,裝點(diǎn)久違的黑色揮灑, 一處處,一...
    Hnlyx閱讀 448評(píng)論 0 0
  • 之前一直在追求干貨,原因很簡(jiǎn)單,簡(jiǎn)單快捷省時(shí)省里,唯一需要付出的就是對(duì)他們的理解而已,簡(jiǎn)直是高效學(xué)習(xí)的不二之選。 ...
    四橫閱讀 272評(píng)論 0 0

友情鏈接更多精彩內(nèi)容