将 Azure SQL 数据库 CDC 源添加到事件流

本文介绍如何将 Azure SQL 数据库变更数据捕获 (CDC) 源添加到事件流。

通过用于 Microsoft Fabric 事件流的 Azure SQL 数据库 CDC 源连接器,你可以捕获 Azure SQL 数据库中当前数据的快照。 然后,连接器将监视并记录对此数据进行的任何未来的行级别更改。 在事件流中捕获更改后,可以实时处理此 CDC 数据,并将其发送到 Fabric 内的不同目标,以进一步处理或分析。

注意

工作区容量的以下区域不支持此源:美国西部 3瑞士西部

先决条件

  • 在 Fabric 容量许可证模式或具有参与者或更高权限的试用许可证模式下访问工作区。
  • 具有 Azure SQL 数据库的正在运行的 Azure SQL 服务器。
  • 你的 Azure SQL 数据库必须可供公开访问,并且不能位于防火墙后面或在虚拟网络中受到保护。
  • 通过运行存储过程 sys.sp_cdc_enable_db 在 Azure SQL 数据库中启用了 CDC。 有关详细信息,请参阅启用和禁用变更数据捕获
  • 如果没有事件流,请创建一个事件流

请注意,不得在 Azure SQL 数据库中启用镜像。

在 Azure SQL 数据库中启用 CDC

  1. 转到 Azure 门户,打开 Azure SQL 数据库并选择“查询编辑器”。 选择要登录的身份验证方法。

    打开 Azure SQL 数据库的屏幕截图。

  2. 运行以下 SQL 命令,在数据库中启用 CDC:

    -- Enable Database for CDC
    EXEC sys.sp_cdc_enable_db;
    
    -- Enable CDC for a table using a gating role option
    EXEC sys.sp_cdc_enable_table
        @source_schema = N'dbo',
        @source_name   = N'MyTable',
        @role_name     = NULL
    GO
    

启动“选择数据源”向导

如果尚未向事件流添加任何源,请选择“使用外部源”磁贴

显示选择“使用外部源”磁贴的屏幕截图。

如果要向已发布的事件流添加源,请切换到“编辑”模式,在功能区中选择“添加源”,然后选择“外部源”

显示选择“添加源”然后选择“外部源”菜单的屏幕截图。

在“选择数据源”页面上,搜索并选择“Azure SQL DB (CDC)”磁贴上的“连接”

显示在“获取事件”向导中选择 Azure SQL DB CDC 作为源类型的屏幕截图。

配置并连接到 Azure SQL 数据库 CDC

  1. 在“连接”页上,选择“新建连接”。

    显示“获取事件”向导的“连接”页的屏幕截图,其中突出显示了 **新建连接** 链接。

  2. 在“连接设置”部分中,为 Azure SQL 数据库输入以下值:

    • 服务器:输入 Azure 门户中的 Azure SQL 服务器名称。 它采用以下形式:mysqlservername.database.windows.net

    • 数据库:输入 Azure 门户中的 Azure SQL 数据库名称。

      显示“新建连接”页的“连接设置”部分的屏幕截图。

  3. 向下滚动,然后在“连接凭据”部分中,执行以下步骤。

    • 对于“连接名称”,为连接输入名称。

    • 对于“身份验证类型”,选择“基本”

      注意

      目前,Fabric Eventstream 仅支持 基本 身份验证。

    • 输入数据库的“用户名”和“密码”

  4. 选择“连接” 。

    显示“新建连接”页的“连接凭据”部分的屏幕截图。

  5. 现在,在 “连接 ”页上,选择“ 所有表”或 “输入表名称”。 如果选择后者,请使用以逗号分隔的完整表标识符列表(schemaName.tableName)或有效的正则表达式指定表。 例如:

    • 使用 dbo.test.* 选择名称以 dbo.test 开头的所有表。
    • dbo\.(test1|test2) 选择 dbo.test1dbo.test2

    可以使用逗号混合这两种格式。 整个条目的总字符限制为 102,400 个字符。

  6. 可以展开 高级设置 以配置 十进制处理模式,该模式指定连接器如何处理 DECIMALNUMERIC 列值:

    • Precise:表示使用精确小数类型(例如 Java BigDecimal)的值,以确保数据表示形式的完全精度和准确性。
    • Double:将值转换为双精度浮点数。 此设置可提高可用性和性能,但可能会导致精度损失。
    • String:将值编码为格式化字符串。 此设置便于在下游系统中使用,但会丢失有关原始数值类型的语义信息。
  7. 选择下一步

    显示填充了“获取事件”向导的“连接”页的屏幕截图。

  8. 在“查看并创建”屏幕上,查看摘要,然后选择“添加”

    显示填充了“获取事件”向导的“查看并创建”页的屏幕截图。

