使用变更数据捕获资源将已更改且存在架构演变的数据从 Azure SQL 数据库捕获到 Delta 接收器
适用于:Azure 数据工厂 Azure Synapse Analytics
在本文中,你将使用 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 项目
转到数据工厂中的“创作”窗格。 在“管道”下,会出现一个名为“变更数据捕获(预览版)”的新顶级项目。
将光标悬停在“变更数据捕获(预览版)”上,直到出现三个点。 然后,选择“变更数据捕获(预览版)操作”。
选择“新建 CDC(预览版)”。 此步骤会打开用于开始引导式过程的浮出控件。
系统会提示你为 CDC 资源命名。 默认情况下,名称为“adfcdc”,还带有一个按 1 递增的数字。 可以将此默认名称替换为自己想要的名称。
使用下拉列表选择数据源。 对于本文,请选择“Azure SQL 数据库”。
系统会提示你选择链接服务。 创建新的或选择现有的链接服务。
选择链接服务后,系统会提示选择源表。 使用复选框选择源表,然后使用下拉列表选择“增量列”值。
该窗格仅列出具有支持的增量列数据类型的表。
注意
若要在 Azure SQL 数据库源中启用架构演变的 CDC,请根据水印列而不是启用了本机 SQL CDC 的表来选择表。
选择源表后,选择“继续”以设置数据目标。
使用下拉列表选择“目标类型”值。 对于本文,请选择“Delta”。
系统会提示你选择链接服务。 创建新的或选择现有的链接服务。
选择目标数据文件夹。 你可以使用:
- “目标基路径”下的“浏览”按钮,它会帮助你自动填充为源选择的所有新表的浏览路径。
- 外部的“浏览”按钮,它可以单独选择文件夹路径。
选择文件夹路径后,选择“继续”按钮。
此时会显示一个用于捕获变更数据的新选项卡。 此选项卡是 CDC 工作室,可在这里配置新资源。
系统会自动为你创建新映射。 可使用下拉列表来更新为映射选择的源表和目标表。
选择表后,默认情况下会映射表的列,并启用“自动映射”开关。 自动映射会在接收器中自动按名称映射列,在源架构演变时拾取新的列更改,并将此信息流向受支持的接收器类型。
注意
仅当“自动映射”开关处于打开状态时,架构演变才有效。 若要了解如何编辑列映射或包含转换,请参阅使用变更数据捕获资源捕获已更改的数据。
选择“键”链接,然后选择用于跟踪删除操作的“键”列。
映射完成后,使用“设置延迟”按钮来设置 CDC 延迟。
选择 CDC 延迟,然后选择“应用”以进行更改。
默认情况下,延迟设置为“15 分钟”。 本文中的示例使用“实时”选项作为延迟设置。 实时延迟以小于 1 分钟的间隔持续拾取源数据中的更改。
对于其他延迟(例如,如果选择 15 分钟),变更数据捕获将处理源数据,并拾取自上次处理时间以来更改的所有数据。
配置 CDC 后,选择“全部发布”来发布更改。
注意
如果不发布更改,将无法启动 CDC 资源。 下一步中的“开始”按钮将不可用。
选择“开始”,开始运行变更数据捕获。
现在,更改数据捕获正在运行,你可以:
使用监视页查看已读取和已写入的更改(插入、更新或删除)的数量和其他诊断信息。
验证更改数据是否以 Delta 格式到达存储在 Azure Data Lake Storage Gen2 中的 Delta Lake 中。
验证到达的更改数据的架构。
对源表进行动态架构级更改
使用
ALTER TABLE
T-SQL 语句将新的“PersonalEmail”列添加到源表,如以下示例所示。验证新的“PersonalEmail”列是否显示在现有表中。
验证 Delta 接收器处的架构更改
确认新列“PersonalEmail”是否出现在 Delta 接收器中。 现在,你已知道存在架构更改的变更数据已到达目标。