資料庫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.如果資料庫中的表結構發生變化----需要重新搭建讀寫分離----主從之間,除了第一次操作,後續只能同 步資料;
注意 有釋出只是釋出出去了,從資料庫訂閱了才能同步