通过 CDC 将具有自动表架构注册的 Azure SQL 数据库的数据引入到 Eventstream 中。

  1. 在“连接”页上,选择“新建连接”。

    显示“获取事件”向导的“连接”页的屏幕截图,其中突出显示了“新建连接”链接。

  2. 在“连接设置”部分中,为 Azure SQL 数据库输入以下值:

    • 服务器:输入 Azure 门户中的 Azure SQL 服务器名称。 它采用以下形式:mysqlservername.database.windows.net

    • 数据库:输入 Azure 门户中的 Azure SQL 数据库名称。

      显示“新建连接”页的“连接设置”部分的屏幕截图。

  3. 向下滚动,然后在“连接凭据”部分中,执行以下步骤。

    • 对于“连接名称”,为连接输入名称。

    • 对于“身份验证类型”,选择“基本”

      注意

      目前,Fabric Eventstream 仅支持 基本 身份验证。

    • 输入数据库的“用户名”和“密码”

  4. 选择“连接” 。

    显示“新建连接”页的“连接凭据”部分的屏幕截图。

  5. 现在,在 “连接 ”页上,选择“ 所有表”或 “输入表名称”。 如果选择后者,请使用以逗号分隔的完整表标识符列表(schemaName.tableName)或有效的正则表达式指定表。 例如:

    • 使用 dbo.test.* 选择名称以 dbo.test 开头的所有表。
    • dbo\.(test1|test2) 选择 dbo.test1dbo.test2

    可以使用逗号混合这两种格式。 整个条目的总字符限制为 102,400 个字符。

  6. 可以展开 “高级设置” 以配置 十进制处理模式,该模式指定连接器如何处理 DECIMALNUMERIC 列值:

    • Precise:表示使用精确小数类型(例如 Java BigDecimal)的值,以确保数据表示形式的完全精度和准确性。
    • Double:将值转换为双精度浮点数。 此设置可提高可用性和性能,但可能会导致精度损失。
    • String:将值编码为格式化字符串。 此设置便于在下游系统中使用,但会丢失有关原始数值类型的语义信息。
  7. 启用 事件架构关联

  8. 对于 工作区,请选择架构集的 Fabric 工作区。

  9. 对于 架构集,默认选择 “+ 创建 ”,这将创建新的架构集。 可以更改它以选择现有的事件架构集。

  10. 如果在上一步中选择了 +创建 选项,请输入架构集的名称。

    显示 Azure SQL 数据库 CDC 源的架构设置的屏幕截图。

  11. “审阅 + 连接”页上,选择“添加”。

    显示 Azure SQL 数据库 CDC 源的“查看 + 连接”页的屏幕截图。

    对于 Azure SQL 数据库中的所有表或所选表,连接器会自动发现和创建架构,并将其注册到架构注册表。

  12. 选择中间的事件 节点,并切换到底部窗格中的 “关联架构 ”选项卡。

    显示底部窗格中的“关联架构”窗口的屏幕截图。

架构集

  1. 导航到在上一步中选择的工作区。 在以下示例中,它是 “我的工作区”。

  2. 选择 Azure SQL 数据库(CDC)连接器创建的架构集。

    显示“我的工作区”页中生成的架构集的屏幕截图。

  3. 可以看到架构集中的架构,如下图所示。

    显示生成的架构集中架构的屏幕截图。

  4. 若要查看架构的 JSON 版本,请切换到 JSON 架构 视图。

    显示 JSON 架构视图的屏幕截图。

    不要使用此编辑器更改这些发现的架构,因为它与 Azure SQL 数据库源中的表架构不一致。

查看更新的事件流

  1. 可以在“编辑模式”下看到添加到事件流的 Azure SQL 数据库 (CDC) 源。

    在“编辑视图”中流式处理 Azure SQL 数据库 CDC 源的屏幕截图。

  2. 要实现这个新添加的 Azure SQL 数据库 CDC 源,请选择“发布”。 完成这些步骤后,你的 Azure SQL 数据库 CDC 源可在“实时视图”中进行可视化。

    显示在实时视图中流式传输 Azure SQL 数据库 CDC 源的屏幕截图。

配置事件流目标以使用架构

目前,只有启用了扩展功能(如架构支持)的事件流支持 Eventhouse、自定义终结点和派生流目标。 本部分介绍如何在为事件流启用扩展功能(如架构支持)时添加和配置 Eventhouse 目标。

为自定义终结点目标配置架构

  1. 选择 “转换事件”或“添加目标”,然后选择“ 自定义终结点”。

  2. “自定义终结点 ”窗格中,照常指定目标的名称。

  3. 对于 输入架构,请选择事件的架构。 此字段是在为事件流启用架构支持时填充的额外字段。

    显示“自定义终结点配置”页的屏幕截图。

    有关配置自定义终结点目标的详细步骤,请参阅 向事件流添加自定义终结点或自定义应用目标

为 eventhouse 目标配置架构

  1. 选择 “转换事件”或“添加目标”,然后选择“ Eventhouse”。
  2. Eventhouse 页上,配置以下与架构相关的设置:
    1. 对于 输入架构,请从下拉列表中选择一个或多个架构。

      显示已选择输入架构的 Eventhouse 配置页的屏幕截图。

      注意

      如果在配置事件中心源时 通过标头选项选择了动态架构 ,则可能已为源配置了多个架构,并将其映射到不同的属性及其值。

    2. 对于 表创建方法,请根据要求选择一个选项: 一个表,其中包含所有架构的组合 表或 每个架构的单独表

      显示包含表创建方法的 Eventhouse 配置页的屏幕截图。

    3. 对于 写入数据,请选择以下选项之一:

      • 仅有效负载:将提取的有效负载数据写入表。 如果有多个输入架构,则会将数据发送到多个表。

      • 元数据和有效负载:将元数据和有效负载数据写入单个表。 示例列: source 、、subjecttypedata等。

        显示包含写入数据选项的 Eventhouse 配置页的屏幕截图。

      有关配置 Eventhouse 目标的详细步骤,请参阅 向事件流添加 Eventhouse 目标

其他连接器: