图文详解CDC技术,看这一篇就够了!
點擊上方“朱小廝的博客”,選擇“設為星標”
后臺回復"書",獲取
后臺回復“k8s”,可領取k8s資料
這篇文章是對變更數據捕獲 (CDC)?實踐的介紹,而不是對特定工具的深入探討。
假設我們正在構建一個簡單的 Web 應用程序。在大多數情況下,此類項目從最小的數據架構開始。例如,像 MySQL 或 PostgreSQL 這樣的關系數據庫足以處理和存儲許多用戶可以使用的數據。他們輸入查詢,更新它們,關閉它們,更正它們,通常會執行許多操作。它可以是 CRM、ERP、自動銀行系統、計費系統,甚至是 POS 終端,應有盡有。
但是,存儲在數據庫中的信息可能會引起許多第三方系統的興趣,通常是分析系統。企業需要了解存儲在該系統中的應用程序或其他實體的狀態——賬戶、存款、制造、人力資源等。數據幾乎在每項業務運營中都發揮著重要作用。因此,企業會定期生成報告,這些報告反映了企業感興趣的所有主要指標,并且是做出進一步管理決策所必需的。
報告和分析計算通常非常消耗資源。查詢可能需要數小時才能完成,這通常會嚴重影響從中檢索數據的系統的性能。另一個缺點是發送所有這些數據會給網絡帶來很大壓力。最后,基于該數據的業務決策由于查詢頻率而延遲。所以,如果你每晚更新數據,那意味著你要到第二天才能知道昨天發生了什么。
如果系統有一個明確的負載減少時間段(例如在夜間),并且這段時間足以卸載所有必要的數據而不影響系統的主要活動——那么使用對 RDBMS 的直接查詢可能是一個可以接受的選項。但是,如果沒有減少負載的時期,或者分配的負載窗口不足以完全卸載整個更改的數據怎么辦?
在這里 CDC 流程來救援。顧名思義,變更數據捕獲只會捕獲數據中的變化,這是復制數據的 ETL 模式之一。它是一種確定我們感興趣的數據的機制,即跟蹤源數據庫中的更改并將其應用于目標數據庫或數據倉庫。并且在目標數據庫或數據倉庫中,我們可以進行所有類型的分析、報告生成等,甚至不會影響源數據庫的性能。
因此,用戶可以在不降低性能的情況下使用原始系統,并且管理層可以隨時獲取他們做出管理決策所需的報告。
CDC
因此,CDC 的本質——通過捕獲數據操作語言 (DML) 更改(插入/更新/刪除)的事實和更改的數據本身來為用戶表提供歷史更改信息。CDC 以可以在上游數據系統中復制的形式提取它們。用行話來說,這樣的數據也被稱為“delta”。
您可以將 CDC 視為一種機制,它不斷監控原始數據系統的更改、提取它們并將它們分發到上游系統。Change Data Capture 通過近乎實時地實現數據的增量加載,排除了批量數據加載的過程。
那么,使用CDC如何解決我們提到的問題呢?
好吧,您沒有定期運行非常大的請求,因為您的負載率實際上是峰值負載行為不會高的,因此,您必須執行網絡以確保及時發送您想要的所有數據,而不是發送所有這些數據并最終因為數據是連續發布的,而且是為了小規模的數據,您可以通過多個數據泄露更多的網絡正常運作,并且顯著地展示您的工作成果,讓您有不同的業務范圍。將數據發送到您的數據倉庫更新,因此倉庫中的數據是最新的,這是為了提供實時信息,以便根據數據業務決策。
變更數據操作數據中心是您最好的數據存儲方式。
提取增量
在分析也是倉庫、CRM、MDM hub、災難時間、提取事務的“delta”是它創建系統的架構任務,當有一段時間的并行操作時,遷移從一個系統的數據項目中的人常有任務交給另一個。
在早期,增量知道我們現在的整個問題列表更新了。將成為一個潛在的可能的結果,并且您可能會遺棄一些數據。
為了確保任何遺失這些數據,但工程師還嘗試了對行進行控制,并得出了大致相同的結果——它可以工作,但它非常資源。不到。
所有的問題都隨著簡單的出現而得到解決。
是數據庫中的一種特殊過程。示例過程的特殊性類型,每次數據庫中的事件發生后,在示例中的 SQL 示例中的簡單示例被執行。
所以,我們需要一個簡單的表來跟蹤所有的更改,以便為每個創建對象創建一個表,該表將用于更改。
但也有一個類——盡管現在表中的數據有任何變化,簡單簡單。但一些CDC產品仍然基于簡單。
CDC的現代方法
我們可以回想一下,數據庫實際上是事務性的,并且具有類似的數據庫日志(也稱為數據庫事務日志或事務日志)之類的功能。幾乎所有管理系統都有事務日志文件,記錄每個事務在我們需要做訪問事務日志的所有數據庫并選擇我們想要跟蹤的更改。
因此,在 CDC 中,更改是使用從事務中讀取更改的,并且會在相應的更改表中設置管理員的過程中通過管理員的。
日志的更改部分是我們正確設置的這些事務并跟蹤實際過去的更改。將它們應用到目標。
現代讀取事務處理在獨立服務器的內存中進行系統處理,突出需要遠程更改這些更改此類型的通知顯示,系統的架構不,并提供了令人印象深刻的源代碼,能夠跟蹤數據發生的變化變化的預測目標。
生產就緒的CDC系統
要制造一個之前需要生產的CDC系統,除了提取之外,我們在一個系統考慮問題:
必須按照發生的變化,否則系統可能會出現的不同狀態;
在傳遞方面,傳遞保證是的,因此,CDC 必須至少傳遞一次及時通知消息,如果后續系統交付了一個變更事件,則可能導致整個系統的狀態;
最后,簡單的消息轉換,因為必須支持不同系統的數據格式可能。
系統的所有消息都報道了——所有消息源對更改源/訂閱的消息進行更改,源源不斷地將系統監聽到系統目標對象,然后在更改消息這些對象時,都可以在更改消息的范圍內。時使用它們。
該解決方案提供了許多好處,擴展性。訂閱方法允許主要消息來源/可以向目標系統發送更多的更新,并且可以相應地擴展此用戶的數量,以便在需要時使用地處理數據。
第二個想要的好處是兩個系統現在連接了。如果源系統更改其數據庫或將特定數據集移動到其他位置,則目標不需要使用像解拉系統那樣進行更改。只要源系統繼續以相同的格式將消息就不會繼續接收到系統更新消息,而顯示源已更改任何內容。
來源:https://luminousmen.com/post/change-data-capture
想知道更多?掃描下面的二維碼關注我
后臺回復"技術",加入技術群
后臺回復“k8s”,可領取k8s資料
總結
以上是生活随笔為你收集整理的图文详解CDC技术,看这一篇就够了!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统、应用监控的缜密思路,堪称性能瓶颈的
- 下一篇: 低至4.7折起!戴尔OptiPlex商用