変更データ キャプチャ(CDC)の取り込み処理

このページでは、BigQuery の Google Cloud Cortex Framework 内での変更データ キャプチャ(CDC)の取り込みについて説明します。BigQuery は、新しいデータを効率的に保存して分析するように設計されています。

CDC プロセス

ソースデータ システム(SAP など)でデータが変更されても、BigQuery は既存のレコードを変更しません。代わりに、更新された情報は新しいレコードとして追加されます。重複を避けるため、後でマージ オペレーションを適用する必要があります。このプロセスは、変更データ キャプチャ(CDC)取り込みと呼ばれます。

SAP 用 Data Foundation には、Managed Service for Apache Airflow または Apache Airflow のスクリプトを作成して、更新によって生成された新しいレコードを統合または upsert し、最新バージョンのみを新しいデータセットに保持するオプションがあります。これらのスクリプトが機能するには、テーブルに特定のフィールドが必要です。

  • operation_flag: このフラグは、レコードが挿入、更新、削除されたかどうかをスクリプトに伝えます。
  • recordstamp: このタイムスタンプは、レコードの最新バージョンを特定するのに役立ちます。このフラグは、レコードが次のいずれであるかを示します。
    • 挿入(I)
    • 更新済み(U)
    • 削除済み(D)

CDC 処理を利用することで、BigQuery データにソースシステムの最新の状態が正確に反映されるようになります。これにより、重複するエントリが排除され、データ分析の信頼性の高い基盤が提供されます。

データセットの構造

サポートされているすべてのデータソースについて、上流システムのデータはまず BigQuery データセット(source または replicated dataset)に複製され、更新または統合された結果が別のデータセット(CDC データセット)に挿入されます。レポートビューは CDC データセットからデータを選択し、レポートツールとアプリケーションが常に最新バージョンのテーブルを使用できるようにします。

次のフローは、operational_flagrecordstamp に依存する SAP の CDC 処理を示しています。

SAP の CDC 処理の例

図 1. SAP の CDC 処理の例。

次のフローは、Salesforce API によって生成される Id フィールドと SystemModStamp フィールドに依存する、API から Salesforce の未加工データと CDC 処理への統合を示しています。

Salesforce の元データと CDC 処理への API からの統合

図 2. API から Salesforce の元データと CDC 処理への統合。

一部のレプリケーション ツールでは、レコードを BigQuery に挿入するときにレコードを統合または upsert できるため、これらのスクリプトの生成は省略可能です。この場合、設定には 1 つのデータセットのみが含まれます。レポート用データセットは、そのデータセットからレポート用の更新されたレコードを取得します。