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

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

CDC プロセス

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

SAP 用 Data Foundation には、Cloud Composer または 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 の API から元データと CDC 処理への統合

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

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