變更資料擷取 (CDC) 處理程序
本頁將逐步說明如何使用 BigQuery 中的 Google Cloud Cortex Framework 進行變更資料擷取 (CDC)。BigQuery 的設計宗旨是有效率地儲存及分析新資料。
CDC 程序
當來源資料系統 (例如 SAP) 中的資料變更時,BigQuery 不會修改現有記錄。而是以新記錄的形式新增更新資訊。為避免重複,之後需要套用合併作業。這個程序稱為變更資料擷取 (CDC) 處理程序。
SAP 適用的資料基礎包含建立 Cloud Composer 或 Apache Airflow 指令碼的選項,可合併或 upsert
更新後產生的新記錄,並只將最新版本保留在新資料集中。如要讓這些指令碼正常運作,表格必須包含下列特定欄位:
operation_flag
:這個標記會告知指令碼記錄是否已插入、更新或刪除。recordstamp
:這個時間戳記有助於識別記錄的最新版本。這個標記會指出記錄是否為:- 已插入 (I)
- 已更新 (U)
- 已刪除 (D)
使用 CDC 處理程序,可確保 BigQuery 資料準確反映來源系統的最新狀態。這項功能可避免重複輸入資料,並為資料分析提供可靠的基礎。
資料集結構
對於所有支援的資料來源,上游系統的資料會先複製到 BigQuery 資料集 (source
或 replicated dataset
),然後更新或合併的結果會插入另一個資料集 (CDC 資料集)。報表檢視畫面會從 CDC 資料集選取資料,確保報表工具和應用程式一律使用最新版本的資料表。
下圖顯示 SAP 的 CDC 處理程序,取決於 operational_flag
和 recordstamp
。
下圖顯示從 API 整合到原始資料和 Salesforce 的 CDC 處理程序,取決於 Salesforce API 產生的 Id
和 SystemModStamp
欄位。
部分複製工具可在將記錄插入 BigQuery 時合併或 upsert 記錄,因此這些指令碼的產生作業為選用。在本例中,設定只包含單一資料集。報表資料集會從該資料集擷取更新的記錄,以供報表使用。