變更資料擷取 (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 資料集 (sourcereplicated dataset),更新或合併的結果則會插入另一個資料集 (CDC 資料集)。報表檢視畫面會從 CDC 資料集選取資料,確保報表工具和應用程式一律使用最新版本的資料表。

下圖顯示 SAP 的 CDC 處理程序,取決於 operational_flagrecordstamp

SAP 的 CDC 處理範例

圖 1:SAP 的 CDC 處理範例。

下圖顯示從 API 整合到原始資料和 Salesforce 的 CDC 處理程序,取決於 Salesforce API 產生的 IdSystemModStamp 欄位。

從 API 整合至原始資料,並處理 Salesforce 的變更資料擷取

圖 2:從 API 整合到 Salesforce 的原始資料和 CDC 處理程序。

部分複製工具會在將記錄插入 BigQuery 時合併或 upsert 記錄,因此您可以選擇是否要產生這些指令碼。在這個範例中,設定只包含單一資料集。報表資料集會從該資料集擷取更新的記錄,以用於報表。