Skip to main content
你可以使用 ClickPipes 将数据从源 Postgres 数据库摄取到 ClickHouse Cloud。源 Postgres 数据库可以是 ClickHouse Managed Postgres,也可以部署在本地或托管在云端,包括 Amazon RDS、Google Cloud SQL、Azure Database for Postgres、Supabase 等。Postgres ClickPipes 既可以通过 ClickPipes UI 手动部署和管理,也可以借助 OpenAPI 和 Terraform 以编程方式部署和管理。

前置条件

开始之前,你需要先确保 Postgres 数据库已正确配置。根据你的源 Postgres 实例,可以参考以下任一指南:
  1. ClickHouse Managed Postgres,开箱即用地启用了 logical replication 并允许 ClickPipes 访问。
  2. Amazon RDS Postgres
  3. Amazon Aurora Postgres
  4. Supabase Postgres
  5. Google Cloud SQL Postgres
  6. Azure PostgreSQL 灵活服务器
  7. Neon Postgres
  8. Crunchy Bridge Postgres
  9. 通用 Postgres 源,如果你使用的是其他 Postgres 提供商,或自托管实例。
  10. TimescaleDB,如果你在托管服务或自托管实例上使用 TimescaleDB 扩展。
PgBouncer、RDS Proxy、Supabase Pooler 等 Postgres 代理不支持基于 CDC 的复制。请务必不要在 ClickPipes 设置中使用它们,而应填写实际 Postgres 数据库的连接信息。
源 Postgres 数据库配置完成后,你就可以继续创建 ClickPipe。

创建 ClickPipe

请确保你已登录 ClickHouse Cloud 账户。如果你还没有账户,可以在此处注册。
  1. 在 ClickHouse Cloud 控制台中,进入你的 ClickHouse Cloud 服务。
  1. 在左侧菜单中选择 Data Sources 按钮,然后点击 “Set up a ClickPipe”
  1. 选择 Postgres CDC 卡片

添加源 Postgres 数据库连接

  1. 填写你在前置条件步骤中配置的源 Postgres 数据库的连接信息。
在开始填写连接信息之前,请确保已在防火墙规则中将 ClickPipes IP 地址加入白名单。你可以在此处找到 ClickPipes IP 地址列表。 更多信息请参阅本页顶部链接的源 Postgres 设置指南。
如果你的源 Postgres 数据库托管在 AWS 上,可以使用 AWS Private Link 连接该数据库。如果你希望数据传输保持私密,这会很有用。 你可以参考设置指南建立该连接。

(可选) 修改 TLS 设置

默认情况下,您的 ClickPipe 在创建时会启用 TLS 和证书验证。您可以在创建 ClickPipe 时修改这些默认设置:
TLS 设置
或者在已暂停的 ClickPipe 的 Settings 选项卡中的 Connection settings 部分进行编辑:
连接设置 -> 编辑连接
编辑连接
说明如下:
  • Disable TLS 用于为该连接启用或禁用 TLS。关闭 TLS 意味着数据会以明文形式通过网络传输,其中可能包含 secrets 和敏感数据。
  • Skip certificate verification 用于启用或禁用对源数据库所提供证书的验证。请务必考虑跳过证书验证带来的安全影响。
  • TLS Host (可选,默认为源 Host) 是在启用证书验证时,证书的 CN 必须匹配的 hostname。
  • Upload CA 可用于提供在启用证书验证时使用的 CA。

(可选) 设置 SSH tunneling

如果你的源 Postgres 数据库无法通过公网访问,可以填写 SSH 隧道的相关信息。
  1. 启用 “Use SSH Tunnelling” 开关。
  2. 填写 SSH 连接信息。
  3. 若要使用基于密钥的身份验证,请点击 “Revoke and generate key pair” 生成新的密钥对,并将生成的公钥复制到 SSH 服务器的 ~/.ssh/authorized_keys 中。
  4. 点击 “Verify Connection” 以验证连接。
请务必在 SSH 堡垒机的防火墙规则中将 ClickPipes IP 地址加入白名单,以便 ClickPipes 能够建立 SSH 隧道。
填写好连接信息后,点击 “Next”。

配置复制设置

  1. 请务必从下拉列表中选择你在前置条件步骤中创建的 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:初始快照期间并行拉取的表数量。当表数量较多,且你希望控制并行拉取的表数量时,该设置会很有用。

配置表

  1. 在这里你可以为 ClickPipe 选择目标数据库。你可以选择已有的数据库,也可以新建一个数据库。
  2. 你可以选择要从源 Postgres 数据库复制的表。在选择表时,你还可以为目标端 ClickHouse 数据库中的表重命名,并排除特定的列。
如果你在 ClickHouse 中定义的 ordering key 与 Postgres 中的 primary key 不同,请务必阅读相关的全部注意事项
  1. 此外,您可以提供自定义的 PARTITION BY <expr> 表达式,以控制目标端 ClickHouse 表的分区方式。
    按分区

检查权限并启动 ClickPipe

  1. 在权限下拉列表中选择 “Full access” 角色,然后点击 “Complete Setup”。

后续步骤

在设置好 ClickPipe 将数据从 PostgreSQL 复制到 ClickHouse Cloud 之后,你就可以专注于如何查询数据并对其建模,以获得最佳性能。请参阅迁移指南评估哪种策略最适合你的需求,并参阅去重策略 (使用 CDC) 和排序键页面,了解 CDC 工作负载的最佳实践。有关 PostgreSQL CDC (变更数据捕获) 与故障排查的常见问题,请参阅 Postgres 常见问题页面。
最后修改于 2026年9月28日