将数据从 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 隧道的相关信息。
-
启用 "Use SSH Tunnelling" 开关。
-
填写 SSH 连接详细信息。

-
若要使用基于密钥的认证,点击 "Revoke and generate key pair" 以生成新的密钥对,并将生成的公钥复制到 SSH 服务器的
~/.ssh/authorized_keys中。 -
点击 "Verify Connection" 验证连接。
请确保在 SSH 堡垒机的防火墙规则中将 ClickPipes IP 地址 加入允许列表,以便 ClickPipes 可以建立 SSH 隧道。
在填写完连接详细信息后,点击 Next。
配置高级设置
如有需要,您可以配置高级设置。以下是每个设置的简要说明:
- 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(变更数据捕获),该 API 依赖 MongoDB 的 oplog 来捕获实时变更。
- 来自 MongoDB 的文档默认会以 JSON 类型写入 ClickHouse。这有助于灵活管理模式(schema),并使得可以在 ClickHouse 中使用丰富的 JSON 运算符进行查询和分析。你可以在此处了解更多关于查询 JSON 数据的信息。
- 目前尚不支持自助式配置 PrivateLink。如果你在 AWS 上并需要使用 PrivateLink,请联系 [email protected] 或创建支持工单,我们会协助你启用该功能。