變更資料擷取 (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 的原始資料和變更資料擷取處理程序。

部分複製工具可在將記錄插入 BigQuery 時合併或 upsert 記錄,因此這些指令碼的產生作業為選用。在本例中,設定只包含單一資料集。報表資料集會從該資料集擷取更新的記錄,以供報表使用。