将 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 事件流仅支持“基本”身份验证。

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

  4. 选择“连接” 。

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

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

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

    可以使用逗号混合这两种格式。 最多可以输入 100 个表,如果直接使用完整表标识符,则每个表名(包括架构名称)限制为 128 个字符。

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

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

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

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

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

注意

一个事件流的源和目标的最大数量为 11

查看更新的事件流

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

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

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

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

其他连接器: