将 MySQL 数据库 CDC 源添加到事件流(预览版)

注意

本文包含对术语 SLAVE 的引用,Microsoft 不再使用该术语。 在从软件中删除该术语后,我们会将其从本文中删除。

本文介绍如何将 Azure Database for MySQL 变更数据捕获源添加到事件流。 通过使用 Microsoft Fabric 事件流的 Azure MySQL Database 变更数据捕获 (CDC) 源连接器,你可以捕获 Azure Database for MySQL 数据库中当前数据的快照。

你可以指定要监视的表,事件流将记录对表进行的任何未来的行级更改。 在事件流中捕获更改后,可以实时处理此 CDC 数据,并将其发送到 Fabric 内的不同目的地,以进一步处理或分析。

重要

Fabric 事件流的增强功能目前以预览版方式提供。

注意

工作区容量的以下区域不支持此源:“美国西部 3”、“瑞士西部”、“东南亚”。

先决条件

  • 使用“参与者”或更高权限访问 Fabric 高级工作区
  • 访问 Azure Database for MySQL - 灵活服务器的一个实例。
  • MySQL 数据库必须可供公开访问,并且不能位于防火墙后面或在虚拟网络中受到保护。

注意

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

设置 MySQL DB

连接器使用 Debezium MySQL 连接器捕获 Azure Database for MySQL 数据库中的更改。 必须在消息传递连接器可以从中捕获更改的所有数据库上定义一个具有适当权限的 MySQL 用户。 可以直接使用管理员用户连接到通常具有适当权限的数据库,如下所示。 或者可以按照以下步骤创建新用户

注意

新的用户或管理员帐户以及相应的密码将用于稍后在 Eventstream 中连接到数据库。

  1. mysql 命令提示符下,创建 MySQL 用户:

    mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
    
  2. 向用户授予所需的权限:

    mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
    
  3. 完成用户的权限:

    mysql> FLUSH PRIVILEGES;
    

若要确认用户或管理员是否被授予所需权限,请运行以下命令,然后应显示上述步骤 2 中所需的权限。

SHOW GRANTS FOR user;

有关向用户授予所需权限的详细信息,请参阅 MySQL 的 Debezium 连接器:Debezium 文档

启用 binlog

必须为 MySQL 复制启用二进制日志记录。 二进制日志将记录复制工具的事务更新,以传播更改。

  1. 在 Azure Database for MySQL 帐户的“Azure 门户”页上,在左侧导航中的“设置”选择“服务器参数”

  2. 在“服务器参数”页面上,配置以下属性,然后选择“保存”

    • 对于 binlog_row_image,请选择“已满”

    • 对于 binlog_expire_logs_seconds,请设置服务在清除二进制日志文件之前等待的秒数。 设置值以匹配环境的需求,例如 86400

    服务器参数下复制的 binlog 设置的屏幕截图。

将 Azure MySQL DB (CDC) 添加为源

  1. 在“Fabric 实时智能”中,选择“Eventstream” 以创建新的事件流。 确保已启用“增强功能(预览版)”选项。

    创建新事件流的屏幕截图。

  2. 在下一个屏幕上,选择“添加外部源”

    选择“添加外部源”的屏幕快照。

配置并连接到 Azure MySQL DB (CDC)

  1. 在“选择数据源”屏幕上,选择 Azure MySQL DB (CDC) 作为数据源。

    选择 Azure MySQL DB (CDC) 的屏幕截图。

  2. 在“连接”屏幕上的“连接”下,选择“新建连接”以创建云连接。

  3. 输入 Azure MySQL DB 的以下连接设置连接凭证,然后选择“连接”

    • 服务器:Azure Database for MySQL 数据库的服务器地址,例如 my-mysql-server.mysql.database.azure.com
    • 数据库:数据库名称,例如 my_database
    • 连接名称:自动生成,你也可以为此连接输入新名称。
    • 用户名密码:输入 Azure Database for MySQL 数据库的凭证。 确保输入服务器管理员帐户使用授予的所需权限创建的用户帐户

    Azure MySQL DB (CDC) 的连接设置的屏幕截图。

  4. 输入以下信息以配置 Azure MySQL DB CDC 数据源,然后选择“下一步”

    • :输入用逗号分隔的表名列表。 每个表名必须遵循格式 <database name>.<table name>,例如 my_database.users
    • 服务器 ID:为 MySQL 群集中的每个服务器和复制客户端输入唯一值。 默认值为 1000。
    • 端口:保留默认值不变。

    选择 Azure MySQL DB (CDC) 连接的表、服务器 ID 和端口的屏幕截图。

    注意

    为每个读取器设置不同的服务器 ID。 用于读取 binlog 的每个 MySQL 数据库客户端都应具有唯一的 ID,称为服务器 ID。 MySQL 服务器使用此 ID 来维护网络连接和 binlog 位置。 共享同一服务器 ID 的不同作业可能会导致从错误的 binlog 位置进行读取。 因此,建议为每个读取器设置不同的服务器 ID。

  5. 查看 Azure MySQL DB CDC 源的摘要后,选择“添加”以完成配置。

你会看到在编辑模式下添加到事件流的 Azure MySQL DB (CDC) 源。

“编辑”模式下添加的 Azure MySQL DB CDC 源的屏幕截图,其中高亮显示了“发布”按钮。

选择“发布”以发布更改并开始将 Azure MySQL DB CDC 数据流式传输到事件流。

实时视图中包含 Azure MySQL DB CDC 源的已发布事件流的屏幕截图。

其他连接器: