将 MongoDB CDC 源添加到事件流(预览版)

本文介绍如何将 MongoDB 更改数据捕获(CDC)源添加到事件流。

MongoDB CDC Connector for Eventstream 允许将更改数据捕获(CDC)事件从 MongoDB 传输到 Fabric Eventstream。 它支持多种 MongoDB 部署类型,包括本地、云托管和 MongoDB Atlas,可实现各种 CDC 方案。 使用此连接器,可以捕获实时数据库更改并将其直接流式传输到 Eventstream 中,以便立即进行处理和分析。

先决条件

  • Fabric 容量或试用版许可证模式下的工作区,具有 贡献者 或更高权限。
  • 可从客户端 IP 地址访问的 MongoDB 群集。
  • 为要捕获的集合启用了变更数据捕获(CDC)。
  • Fabric 中的事件流。 如果您还没有,请创建一个事件流。

设置 MongoDB 实例

此示例使用 MongoDB Atlas(MongoDB Cloud 上的托管 MongoDB 服务)。

若要捕获更改,必须为目标集合启用变更数据捕获(CDC)。

在 MongoDB shell 中运行以下命令,为集合启用 CDC:

db.runCommand({
  collMod: "<collectionName>",
  changeStreamPreAndPostImages: { enabled: true }
});

注释

需要具有包括 collMod 操作在内的atlasAdmin角色的用户才能运行此命令。 如果没有这些权限,请在捕获事件流中的更改之前,请求具有角色的 atlasAdmin 同事为目标集合启用变更数据捕获(CDC)。

还必须在目标数据库上创建或使用具有 read 角色(或更高权限)的现有 MongoDB 用户。 在 MongoDB Cloud 上的 MongoDB Atlas 中,转到 数据库访问 以验证用户的角色。

显示如何编辑 MongoDB 数据库角色的屏幕截图。

在 MongoDB Cloud 上的 MongoDB Atlas 中,转到 “网络访问 ”,并将客户端 IP 地址添加到 IP 访问列表。

显示如何添加 ID 列表的屏幕截图。

将 MongoDB (CDC) 添加为源

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

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

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

显示用于添加外部源的选择的屏幕截图。

选择数据源页上,搜索并在MongoDB(CDC)磁贴上选择连接

显示选择 MongoDB(CDC)作为“获取事件”向导中的源类型的屏幕截图。

配置并连接到 MongoDB (CDC)

  1. 选择 MongoDB 实例类型MongoDB AtlasMongoDB (自管理)。

  2. 连接

    1. 如果选择 MongoDB Atlas

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

        显示“连接”页的屏幕截图。

      2. 输入以下 连接设置连接凭据

      • 服务器:Atlas 群集的连接字符串,例如 cluster0.example.mongodb.net

      • 群集:此字段是可选的。 群集名称已是服务器的一部分,因此可以将此名称留空。

      • 连接名称:自动生成,也可以为此连接输入新名称。

      • 用户名密码:至少具有 read 角色的用户的凭据。 确保用户有权访问目标数据库和集合。

        MongoDB Atlas 的连接设置的屏幕截图。

    2. 如果选择 MongoDB (自管理)

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

        显示“连接”页的屏幕截图。

      2. 输入以下 连接设置连接凭据

      • 服务器:自管理 MongoDB 服务器的连接字符串,例如 mongodb0.example.com:27017

      • 连接名称:自动生成,也可以为此连接输入新名称。

      • 用户名和密码:使用具有读取或更高权限的用户访问目标数据库和集合。

        MongoDB(自管理)的连接设置的屏幕截图。

  3. 输入以下信息以配置 MongoDB CDC 数据源,然后选择“ 下一步”。

    • 数据库:选择全部(默认)输入数据库名称。 如果选择后者,请提供与要监视的数据库名称匹配的可选逗号分隔的正则表达式列表。
    • 集合:选择全部(默认)输入集合名称。 如果选择后者,请提供与 MongoDB 集合的完全限定命名空间(例如 dbName.collectionName)匹配的正则表达式的逗号分隔列表来监视。
  4. 可以展开 “高级设置” 以访问 MongoDB CDC 源的更多配置选项:

    • 快照模式:选项包括:
      • initial (default):指定连接器在找不到偏移量,或 oplog/change 流不再包含以前的偏移量时读取快照。
      • initial_only:连接器执行数据库快照。 快照完成后,连接器将停止,并且不会流式传输后续数据库更改的事件记录。
      • no_data:连接器捕获所有相关表的结构,但它不会创建 READ 事件来表示连接器启动点的数据集。

    还可以通过在右侧的 “流详细信息” 部分选择 “铅笔”按钮 来编辑 “源名称”

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

  5. “查看 + 连接 ”页上,查看 MongoDB CDC 源的摘要后,选择“ 添加” 以完成配置。

    显示“查看 + 连接”页的屏幕截图,其中选择了“添加”按钮。

查看更新的事件流

编辑模式下,你会看到添加到事件流的 MongoDB(CDC)源。

“编辑”模式下添加的 MongoDB CDC 源的屏幕截图,其中突出显示了“发布”按钮。

可以在实时模式下看到事件流。 在功能区上选择 “编辑 ”,返回到“编辑”模式以更新事件流。

实时模式下已添加的 MongoDB CDC 源的屏幕截图。

限度

  • MongoDB CDC 源当前不支持 CI/CD 功能,包括 Git 集成部署管道。 尝试将具有此源的事件流项导出或导入 Git 存储库可能会导致错误。

其他连接器: