你可以使用 ClickPipes 将数据从源 Postgres 数据库摄取到 ClickHouse Cloud。源 Postgres 数据库可以是 ClickHouse Managed Postgres,也可以部署在本地或托管在云端,包括 Amazon RDS、Google Cloud SQL、Azure Database for Postgres、Supabase 等。Postgres ClickPipes 既可以通过 ClickPipes UI 手动部署和管理,也可以借助 OpenAPI 和 Terraform 以编程方式部署和管理。
或者在已暂停的 ClickPipe 的 Settings 选项卡中的 Connection settings 部分进行编辑:

说明如下:填写好连接信息后,点击 “Next”。
前置条件
开始之前,你需要先确保 Postgres 数据库已正确配置。根据你的源 Postgres 实例,可以参考以下任一指南:- ClickHouse Managed Postgres,开箱即用地启用了 logical replication 并允许 ClickPipes 访问。
- Amazon RDS Postgres
- Amazon Aurora Postgres
- Supabase Postgres
- Google Cloud SQL Postgres
- Azure PostgreSQL 灵活服务器
- Neon Postgres
- Crunchy Bridge Postgres
- 通用 Postgres 源,如果你使用的是其他 Postgres 提供商,或自托管实例。
- TimescaleDB,如果你在托管服务或自托管实例上使用 TimescaleDB 扩展。
创建 ClickPipe
请确保你已登录 ClickHouse Cloud 账户。如果你还没有账户,可以在此处注册。- 在 ClickHouse Cloud 控制台中,进入你的 ClickHouse Cloud 服务。
- 在左侧菜单中选择
Data Sources按钮,然后点击 “Set up a ClickPipe”
-
选择
Postgres CDC卡片
添加源 Postgres 数据库连接
- 填写你在前置条件步骤中配置的源 Postgres 数据库的连接信息。
(可选) 设置 AWS Private Link
如果你的源 Postgres 数据库托管在 AWS 上,可以使用 AWS Private Link 连接该数据库。如果你希望数据传输保持私密,这会很有用。 你可以参考设置指南建立该连接。(可选) 修改 TLS 设置
默认情况下,您的 ClickPipe 在创建时会启用 TLS 和证书验证。您可以在创建 ClickPipe 时修改这些默认设置:


Disable TLS用于为该连接启用或禁用 TLS。关闭 TLS 意味着数据会以明文形式通过网络传输,其中可能包含 secrets 和敏感数据。Skip certificate verification用于启用或禁用对源数据库所提供证书的验证。请务必考虑跳过证书验证带来的安全影响。TLS Host(可选,默认为源 Host) 是在启用证书验证时,证书的 CN 必须匹配的 hostname。Upload CA可用于提供在启用证书验证时使用的 CA。
(可选) 设置 SSH tunneling
如果你的源 Postgres 数据库无法通过公网访问,可以填写 SSH 隧道的相关信息。- 启用 “Use SSH Tunnelling” 开关。
- 填写 SSH 连接信息。
-
若要使用基于密钥的身份验证,请点击 “Revoke and generate key pair” 生成新的密钥对,并将生成的公钥复制到 SSH 服务器的
~/.ssh/authorized_keys中。 - 点击 “Verify Connection” 以验证连接。
请务必在 SSH 堡垒机的防火墙规则中将 ClickPipes IP 地址加入白名单,以便 ClickPipes 能够建立 SSH 隧道。
配置复制设置
- 请务必从下拉列表中选择你在前置条件步骤中创建的 replication slot。
高级设置
如有需要,你可以配置高级设置。下面简要说明了各项设置:- Sync interval:ClickPipes 轮询源数据库以获取变更的时间间隔。该设置会影响目标端 ClickHouse 服务,对成本敏感的用户建议将其设置为较大的值 (超过
3600) 。 - Parallel threads for initial load:用于拉取初始快照的并行工作线程数量。当表数量较多,且你希望控制拉取初始快照所用的并行工作线程数量时,该设置会很有用。此设置按表生效。
- Pull batch size:单个批次中拉取的行数。这是一个尽力而为的设置,并非在所有情况下都会被严格遵守。
- Snapshot number of rows per partition:初始快照期间每个分区拉取的行数。当表中行数较多,且你希望控制每个分区拉取的行数时,该设置会很有用。
- Snapshot number of tables in parallel:初始快照期间并行拉取的表数量。当表数量较多,且你希望控制并行拉取的表数量时,该设置会很有用。
配置表
- 在这里你可以为 ClickPipe 选择目标数据库。你可以选择已有的数据库,也可以新建一个数据库。
- 你可以选择要从源 Postgres 数据库复制的表。在选择表时,你还可以为目标端 ClickHouse 数据库中的表重命名,并排除特定的列。
- 此外,您可以提供自定义的
PARTITION BY <expr>表达式,以控制目标端 ClickHouse 表的分区方式。
检查权限并启动 ClickPipe
- 在权限下拉列表中选择 “Full access” 角色,然后点击 “Complete Setup”。