从 Postgres 到 ClickHouse 的数据摄取(使用 CDC)
您可以使用 ClickPipes 将数据从源 Postgres 数据库摄取到 ClickHouse Cloud。源 Postgres 数据库可以托管在本地或云端,包括 Amazon RDS、Google Cloud SQL、Azure Database for Postgres、Supabase 等。
前提条件
要开始,您首先需要确保您的 Postgres 数据库已正确设置。根据您的源 Postgres 实例,您可以遵循以下任一指南:
-
通用 Postgres 来源,如果您使用的是其他 Postgres 提供商或使用自托管实例。
-
TimescaleDB,如果您在托管服务或自托管实例上使用 TimescaleDB 扩展。
Postgres 代理如 PgBouncer、RDS Proxy、Supabase Pooler 等,不支持基于 CDC 的复制。请确保在 ClickPipes 设置中不要使用它们,而是添加实际 Postgres 数据库的连接详情。
一旦您的源 Postgres 数据库设置完成,您可以继续创建您的 ClickPipe。
创建您的 ClickPipe
确保您已登录到 ClickHouse Cloud 账户。如果您还没有账户,可以在 这里注册。
- 在 ClickHouse Cloud 控制台中,导航到您的 ClickHouse Cloud 服务。

- 在左侧菜单中选择
Data Sources
按钮,然后点击“设置 ClickPipe”

-
选择
Postgres CDC
瓦片
添加您的源 Postgres 数据库连接
-
填写您在前提条件步骤中配置的源 Postgres 数据库的连接详情。
(可选)设置 AWS Private Link
如果您的源 Postgres 数据库托管在 AWS 上,您可以使用 AWS Private Link 进行连接。这对于想要保持数据传输私密的用户非常有用。 您可以遵循 设置指南来设置连接。
(可选)设置 SSH 隧道
如果您的源 Postgres 数据库不可公开访问,您可以指定 SSH 隧道的详细信息。
-
启用“使用 SSH 隧道”切换按钮。
-
填写 SSH 连接详情。
-
要使用基于密钥的身份验证,请单击“撤销并生成密钥对”以生成新密钥对,并将生成的公钥复制到您的 SSH 服务器的
~/.ssh/authorized_keys
。 -
单击“验证连接”以验证连接。
确保在 SSH 中继主机的防火墙规则中列入 ClickPipes IP 地址,以便 ClickPipes 可以建立 SSH 隧道。
填写连接详情后,单击“下一步”。
配置复制设置
-
确保从下拉列表中选择前提条件步骤中创建的复制槽。
高级设置
如果需要,您可以配置高级设置。每个设置的简要描述如下:
- 同步间隔:这是 ClickPipes 每次轮询源数据库以获取更改的时间间隔。这会影响目标 ClickHouse 服务,对于对成本敏感的用户,我们建议将此值保持在较高的值(超过
3600
)。 - 初始加载的并行线程:这是用于获取初始快照的并行工作者的数量。当您有大量表并希望控制用于获取初始快照的并行工作者数量时,这非常有用。此设置是按表计算的。
- 拉取批量大小:单次批量中要提取的行数。这是基于最大努力的设置,在某些情况下可能无法遵守。
- 每个分区的快照行数:这是在初始快照期间在每个分区中要获取的行数。当您的表中有大量行且希望控制每个分区获取的行数时,这非常有用。
- 并行快照的表数量:这是在初始快照期间将并行提取的表数量。当您有大量表并希望控制并行提取的表数量时,这非常有用。
配置表
-
在此处,您可以选择 ClickPipe 的目标数据库。您可以选择一个现有的数据库或创建一个新的。
-
您可以选择要从源 Postgres 数据库复制的表。在选择表时,您还可以选择在目标 ClickHouse 数据库中重命名表以及排除特定列。
警告如果您在 ClickHouse 中定义的排序键与 Postgres 中的主键不同,请务必阅读有关的所有 注意事项
审查权限并启动 ClickPipe
-
从权限下拉菜单中选择“完全访问”角色,然后单击“完成设置”。
接下来做什么?
一旦您设置了 ClickPipe 将数据从 PostgreSQL 复制到 ClickHouse Cloud,您可以专注于如何查询和建模您的数据以获取最佳性能。请参阅 迁移指南,评估哪种策略最适合您的需求,以及有关 CDC 工作负载的最佳实践的 去重策略(使用 CDC) 和 排序键 页面。
有关 PostgreSQL CDC 和故障排除的常见问题,请参阅 Postgres 常见问题页面。