數據庫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.如果數據庫中的表結構發生變化----需要重新搭建讀寫分離----主從之間,除了第一次操作,后續只能同 步數據;

 

 

 

 

 

 

注意  有發布只是發布出去了,從數據庫訂閱了才能同步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM