从 Postgres 摄取数据到 ClickHouse(使用 CDC)
您可以使用 ClickPipes 将数据从您的源 Postgres 数据库摄取到 ClickHouse Cloud。源 Postgres 数据库可以托管在本地或云端,包括 Amazon RDS、Google Cloud SQL、Azure Database for Postgres、Supabase 等。
先决条件
首先,您需要确保您的 Postgres 数据库已正确设置。根据您的源 Postgres 实例,您可以遵循以下任何指南
-
通用 Postgres 源,如果您使用的是其他 Postgres 提供商或使用自托管实例。
-
TimescaleDB,如果您在托管服务或自托管实例上使用 TimescaleDB 扩展。
基于 CDC 的复制不支持 Postgres 代理,如 PgBouncer、RDS Proxy、Supabase Pooler 等。请确保不要在 ClickPipes 设置中使用它们,而是添加实际 Postgres 数据库的连接详细信息。
设置好源 Postgres 数据库后,您可以继续创建您的 ClickPipe。
创建您的 ClickPipe
请确保您已登录到您的 ClickHouse Cloud 帐户。如果您还没有帐户,可以 在此处 注册。
- 在 ClickHouse Cloud 控制台中,导航到您的 ClickHouse Cloud 服务。
- 在左侧菜单上选择
数据源按钮,然后单击“设置 ClickPipe”。
-
选择
Postgres CDC图块
添加您的源 Postgres 数据库连接
-
填写您在先决条件步骤中配置的源 Postgres 数据库的连接详细信息。
(可选) 设置 AWS Private Link
如果您的源 Postgres 数据库托管在 AWS 上,您可以使用 AWS Private Link 进行连接。如果您希望保持数据传输的私密性,这将很有用。您可以按照 设置指南 设置连接。
(可选) 设置 SSH 隧道
如果您的源 Postgres 数据库不可公开访问,您可以指定 SSH 隧道详细信息。
-
启用“使用 SSH 隧道”切换开关。
-
填写 SSH 连接详细信息。
-
要使用基于密钥的身份验证,请单击“撤销并生成密钥对”以生成新的密钥对,并将生成的公钥复制到 SSH 服务器的
~/.ssh/authorized_keys下。 -
单击“验证连接”以验证连接。
请确保将 ClickPipes IP 地址 列入 SSH bastion 主机的防火墙规则白名单,以便 ClickPipes 可以建立 SSH 隧道。
填写完连接详细信息后,单击“下一步”。
配置复制设置
-
请确保从下拉列表中选择您在先决条件步骤中创建的复制槽。
高级设置
如果需要,您可以配置高级设置。下面提供了每个设置的简要说明
- 同步间隔:这是 ClickPipes 将轮询源数据库以获取更改的间隔。对于对成本敏感的用户,我们建议将其保持在较高值(超过
3600)。 - 初始加载的并行线程数:这是将用于获取初始快照的并行工作线程的数量。当您有大量表并且想要控制用于获取初始快照的并行工作线程的数量时,这将很有用。此设置是每个表的。
- 拉取批处理大小:每次提取的行数。这是一个尽力而为的设置,在所有情况下可能不会得到尊重。
- 快照每分区行数:这是在初始快照期间每个分区中将获取的行数。当您的表中有大量行并且您想要控制每个分区中获取的行数时,这将很有用。
- 快照并行表数:在初始快照期间并行提取的表数。当您有大量表并且想要控制并行提取的表数时,这很有用。
配置表
-
您可以在此处选择 ClickPipe 的目标数据库。您可以选择现有数据库或创建一个新数据库。
-
您可以选择要从源 Postgres 数据库复制的表。在选择表时,您还可以选择在目标 ClickHouse 数据库中重命名表以及排除特定列。
注意如果您在 ClickHouse 中定义了与 Postgres 主键不同的排序键,请务必阅读所有关于 注意事项。
审核权限并启动 ClickPipe
-
从权限下拉列表中选择“完全访问”角色,然后单击“完成设置”。
下一步?
设置好从 PostgreSQL 复制到 ClickHouse Cloud 的 ClickPipe 后,您可以专注于如何查询和建模数据以获得最佳性能。请参阅 迁移指南,以评估最适合您需求的策略,以及有关 CDC 工作负载的 重复数据删除策略(使用 CDC) 和 排序键 页面,以获取最佳实践。
有关 PostgreSQL CDC 和故障排除的常见问题,请参阅 Postgres FAQ 页面。