變更資料擷取 (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 記錄,因此您可以選擇是否要產生這些指令碼。在這個範例中,設定只包含單一資料集。報表資料集會從該資料集擷取更新的記錄,以用於報表。