1. 程式人生 > 其它 >資料庫CDC 四種方式 重點(快照發布訂閱)

資料庫CDC 四種方式 重點(快照發布訂閱)

一、資料庫CDC是什麼

CDC 是change data capture,即變化資料捕捉。是資料庫進行備份的一種方式,常用於大量資料的備份工作。分為入侵式的和非入侵式的備份方法,入侵式的有基於觸發器備份、基於時間戳備份、基於快照備份,非入侵式的備份方法是基於日誌的備份。

四種CDC方案比較優劣

   抽取處理需要重點考慮增量抽取,也被稱為變化資料捕獲,簡稱CDC。假設一個數據倉庫系統,在每天夜裡的業務低峰時間從操作型源系統抽取資料,那麼增量抽取只需要過去24小時內發生變化的資料。變化資料捕獲也是建立準實時資料倉庫的關鍵技術。
  當你能夠識別並獲得最近發生變化的資料時,抽取及其後面的轉換、裝載操作顯然都會變得更高效,因為要處理的資料量會小很多。遺憾的是,很多源系統很難識別出最近變化的資料,或者必須侵入源系統才能做到。變化資料捕獲是資料抽取中典型的技術挑戰。

   常用的變化資料捕獲方法有時間戳、快照、觸發器和日誌四種。相信熟悉資料庫的讀者對這些方法都不會陌生。時間戳方法需要源系統有相應的資料列表示最後的資料變化。快照方法可以使用資料庫系統自帶的機制實現,如Oracle的物化檢視技術,也可以自己實現相關邏輯,但會比較複雜。觸發器是關係資料庫系統具有的特性,源表上建立的觸發器會在對該表執行insert、update、delete等語句時被觸發,觸發器中的邏輯用於捕獲資料的變化。日誌可以使用應用日誌或系統日誌,這種方式對源系統不具有侵入性,但需要額外的日誌解析工作。

  CDC大體可以分為兩種,一種是侵入式的,另一種是非侵入式的。所謂侵入式的是指CDC操作會給源系統帶來效能的影響。只要CDC操作以任何一種方式對源庫執行了SQL語句,就可以認為是侵入式的CDC。基於時間戳的CDC、基於觸發器的CDC、基於快照的CDC是侵入性的,基於日誌的CDC是非侵入性的。

   下表總結了四種CDC方案的特點。

資料庫讀寫分離

一、二八原則 資料庫層面:

二八原則---資料庫的資料操作中,查詢佔據了80%,增刪改---佔據了20%;

應用型系統中:功能上來說,無論做什麼操作----必先要查詢,要展示; 如果要讓資料庫反應快,效能高---可以考慮優先解決掉關於資料中的查詢量多的問題;

想到關於叢集; 可以把這80%的操作做一個叢集----多個伺服器來共同承擔查詢的業務訴求;

然後把對於資料庫中資料的 操作也來一個分流;

---多個伺服器來共同承載我們對於資料庫的操作;----必然降低了單個數據庫服務 器的壓力,增強了響應速度;

優勢:

1.效能增強了---有更多的硬體來參與資料處理

2.SqlServer自帶的功能--資料同步很快

劣勢

1.資料同步也有延遲,如果我一插入資料,就馬上需要把資料查詢出來;---可以解決. 1. 業務妥協 2. 直接查詢主庫

2.操作資料庫的時候---變複雜了

3.如果資料庫中的表結構發生變化----需要重新搭建讀寫分離----主從之間,除了第一次操作,後續只能同 步資料;

注意 有釋出只是釋出出去了,從資料庫訂閱了才能同步