复制作业中的更改数据捕获(CDC)(预览版)

本文介绍复制作业中的变更数据捕获(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:

  1. 确保在支持的源存储中的数据库和表上启用变更数据捕获(CDC)。 在本例中,它是 Azure SQL DB。

    显示如何启用 cdc db 的屏幕截图。

    显示如何启用 cdc 表的屏幕截图。

    注释

    • 建议为上述所有表启用 CDC。
    • 请确保已启用"supports_net_changes"功能。
    • 源表中的所有列都必须标识为默认捕获的列。

    “启用和禁用更改数据捕获”中了解详细信息 - SQL Server |Microsoft Learn

  2. 选择 “+ 新建项”,选择 “复制作业 ”图标,命名复制作业,然后单击“ 创建”。

    展示如何导航到数据工厂主页并创建新复制作业的屏幕截图。

  3. 选择要从中复制数据的数据存储。 在此示例中,选择 Azure SQL DB

    显示复制作业的数据源选择位置的屏幕截图。

  4. 输入 服务器路径凭据 以连接到 Azure SQL DB。 可以使用本地网关或 VNET 网关在 VNET 环境中安全地复制数据。

    显示输入凭据的位置的屏幕截图。

  5. 应清楚地看到已启用 CDC 的源表。 选择 已启用 CDC 的表 进行复制。

    启用了 CDC 的表: 显示 cdc 表图标的屏幕截图。

    未启用 CDC 的表: 显示无 cdc 表图标的屏幕截图。

    显示复制作业的 cdc 表选择位置的屏幕截图。

  6. 选择目标商店。 在此示例中,选择另一个 Azure SQL DB

    屏幕截图显示在哪里选择复制作业的目标存储位置。

  7. 默认 的 Update 方法 应设置为 “合并”,并且所需的键列将默认与源存储中定义的主键匹配。

    显示 CDC 更新方法的屏幕截图。

  8. 选择增量复制,您会发现不需要为每个表输入增量列来跟踪更改。

    注释

    复制作业最初执行完整加载,随后通过 CDC 在后续运行中执行增量复制。

    屏幕截图显示如何选择 CDC。

  9. 查看作业摘要,将运行选项设置为按计划,然后单击“ 保存 + 运行”。

    屏幕截图显示在哪里查看和保存新创建的复制任务。

    注释

    请确保 CDC 日志保留期长于计划运行之间的间隔;否则,如果保留期内未处理,CDC 捕获的已更改数据可能会丢失。

  10. 复制作业将立即启动。 第一次运行将复制初始完整快照。

    屏幕截图显示“复制作业”面板,您可以在其中监视初始的完整快照。

  11. 通过插入、更新或删除行来更新源表。

    更新行的步骤示意图。

  12. 再次运行复制作业以获取并复制所有更改,包括插入、更新和删除的行,并将其复制到目标。

    显示“复制作业”面板的屏幕截图,可在其中监视捕获和复制所有更改。

已知的限制

  • 在复制任务中选择启用 CDC 的源表和未启用 CDC 的源表时,所有表都会被视为基于标记的增量复制。
  • 如果选择启用了 CDC 的源表,则无法配置列映射和临时数据库。
  • 不支持自定义捕获实例;仅支持默认捕获实例。
  • 启用 CDC 的源数据存储尚不支持 SCD2。
  • 复制作业尚不支持 DDL。