首頁 > 電腦教學 > 電腦知識 > 變更資料擷取:概述、原因及優秀實踐

變更資料擷取:概述、原因及優秀實踐

WBOY
發布: 2024-02-19 15:42:18
轉載
577 人瀏覽過

變更資料擷取:概述、原因及優秀實踐

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

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

我們研究了變更資料擷取(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工具必須對您的用例具有成本效益。有開源、付費和授權產品可供選擇。
  • 使用便利性和支援:工具應該對您的團隊易於使用,並提供充分的支持,包括全面的文件和技術支援。
  • 其他功能:根據您的需求,您可能還想檢查其他特定功能,例如來源和目標之間的雙向同步和雲端支援。

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

以上是變更資料擷取:概述、原因及優秀實踐的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:mryunwei.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板