您可以使用 ClickPipes 将 MongoDB 数据库中的数据摄取到 ClickHouse Cloud。源 MongoDB 数据库既可以托管在本地环境中,也可以通过 MongoDB Atlas 等服务托管在云端。
MongoDB ClickPipes 既可以通过 ClickPipes UI 手动部署和管理,也可以通过 OpenAPI 和 Terraform 以编程方式部署和管理。
前置条件
开始之前,您首先需要确保 MongoDB 数据库已正确配置复制。具体配置步骤取决于您部署 MongoDB 的方式,因此请按照下方对应的指南进行操作:
源 MongoDB 数据库设置完成后,您就可以继续创建 ClickPipe。
创建您的 ClickPipe
请确保您已登录 ClickHouse Cloud 账户。如果您还没有账户,可以在这里注册。
- 在 ClickHouse Cloud 控制台中,进入您的 ClickHouse Cloud 服务。

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

- 选择
MongoDB CDC卡片。

添加源 MongoDB 数据库连接
- 填写您在前置条件步骤中配置的源 MongoDB 数据库连接信息。

(可选) 修改 TLS 设置
默认情况下,您的 ClickPipe 在创建时会启用 TLS 和证书验证。您可以在创建 ClickPipe 时修改这些默认设置:

或者在已暂停的 ClickPipe 的 Settings 选项卡中的 Connection settings 部分进行编辑:


说明如下:
Disable TLS用于为该连接启用或禁用 TLS。关闭 TLS 意味着数据会以明文形式通过网络传输,其中可能包含 secrets 和敏感数据。Skip certificate verification用于启用或禁用对源数据库所提供证书的验证。请务必考虑跳过证书验证带来的安全影响。TLS Host(可选,默认为源 Host) 是在启用证书验证时,证书的 CN 必须匹配的 hostname。Upload CA可用于提供在启用证书验证时使用的 CA。
(可选) 设置 SSH 隧道
如果源 MongoDB 数据库无法通过公网访问,你可以指定 SSH 隧道的相关详细信息。
-
打开“Use SSH Tunnelling”开关。
-
填写 SSH 连接信息。

-
若要使用基于密钥的身份验证,请点击“Revoke and generate key pair”生成新的密钥对,然后将生成的公钥复制到 SSH 服务器上的
~/.ssh/authorized_keys中。 -
点击“Verify Connection”验证连接。
填写完连接信息后,点击 Next。
配置高级设置
如有需要,您可以配置高级设置。下面简要介绍各项设置:
- Sync interval:指 ClickPipes 轮询源数据库变更的时间间隔。该设置会影响目标端 ClickHouse 服务;对于注重成本的用户,建议将其设为较大的值 (大于
3600) 。 - 拉取批次大小:单个批次中拉取的行数。这是一个尽力而为的设置,因此在某些情况下可能无法严格遵循。
- Snapshot number of tables in parallel:指初始快照期间并行拉取的表数量。如果您有大量表,并希望控制并行拉取的表数,此设置会很有用。
配置表
-
在这里,您可以为 ClickPipe 选择目标数据库。您可以选择现有数据库,也可以新建一个。

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

接下来呢?
在将 ClickPipe 配置为把数据从 MongoDB 复制到 ClickHouse Cloud 后,你就可以着重考虑如何查询和建模数据,以获得最佳性能。
注意事项
使用此连接器时,请注意以下几点:
- 需要使用 5.1.0 及以上版本的 MongoDB。
- 我们使用 MongoDB 原生的 Change Streams API 来实现 CDC (变更数据捕获) ,该 API 依赖 MongoDB 的 oplog 捕获实时变更。
- 默认情况下,MongoDB 中的文档会以 JSON 类型复制到 ClickHouse 中。这让 schema 管理更加灵活,并可使用 ClickHouse 丰富的 JSON 操作符进行查询和分析。你可以在这里了解有关查询 JSON 数据的更多信息。