使用变更数据捕获资源将已更改且存在架构演变的数据从 Azure SQL 数据库捕获到 Delta 接收器

适用于: Azure 数据工厂 Azure Synapse Analytics

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

在本文中,你将使用 Azure 数据工厂用户界面创建变更数据捕获 (CDC) 资源。 该资源会从 Azure SQL 数据库源中选取已更改的数据,并将其实时添加到存储在 Azure Data Lake Storage Gen2 中的 Delta Lake。 此活动通过在源和接收器之间使用 CDC 资源来展示对架构演变的支持。

在本文中,学习如何:

  • 创建 CDC 资源。
  • 对源表进行动态架构更改。
  • 验证目标 Delta 接收器处的架构更改。

可以修改和扩展本文中的配置模式。

先决条件

在开始本文的过程之前,请确保具有以下资源:

  • Azure 订阅。 如果没有 Azure 订阅,请创建一个试用 Azure 帐户
  • SQL 数据库。 使用 Azure SQL 数据库作为源数据存储。 如果没有 SQL 数据库,请在 Azure 门户中创建一个。
  • 存储帐户: 使用存储在 Azure Data Lake Storage Gen2 中的 Delta Lake 作为目标数据存储。 如果没有存储帐户,请参阅创建存储帐户以获取创建步骤。

创建 CDC 项目

  1. 转到数据工厂中的“创作”窗格。 在“管道”下,会出现一个名为“变更数据捕获(预览版)”的新顶级项目。

    屏幕截图显示“工厂资源”窗格上用于变更数据捕获的新顶级项目。

  2. 将光标悬停在“变更数据捕获(预览版)”上,直到出现三个点。 然后,选择“变更数据捕获(预览版)操作”。

    屏幕截图显示新顶级项目上方出现的变更数据捕获操作按钮。

  3. 选择“新建 CDC(预览版)”。 此步骤会打开用于开始引导式过程的浮出控件。

    屏幕截图显示变更数据捕获操作列表。

  4. 系统会提示你为 CDC 资源命名。 默认情况下,名称为“adfcdc”,还带有一个按 1 递增的数字。 可以将此默认名称替换为自己想要的名称。

    屏幕截图显示用于更新资源名称的文本框。

  5. 使用下拉列表选择数据源。 对于本文,请选择“Azure SQL 数据库”。

    屏幕截图显示引导式过程浮出控件,下拉列表中有源选项。

  6. 系统会提示你选择链接服务。 创建新的或选择现有的链接服务。

    屏幕截图显示用于选择或创建链接服务的框。

  7. 选择链接服务后,系统会提示选择源表。 使用复选框选择源表,然后使用下拉列表选择“增量列”值。

    屏幕截图显示源表和增量列的选择。

    该窗格仅列出具有支持的增量列数据类型的表。

    注意

    若要在 Azure SQL 数据库源中启用架构演变的 CDC,请根据水印列而不是启用了本机 SQL CDC 的表来选择表。

  8. 选择源表后,选择“继续”以设置数据目标。

    屏幕截图显示在引导过程中用于选择数据目标的“继续”按钮。

  9. 使用下拉列表选择“目标类型”值。 对于本文,请选择“Delta”。

    屏幕截图显示所有数据目标类型的下拉菜单。

  10. 系统会提示你选择链接服务。 创建新的或选择现有的链接服务。

    屏幕截图显示用于为数据目标选择或创建链接服务的框。

  11. 选择目标数据文件夹。 你可以使用:

    • “目标基路径”下的“浏览”按钮,它会帮助你自动填充为源选择的所有新表的浏览路径。
    • 外部的“浏览”按钮,它可以单独选择文件夹路径。

    用于浏览文件夹路径的文件夹图标的屏幕截图。

  12. 选择文件夹路径后,选择“继续”按钮。

    屏幕截图显示引导式过程中用于继续执行下一步的“继续”按钮。

  13. 此时会显示一个用于捕获变更数据的新选项卡。 此选项卡是 CDC 工作室,可在这里配置新资源。

    变更数据捕获工作室的屏幕截图。

    系统会自动为你创建新映射。 可使用下拉列表来更新为映射选择的源表和目标表。

    屏幕截图显示变更数据捕获工作室中的源到目标映射。

  14. 选择表后,默认情况下会映射表的列,并启用“自动映射”开关。 自动映射会在接收器中自动按名称映射列,在源架构演变时拾取新的列更改,并将此信息流向受支持的接收器类型。

    屏幕截图显示用于打开自动映射的开关。

    注意

    仅当“自动映射”开关处于打开状态时,架构演变才有效。 若要了解如何编辑列映射或包含转换,请参阅使用变更数据捕获资源捕获已更改的数据

  15. 选择“键”链接,然后选择用于跟踪删除操作的“键”列。

    屏幕截图显示启用键列选择的链接。

    显示为所选源选择“密钥”列的屏幕截图。

  16. 映射完成后,使用“设置延迟”按钮来设置 CDC 延迟。

    屏幕截图显示画布顶部的“设置延迟”按钮。

  17. 选择 CDC 延迟,然后选择“应用”以进行更改。

    默认情况下,延迟设置为“15 分钟”。 本文中的示例使用“实时”选项作为延迟设置。 实时延迟以小于 1 分钟的间隔持续拾取源数据中的更改。

    对于其他延迟(例如,如果选择 15 分钟),变更数据捕获将处理源数据,并拾取自上次处理时间以来更改的所有数据。

    屏幕截图显示用于设置延迟的选项。

  18. 配置 CDC 后,选择“全部发布”来发布更改。

    画布顶部的发布按钮的屏幕截图。

    注意

    如果不发布更改,将无法启动 CDC 资源。 下一步中的“开始”按钮将不可用。

  19. 选择“开始”,开始运行变更数据捕获。

    屏幕截图显示画布顶部的“开始”按钮。

现在,更改数据捕获正在运行,你可以:

  • 使用监视页查看已读取和已写入的更改(插入、更新或删除)的数量和其他诊断信息。

    已选择的变更数据捕获的监视页的屏幕截图。

    屏幕截图显示选定的变更数据捕获监视页面和详细视图。

  • 验证更改数据是否以 Delta 格式到达存储在 Azure Data Lake Storage Gen2 中的 Delta Lake 中。

    屏幕截图显示目标 Delta 文件夹。

  • 验证到达的更改数据的架构。

    屏幕截图显示 Delta 文件。

对源表进行动态架构级更改

  1. 使用 ALTER TABLE T-SQL 语句将新的“PersonalEmail”列添加到源表,如以下示例所示。

    屏幕截图显示 Azure Data Studio 中的 ALTER 命令。

  2. 验证新的“PersonalEmail”列是否显示在现有表中。

    屏幕截图显示新的表设计,其中添加了个人电子邮件列。

验证 Delta 接收器处的架构更改

确认新列“PersonalEmail”是否出现在 Delta 接收器中。 现在,你已知道存在架构更改的变更数据已到达目标。

屏幕截图显示存在架构更改的 Delta 文件。