将 MongoDB 数据摄取到 ClickHouse(使用 CDC(变更数据捕获))
通过 ClickPipes 将 MongoDB 的数据摄取到 ClickHouse Cloud 目前处于公开测试阶段。
在 ClickHouse Cloud 控制台和文档中,针对 MongoDB,“table”和“collection”这两个术语可互换使用。
你可以使用 ClickPipes 将 MongoDB 数据库中的数据摄取到 ClickHouse Cloud。源 MongoDB 数据库可以托管在本地部署环境,或者使用 MongoDB Atlas 等服务托管在云上。
前置条件
在开始之前,先确保你的 MongoDB 数据库已正确配置为支持复制。具体配置步骤取决于你如何部署 MongoDB,请参考以下相应指南:
源 MongoDB 数据库配置完成后,即可继续创建 ClickPipe。
创建 ClickPipe
请确保您已登录到 ClickHouse Cloud 帐户。如果还没有帐户,可以在这里注册。
- 在 ClickHouse Cloud 控制台中,导航到您的 ClickHouse Cloud Service。

- 在左侧菜单中选择
Data Sources按钮,然后点击 “Set up a ClickPipe”。

- 选择
MongoDB CDC卡片。

添加源 MongoDB 数据库连接
-
填写在前提条件步骤中配置的源 MongoDB 数据库的连接详细信息。
信息在开始填写连接详细信息之前,请确保已在防火墙规则中将 ClickPipes IP 地址加入白名单。您可以在下述页面找到 ClickPipes IP 地址列表。 更多信息请参阅本页顶部链接的源 MongoDB 配置指南。

(可选)配置 SSH 隧道
如果源 MongoDB 数据库不可公开访问,可以配置 SSH 隧道连接。
-
启用"使用 SSH 隧道"开关。
-
填写 SSH 连接详细信息。

-
若使用基于密钥的身份验证,点击"撤销并生成密钥对"生成新密钥对,并将生成的公钥复制到 SSH 服务器的
~/.ssh/authorized_keys文件中。 -
点击"验证连接"验证连接。
请确保在 SSH 堡垒主机的防火墙规则中将 ClickPipes IP 地址加入白名单,以便 ClickPipes 能够建立 SSH 隧道。
填写完连接详细信息后,点击 下一步。
配置高级设置
如有需要,您可以配置高级设置。下面简要说明每个设置的含义:
- Sync interval:ClickPipes 轮询源数据库以检测变更的时间间隔。该设置会影响目标 ClickHouse 服务的资源消耗;对于对成本敏感的用户,我们建议将其设置为较大的数值(高于
3600)。 - Pull batch size:单次批量抓取的行数。这是一个尽力而为型的配置项,在某些情况下可能不会被严格遵守。
- Snapshot number of tables in parallel:执行初始快照时并行抓取的表数量。当您有大量表且希望控制并行抓取的表数量时,该设置非常有用。
配置表
-
在此步骤中,您可以为 ClickPipe 选择目标数据库。您可以选择一个现有数据库,或创建一个新数据库。

-
您可以选择要从源 MongoDB 数据库复制的表。在选择这些表时,您还可以为目标 ClickHouse 数据库中的表重命名。
检查权限并启动 ClickPipe
-
在权限下拉菜单中选择“Full access”角色,然后点击“Complete Setup”。

接下来该做什么?
在通过 ClickPipe 将数据从 MongoDB 复制到 ClickHouse Cloud 之后,你就可以专注于如何对数据进行查询和建模,以获得最佳性能。
注意事项
在使用此连接器时,需要注意以下几点:
- 需要使用 MongoDB 版本 5.1.0 及以上。
- 我们使用 MongoDB 原生的 Change Streams API 实现 CDC(变更数据捕获),其依赖 MongoDB 的 oplog 来捕获实时变更。
- 来自 MongoDB 的文档会默认以 ClickHouse 中的 JSON 类型进行复制。这样可以实现更灵活的 schema 管理,并使您能够在 ClickHouse 中使用丰富的 JSON 运算符进行查询和分析。您可以在此处进一步了解如何查询 JSON 数据。
- 目前尚不支持自助配置 PrivateLink。如果您在 AWS 上并且需要使用 PrivateLink,请发送邮件至 [email protected] 或创建支持工单——我们会与您协作为您启用该功能。