本文介绍如何将 MongoDB 更改数据捕获(CDC)源添加到事件流。
MongoDB CDC Connector for Eventstream 允许将更改数据捕获(CDC)事件从 MongoDB 传输到 Fabric Eventstream。 它支持多种 MongoDB 部署类型,包括本地、云托管和 MongoDB Atlas,可实现各种 CDC 方案。 使用此连接器,可以捕获实时数据库更改并将其直接流式传输到 Eventstream 中,以便立即进行处理和分析。
注释
工作区容量的以下区域不支持此源:美国西部 3、瑞士西部。
先决条件
- 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 Cloud 上的 MongoDB Atlas 中,转到 “网络访问 ”,并将客户端 IP 地址添加到 IP 访问列表。
将 MongoDB (CDC) 添加为源
如果您尚未向事件流添加任何源,请选择“使用外部源”选项。
如果要向已发布的事件流添加源,请切换到“编辑”模式,在功能区中选择“添加源”,然后选择“外部源”。
在选择数据源页上,搜索并在MongoDB(CDC)磁贴上选择连接。
配置并连接到 MongoDB (CDC)
选择 MongoDB 实例类型:MongoDB Atlas 或 MongoDB (自管理)。
连接:
如果选择 MongoDB Atlas:
如果选择 MongoDB (自管理):
输入以下信息以配置 MongoDB CDC 数据源,然后选择“ 下一步”。
- 数据库:选择全部(默认)或输入数据库名称。 如果选择后者,请提供与要监视的数据库名称匹配的可选逗号分隔的正则表达式列表。
-
集合:选择全部(默认)或输入集合名称。 如果选择后者,请提供与 MongoDB 集合的完全限定命名空间(例如
dbName.collectionName)匹配的正则表达式的逗号分隔列表来监视。
可以展开 “高级设置” 以访问 MongoDB CDC 源的更多配置选项:
-
快照模式:选项包括:
- initial (default):指定连接器在找不到偏移量,或 oplog/change 流不再包含以前的偏移量时读取快照。
- initial_only:连接器执行数据库快照。 快照完成后,连接器将停止,并且不会流式传输后续数据库更改的事件记录。
- no_data:连接器捕获所有相关表的结构,但它不会创建 READ 事件来表示连接器启动点的数据集。
还可以通过在右侧的 “流详细信息” 部分选择 “铅笔”按钮 来编辑 “源名称”。
-
快照模式:选项包括:
在 “查看 + 连接 ”页上,查看 MongoDB CDC 源的摘要后,选择“ 添加” 以完成配置。
查看更新的事件流
在 编辑模式下,你会看到添加到事件流的 MongoDB(CDC)源。
可以在实时模式下看到事件流。 在功能区上选择 “编辑 ”,返回到“编辑”模式以更新事件流。
限度
- MongoDB CDC 源当前不支持 CI/CD 功能,包括 Git 集成 和 部署管道。 尝试将具有此源的事件流项导出或导入 Git 存储库可能会导致错误。
相关内容
其他连接器: