将数据从 Postgres 导入到 ClickHouse(使用 CDC)
您可以使用 ClickPipes 将数据从源 Postgres 数据库导入到 ClickHouse Cloud。源 Postgres 数据库可以在本地或云中托管,包括 Amazon RDS、Google Cloud SQL、Azure Database for Postgres、Supabase 等。
前提条件
要开始,您首先需要确保您的 Postgres 数据库已正确设置。根据您的源 Postgres 实例,您可以遵循以下任一指南:
-
Generic Postgres Source,如果您使用的是其他 Postgres 提供商或使用自托管实例。
-
TimescaleDB,如果您在托管服务或自托管实例上使用 TimescaleDB 扩展。
不支持基于 CDC 的复制的 Postgres 代理,如 PgBouncer、RDS Proxy、Supabase Pooler 等。请确保在 ClickPipes 设置中不要使用它们,而是添加实际 Postgres 数据库的连接详细信息。
一旦您的源 Postgres 数据库设置完成,您可以继续创建您的 ClickPipe。
创建 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 进行连接。这在您希望保持数据传输隐私时非常有用。您可以按照 设置指南来设置连接。
(可选)设置 SSH 隧道
如果您的源 Postgres 数据库无法公开访问,您可以指定 SSH 隧道详细信息。
-
启用 "Use SSH Tunnelling" 切换开关。
-
填写 SSH 连接详细信息。
-
要使用基于密钥的身份验证,单击 "Revoke and generate key pair" 生成新的密钥对,并将生成的公钥复制到您的 SSH 服务器
~/.ssh/authorized_keys
下。 -
单击 "Verify Connection" 以验证连接。
确保在防火墙规则中为 SSH 大师主机列入 ClickPipes IP 地址 的白名单,以便 ClickPipes 可以建立 SSH 隧道。
一旦填写了连接详细信息,单击 "Next"。
配置复制设置
-
确保从下拉列表中选择在前提条件步骤中创建的复制槽。
高级设置
如果需要,您可以配置高级设置。每个设置的简要描述如下:
- 同步间隔: 这是 ClickPipes 轮询源数据库以检测更改的间隔。对于成本敏感的用户,我们建议将其保持在较高的值(超过
3600
)。 - 初始加载的并行线程: 这是用于获取初始快照的并行工作者数量。当您有大量表并希望控制获取初始快照时使用的并行工作者数量时,这很有用。此设置是针对每个表的。
- 拉取批大小: 单次批次要获取的行数。这是一个最佳努力的设置,可能在某些情况下无法遵守。
- 每个分区的快照行数: 在初始快照期间,每个分区将获取的行数。当您在表中有大量行并希望控制每个分区获取的行数时,这很有用。
- 并行快照表数: 在初始快照期间将并行获取的表的数量。当您有大量表,并希望控制并行获取的表数时,这很有用。
配置表
-
在这里,您可以选择 ClickPipe 的目标数据库。您可以选择现有数据库或创建新数据库。
-
您可以从源 Postgres 数据库中选择要复制的表。在选择表时,您还可以选择在目标 ClickHouse 数据库中重命名表以及排除特定列。
危险如果您在 ClickHouse 中定义的 Ordering Key 与 Postgres 中的主键不同,请务必查看所有相关的 注意事项!
审查权限并开始 ClickPipe
-
从权限下拉列表中选择 "Full access" 角色,然后单击 "Complete Setup"。
接下来是什么?
一旦您将数据从 Postgres 移动到 ClickHouse,接下来的显而易见的问题是如何在 ClickHouse 中查询和建模您的数据,以最大限度地利用它。请参考 迁移指南 获取有关从 PostgreSQL 迁移到 ClickHouse 的逐步方法。此外,请确保查看有关 去重策略(使用 CDC) 和 Ordering Keys 的页面,以了解如何处理重复项并在使用 CDC 时自定义排序键。
最后,请参考 "ClickPipes for Postgres FAQ" 页面以获取有关常见问题及其解决方法的更多信息。