跳至內容

變更數據捕獲:概述、原因及優秀實踐

更新時間
快连VPN:速度和安全性最佳的VPN服务
快连VPN:速度和安全性最佳的VPN服务

現今的企業,尤其是那些把數字化轉型放在首要位置的企業,迫切需要實時數據。傳統的每週和每月批處理已經無法滿足需求。然而,要從多個來源獲取實時數據,並將其用於自動化流程和動態優化決策並不容易。

最近,在對客戶的遺留系統進行重新架構、將單體架構拆分爲微服務時,我們遇到了一個挑戰。我們開始對數據庫進行修改,按模塊對系統進行現代化改造。在這個階段,我們需要確保兩個數據庫保持同步,因爲不同的模塊可能需要相同的數據 — 換句話說,舊系統需要新數據庫中新系統生成的數據,反之亦然。

我們研究了變更數據捕獲(CDC)技術,以確定其是否符合我們的需求。文章詳細介紹了CDC的定義、我們測試過的工具、它們的運作方式和優勢。同時,我們分享了一些案例和建議,幫助其他技術人員在特定情況下選擇適合的CDC工具。

什麼是變更數據捕獲?

數據捕獲是指通過檢測和捕獲源系統中的變更,然後將這些變更幾乎實時地傳遞到目標系統的過程。這些變更可能包括插入、刪除、更新操作以及數據庫結構的DDL更改。

變更數據捕獲工具的工作原理

CDC工具通過監控源系統中的數據變更來實現其功能。一旦發現變更,CDC工具會捕獲並記錄在指定位置,如數據庫或日誌文件。隨後,經過處理和轉換的數據會被加載到目標系統,如數據倉庫或分析平臺中。

有多種捕獲數據庫變更的方法。讓我們來看看其中的一些:

1.基於時間戳/查詢的

在這一方法中,我們會在源中維護一些類似於CREATED_AT、LAST_UPDATED或DATE_MODIFIED的審計列,並通過查詢源中的數據來檢測這些列中的變化,以此來捕獲任何數據的更改。需要注意的是,這種方式並不能記錄刪除操作。

2.基於觸發器的

觸發器是數據庫中根據特定事件執行操作的函數。儘管可用於捕獲任何變更,包括刪除操作,但會降低數據庫性能,因爲每次事件都需要進行多次寫入。

3.基於日誌的

數據庫包含事務日誌用於在發生崩潰時進行恢復,存儲所有事件。通過基於日誌的CDC,新數據庫事務直接從本機日誌中讀取,這樣可以捕獲變更,而無需掃描源表,因此更爲高效。

這種方法類似於事件驅動架構中的事件溯源,每當系統狀態發生變化時,我們將其記錄爲一個事件。記錄的事件可以通過以相同的順序重播來隨時重建系統狀態。

爲什麼使用CDC?

根據情況、應用程序、架構和業務需求,CDC在許多場景下都是至關重要的。以下是CDC有助於工程過程的一些方式:

  • 實時數據可用性:CDC工具以幾乎實時的方式捕獲變更,確保最新的數據可用於分析、報告或進一步處理。
  • 更快的決策制定:CDC有助於減少捕獲和數據可用性之間的延遲,實現更快的分析和決策制定。
  • 高效的數據集成:CDC工具有助於從多個操作源捕獲數據,並將其轉換爲單一目標數據庫或數據湖中的通用格式。
  • 目標數據庫的定製設計:CDC提供跨功能的好處,比如在CQRS系統中創建只讀搜索或查詢數據庫、創建審計數據庫,或在數據倉庫中捕獲數據。它允許將非功能性和架構需求與主要數據存儲解耦。
  • 簡化的數據遷移:在我們的情況下,CDC有助於在現代化階段維護遺留和新數據庫之間的數據一致性。這也適用於其他各種數據遷移場景。

如何選擇合適的CDC工具?

市場上有幾種CDC工具,比如Oracle Golden Gate、Debezium、IBM Infosphere、Striim、StreamSets和Qlik Replicate。這些工具可以是開源的或付費的。它們通常支持本地和雲環境,並能處理各種數據源。在選擇時,考慮以下幾點:

  • 與數據源的兼容性:至少,您選擇的工具必須與您想要捕獲變更的所有數據源兼容。
  • 實時數據捕獲:工具應該以幾乎實時的方式捕獲變更,以便您能夠使用最新的數據。
  • 數據轉換和集成:CDC工具應該能夠處理從源到目標數據類型的數據轉換。
  • 價格:CDC工具必須對您的用例具有成本效益。有開源、付費和許可產品可供選擇。
  • 使用便捷性和支持:工具應該對您的團隊易於使用,並提供充分的支持,包括全面的文檔和技術支持。
  • 其他功能:根據您的需求,您可能還想檢查其他特定功能,比如源和目標之間的雙向同步和雲支持。

隨着企業變得以技術爲驅動,歷史和當前的數據將成爲一個至關重要的差異化因素。實現精確、及時、高效和具有成本效益的變更數據捕獲將成爲任何技術轉型計劃的重要組成部分。當您面臨這種情況時,希望本文能對您有所幫助。

以上就是變更數據捕獲:概述、原因及優秀實踐的詳細內容,更多請關注本站其它相關文章!

更新時間

發表留言

請注意,留言須先通過審核才能發佈。