变更数据捕获 (CDC) 提取处理
本页将指导您在 BigQuery 中使用 Google Cloud Cortex Framework 进行变更数据捕获 (CDC) 提取。BigQuery 旨在高效存储和分析新数据。
CDC 流程
当源数据系统(如 SAP)中的数据发生更改时,BigQuery 不会修改现有记录, 而是将更新后的信息添加为新记录。为避免重复,需要随后应用合并操作。此过程称为变更数据捕获 (CDC) 提取。
SAP 的数据基础架构包含用于为
Managed Service for Apache Airflow 或 Apache Airflow 创建脚本的选项,以 合并
或 upsert 因更新而产生的新记录,并仅在新数据集中保留
最新版本。为了使这些脚本能够正常运行,表需要具有一些特定字段:
operation_flag:此标志用于告知脚本记录是插入、更新还是删除的。recordstamp:此时间戳有助于识别记录的最新版本。此标志用于指明记录是:- 已插入 (I)
- 已更新 (U)
- 已删除 (D)
通过利用 CDC 处理,您可以确保 BigQuery 数据准确反映源系统的最新状态。 这样可以消除重复条目,并为数据分析提供可靠的基础。
数据集结构
对于所有受支持的数据源,上游系统中的数据首先会复制到 BigQuery 数据集(source 或 replicated dataset),然后更新或合并的结果会插入到另一个数据集(CDC
数据集)中。报告视图从 CDC 数据集中选择数据,以确保报告工具和应用始终具有最新版本的表。
以下流程展示了 SAP 的 CDC 处理如何依赖于 operational_flag 和 recordstamp。

以下流程展示了从 API 到原始数据的集成,以及 Salesforce 的 CDC 处理如何依赖于 Salesforce API 生成的 Id 和
SystemModStamp 字段。

某些复制工具可以在将记录插入 BigQuery 时合并或 upsert 记录,因此生成这些脚本是可选的。在这种情况下,设置中只有一个数据集。报告数据集会从该数据集中提取更新后的记录以进行报告。