Compartir a través de

使用更改数据捕获功能,通过架构演变,从Azure SQL 数据库捕获已更改的数据到Delta接收器

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

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

在本文中,您将学习以下内容:

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

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

先决条件

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

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

创建 CDC 工件

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

    “工厂资源”窗格中用于变更数据捕获的新顶级工件的屏幕截图。

  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. 选择表后,表的列会被默认映射,并打开“自动映射”开关。 Auto map 会在接收器中自动按名称映射列,在源架构演变时检测到新列的更改,并将这些信息传递给受支持的接收器类型。

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

    注意

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

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

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

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

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

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

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

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

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

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

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

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

    注意

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

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

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

现在,变更数据捕获已在运行,您可以:

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

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

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

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

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

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

    Delta 文件的屏幕截图。

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

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

    在 Azure Data Studio 中的 ALTER 命令的截图。

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

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

验证 Delta 汇聚器处的模式更改

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

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