从 Postgres 导入数据到 ClickHouse (使用 CDC)
目前,通过 ClickPipes 将数据从 Postgres 导入到 ClickHouse Cloud 处于私有预览阶段。如果您有兴趣试用,请在此处注册 here。
您可以使用 ClickPipes 将数据从您的源 Postgres 数据库导入到 ClickHouse Cloud。源 Postgres 数据库可以托管在本地或云端,包括 Amazon RDS、Google Cloud SQL、Azure Database for Postgres、Supabase 等。
先决条件
要开始使用,您首先需要确保您的 Postgres 数据库设置正确。根据您的源 Postgres 实例,您可以按照以下任一指南进行操作
-
通用 Postgres 源,如果您使用任何其他 Postgres 提供商或使用自托管实例
基于 CDC 复制的 Postgres 代理(如 PgBouncer、RDS Proxy、Supabase Pooler 等)不受支持。请确保不要将它们用于 ClickPipes 设置,而是添加实际 Postgres 数据库的连接详细信息。
设置好源 Postgres 数据库后,您可以继续创建 ClickPipe。
创建您的 ClickPipe
确保您已登录到您的 ClickHouse Cloud 帐户。如果您还没有帐户,可以在这里注册 here。
-
在 ClickHouse Cloud 控制台中,导航到您的 ClickHouse Cloud 服务。
-
在左侧菜单中选择
Data Sources
按钮,然后单击 “Set up a ClickPipe” -
选择
Postgres CDC
磁贴
添加您的源 Postgres 数据库连接
-
填写您在先决条件步骤中配置的源 Postgres 数据库的连接详细信息。
(可选)设置 SSH 隧道
如果您的源 Postgres 数据库无法公开访问,您可以指定 SSH 隧道详细信息。
-
启用 “Use SSH Tunnelling” 开关。
-
填写 SSH 连接详细信息。
-
要使用基于密钥的身份验证,请单击 “Revoke and generate key pair” 以生成新的密钥对,并将生成的公钥复制到 SSH 服务器上的
~/.ssh/authorized_keys
下。 -
单击 “Verify Connection” 以验证连接。
确保在 SSH bastion 主机的防火墙规则中将 ClickPipes IP 地址 列入白名单,以便 ClickPipes 可以建立 SSH 隧道。
填写完连接详细信息后,单击 “Next”。
配置复制设置
-
确保从您在先决条件步骤中创建的下拉列表中选择复制槽。
高级设置
您可以根据需要配置高级设置。下面提供了每个设置的简要说明
- 同步间隔:这是 ClickPipes 轮询源数据库以查找更改的间隔。这对目标 ClickHouse 服务有影响,对于成本敏感型用户,我们建议将其保持在较高的值(超过
3600
)。 - 初始加载的并行线程数:这是用于获取初始快照的并行工作线程数。当您有大量表并且想要控制用于获取初始快照的并行工作线程数时,这很有用。此设置是按表设置的。
- 拉取批次大小:单个批次中要获取的行数。这是一个尽力而为的设置,可能并非在所有情况下都得到遵守。
- 快照每个分区的行数:这是在初始快照期间每个分区将获取的行数。当您的表中有大量行并且想要控制每个分区中获取的行数时,这很有用。
- 快照并行表数:这是在初始快照期间将并行获取的表数。当您有大量表并且想要控制并行获取的表数时,这很有用。
- 同步间隔:这是 ClickPipes 轮询源数据库以查找更改的间隔。这对目标 ClickHouse 服务有影响,对于成本敏感型用户,我们建议将其保持在较高的值(超过
配置表
-
在这里,您可以为 ClickPipe 选择目标数据库。您可以选择现有数据库或创建新数据库。
-
您可以选择要从源 Postgres 数据库复制的表。在选择表时,您还可以选择重命名目标 ClickHouse 数据库中的表以及排除特定列。
危险如果您在 ClickHouse 中定义的排序键与 Postgres 中的主键不同,请不要忘记阅读所有关于它的 注意事项!
查看权限并启动 ClickPipe
-
从权限下拉列表中选择 “Full access” 角色,然后单击 “Complete Setup”。
下一步是什么?
将数据从 Postgres 移动到 ClickHouse 后,下一个显而易见的问题是如何在 ClickHouse 中对数据进行建模,以充分利用它。请参阅此页面上的 面向 Postgres 用户的 ClickHouse 数据建模技巧,以帮助您在 ClickHouse 中对数据进行建模。
此外,请参阅 ClickPipes for Postgres 常见问题解答,了解有关常见问题以及如何解决这些问题的更多信息。
这篇 文章尤为重要,因为 ClickHouse 与 Postgres 不同,您可能会遇到一些意外情况。本指南有助于解决潜在的陷阱,并确保您可以充分利用 ClickHouse。