本文介绍复制作业中的变更数据捕获(CDC)功能及其用法。
复制作业中的更改数据捕获 (CDC) 是什么
复制作业中的更改数据捕获(CDC)是 Fabric 数据工厂中的一项强大功能,可高效自动复制已更改的数据,包括从源插入、更新和删除的记录到目标。 这可确保目标数据保持最新状态,无需手动工作,从而提高数据集成的效率,同时减少源系统上的负载。
复制作业中 CDC 的主要优势
- 零手动干预:直接从源自动捕获增量更改(插入、更新、删除)。
- 自动复制:使目标数据与源更改持续同步。
- 优化性能:仅处理已更改的数据,减少处理时间,并最大限度地减少源上的负载。
- 更智能的增量复制:自动检测已启用 CDC 的源表,并允许为每个表选择基于 CDC 的或基于水印的增量复制。
工作原理:基于 CDC 的增量复制与基于水印的增量复制
- 基于 CDC 的增量复制:如果源数据库已启用 CDC,复制作业会自动捕获并复制目标中的插入、更新和删除,并应用确切的更改。
- 基于水印的增量复制:如果源数据库上未启用 CDC,则复制作业会根据上次运行比较增量列(例如时间戳或 ID)来检测更改,然后根据配置将更改的数据追加或合并到目标。
受支持的连接器
目前在复制作业中,CDC 支持以下源和目标数据存储。 我们正在添加更多内容,请随时关注。
支持的源存储:
- Azure SQL DB
- 本地 SQL Server
- Azure SQL 托管实例
支持的目标存储:
- Azure SQL DB
- 本地 SQL Server
- Azure SQL 托管实例
如何开始:
完成以下步骤,创建新的复制作业,以便通过 CDC 将数据从 Azure SQL DB 引入到另一个 Azure SQL DB:
确保在支持的源存储中的数据库和表上启用变更数据捕获(CDC)。 在本例中,它是 Azure SQL DB。
注释
- 建议为上述所有表启用 CDC。
- 请确保已启用"supports_net_changes"功能。
- 源表中的所有列都必须标识为默认捕获的列。
选择 “+ 新建项”,选择 “复制作业 ”图标,命名复制作业,然后单击“ 创建”。
选择要从中复制数据的数据存储。 在此示例中,选择 Azure SQL DB。
输入 服务器路径 和 凭据 以连接到 Azure SQL DB。 可以使用本地网关或 VNET 网关在 VNET 环境中安全地复制数据。
应清楚地看到已启用 CDC 的源表。 选择 已启用 CDC 的表 进行复制。
启用了 CDC 的表:
未启用 CDC 的表:
选择目标商店。 在此示例中,选择另一个 Azure SQL DB。
默认 的 Update 方法 应设置为 “合并”,并且所需的键列将默认与源存储中定义的主键匹配。
选择增量复制,您会发现不需要为每个表输入增量列来跟踪更改。
注释
复制作业最初执行完整加载,随后通过 CDC 在后续运行中执行增量复制。
查看作业摘要,将运行选项设置为按计划,然后单击“ 保存 + 运行”。
注释
请确保 CDC 日志保留期长于计划运行之间的间隔;否则,如果保留期内未处理,CDC 捕获的已更改数据可能会丢失。
复制作业将立即启动。 第一次运行将复制初始完整快照。
通过插入、更新或删除行来更新源表。
再次运行复制作业以获取并复制所有更改,包括插入、更新和删除的行,并将其复制到目标。
已知的限制
- 在复制任务中选择启用 CDC 的源表和未启用 CDC 的源表时,所有表都会被视为基于标记的增量复制。
- 如果选择启用了 CDC 的源表,则无法配置列映射和临时数据库。
- 不支持自定义捕获实例;仅支持默认捕获实例。
- 启用 CDC 的源数据存储尚不支持 SCD2。
- 复制作业尚不支持 DDL。