變更資料擷取 (CDC) 是追蹤及擷取來源系統 (例如交易資料庫、資料倉儲或 SaaS 應用程式) 資料變更的程序。CDC 可即時記錄變更,讓您同步處理系統、進行數據分析、訓練 AI 模型,並順暢遷移資料。
瞭解資料庫中的變更,對於維護資料完整性、提升工作流程效率及取得即時洞察資訊至關重要。零售業是常見的例子,當顧客下單時,CDC 會立即從交易資料庫擷取銷售資料。Google Cloud 的 Datastream 等 CDC 服務可將地端部署 PostgreSQL 資料庫的變更複製到 BigQuery 資料倉儲,近乎即時地提供數據分析資訊主頁,不必等待每晚緩慢的批次工作。
變更資料擷取 (CDC) 是用來識別及擷取來源系統資料異動 (例如插入、更新和刪除) 的程序,通常以近乎即時的方式進行。CDC 以下列特色聞名:
ETL 是「擷取、轉換、載入」的縮寫,這個程序會從來源系統擷取原始資料,將資料轉換成必要的結構,然後載入目標系統,通常是資料倉儲。ETL 可確保資料井然有序、乾淨,且可供下游用於數據分析或應用程式。
傳統上,ETL 會在夜間以大型排程批次執行。也就是說,目標系統中的資料只會與最近一次批次作業的資料一樣新。
主要差異在於 CDC 擷取資料的方式。CDC 會在變更發生時擷取資料,而非批次擷取資料,因此您隨時都能查詢最新資料,不必仰賴定期批次處理。有助於您更快應對變化,並獲得更準確的洞察資料。
變更資料擷取主要著重於有效率地從來源資料庫擷取所有增量變更,通常是近乎即時,以盡可能減輕來源系統的負擔。
相較之下,緩慢變動維度 (SCD) 是目標資料倉儲或數據分析系統採用的資料建模技術,著重於如何長期儲存及管理維度資料的歷來狀態 (例如客戶記錄或產品屬性)。
CDC 是有效傳輸變更資料的工具,但這些變更通常會透過特定的 SCD 策略套用,以在目標系統中維持完整且準確的歷來資料。
變更資料擷取功能可做為強大的橋梁,連結構成現代資料堆疊或資料雲端的各種系統。CDC 工具的設計宗旨是與各種來源和目的地搭配使用,而非僅限於特定資料庫。
交易資料庫是最常見的 CDC 資料來源,可擷取執行日常業務作業的系統中,所有插入、更新和刪除的資料。
這些系統通常是 CDC 資料的主要目的地,可整合多個來源的資訊,用於商業智慧、數據分析和 AI。
使用 CDC 從重要業務平台 (通常透過 API 或 Webhook) 擷取變更資料,在整個機構同步處理顧客、銷售或支援資料。
串流和訊息平台通常會做為即時訊息匯流排,從來源接收變更事件,並同時將這些事件分配給多個下游消費者。
物件儲存庫是原始 CDC 事件記錄的常見目的地,可做為可擴充且符合成本效益的基礎,用來建構資料湖泊。
CDC 可用於各種重要用途,包括確保資料持續性、支援即時分析和 AI 等。
當資料發生異動時,CDC 會隨即擷取並傳播變更,確保多個系統 (例如主要資料庫和備份資料庫,或主要資料庫和數據分析平台) 隨時保持同步。這樣可消除資料差異,並確保所有平台上的資料完整性。
為了找出、追蹤及擷取來源資料庫中的資料變更,變更資料擷取技術會使用各種方法,包括:
資料庫是變更資料擷取最常見且可靠的來源,因為所有資料庫共用一個核心元件:交易記錄。這個記錄是不可變更的有序記錄,記錄了所有變更,因此是準確且有效率擷取資料修改內容的完美基礎,而且不會影響資料庫效能。以下將深入探討這些重要概念。
在將資料寫入實際的資料庫資料表前,變更 (插入、更新或刪除) 會先記錄在交易記錄中。現代 CDC 工具會利用這個記錄,以非侵入式方式擷取變更。這是資料庫複製技術的核心部分,雖然概念通用,但熱門資料庫對此記錄的命名各不相同。以下列舉幾個知名案例:
對於現有的大型資料庫,由於網路效能和其他限制,從交易記錄讀取完整歷程記錄可能不切實際。常見的實際做法是先執行大量載入,再使用 CDC 同步處理。這項程序包括:
這種「快照與追趕」方法可確保目的地完全填入歷來資料,並與後續所有即時變更保持完美同步。Google Cloud 的 Datastream 和資料庫遷移服務等代管服務,就是以這種方式執行流暢可靠的補充作業。
為了可靠地管理這個程序,CDC 會使用交易記錄中的專屬 ID,通常稱為記錄序號 (LSN)。這些數字可做為變更串流的精確書籤。這類工具對下列作業至關重要:
交易記錄、初始快照和記錄序號等機制會相互配合,使資料庫 CDC 兼具高效率和高可靠性。
CDC 可帶來多項優勢,是現代資料工作流程不可或缺的技術:
確保各系統的資料一致性
在資料異動時同步處理變更,減少差異,確保各平台資料更準確。
有效率的資料遷移
只擷取變更內容,而非整個資料集,大幅減輕系統負擔和網路用量。
完美整合
使用預先建構的連接器程式庫,連結您的系統。許多平台提供無程式碼介面,可設定管道並自動管理複雜的後端工作,例如結構定義偏移偵測和傳輸中資料轉換,確保資料流暢不中斷。
作業韌性
自動讓系統和備份保持一致,無需手動操作,有助於災難復原和複製作業。
即時深入分析
幾乎能即時存取最新資料,加快決策速度,並做出更明智的決定。在金融交易、電子商務和物流等步調快速的環境中,資料價值會在幾秒內衰減,因此這項靈活性可提供關鍵優勢。
許多技術與 CDC 重疊或互補,提供不同的資料變更管理方法,並實現即時處理。以下是 CDC 與其他主要做法的比較:
HTAP 將交易 (OLTP) 和數據分析 (OLAP) 工作負載整合至單一系統,可立即分析資料。雖然 HTAP 非常適合在獨立環境中進行統一分析,但可能難以與組織中各種分散的資料來源同步。另一方面,CDC 擅長在多個系統中維持資料一致性,並支援分散式工作流程。
聯合查詢 (以及類似的「外部資料表」做法) 可讓資料倉儲或查詢引擎在執行查詢時,直接從外部來源系統 (例如交易資料庫) 讀取資料。這種做法可直接存取資料所在位置的資訊,不必複製或移動資料。
這個方法可立即存取資料,不必設定複製管道,因此非常適合用於臨時分析或偶爾查詢。不過,如果查詢是經常使用或講求效能,這種做法可能效率不彰,因為每次查詢都會直接對來源作業系統造成負擔。CDC 會主動將變更串流推送至目的地,以利進行最佳化分析,而聯合查詢則會依需求提取資料,因此可能不適合高頻率工作負載。
Kafka 是開放原始碼平台,專為高處理量資料串流和處理作業而設計。Kafka 能有效管理大規模資料流程,但只能輔助 CDC,無法取代這項技術。CDC 著重於即時擷取精確的資料庫變更,而 Kafka 串流則會擷取更廣泛的事件資料,例如網站點擊、IoT 感應器讀數或商品被加入購物車等。這些技術結合後,可打造出強大的即時工作流程。
CDC 採用無程式碼做法來複製資料,而在應用程式層連線的整合技術則採用低程式碼做法,將系統和 SaaS 平台連線。如果想在資料於平台間移動時轉換資料,則應用程式層級的整合產品 (例如 Google Cloud 的 Application Integration) 會是更適合的工具。
Datastream 是 Google Cloud 的無伺服器變更資料擷取 (CDC) 和複製服務,不僅可靠且易於使用。這項服務可將延遲時間降至最低,同時在不同資料庫和應用程式之間同步資料。以下資源可協助您快速上手: