変更データ キャプチャ(CDC)処理

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

CDC プロセス

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

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

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

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

データセットの構造

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

次のフロー図は、operational_flagrecordstamp に応じて SAP の CDC 処理がどのように行われるかを示しています。

SAP の CDC 処理の例

図 1SAP の CDC 処理の例。

次のフロー図は、Salesforce API によって生成された Id フィールドと SystemModStamp フィールドに応じて、API から Salesforce の元データと CDC 処理への統合を示しています。

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

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

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