方式 1:从 Postgres 服务同步到 ClickHouse
在 ClickHouse Cloud 控制台中打开你的 ClickHouse Managed Postgres 服务,然后在侧边栏中点击 Sync to ClickHouse。向导会自动填好源端连接信息,你只需选择目标端 ClickHouse 服务、复制方式以及要复制的表即可,无需另行配置用户、publication 或网络。 详细的分步操作说明请参阅 Sync to ClickHouse 指南。如果需要低延迟复制,你还可以选择 WalShadow,这是一种在文件系统层面读取数据的原生复制引擎,目前处于私有预览阶段。方式 2:在 ClickPipes 中选择 ClickHouse Managed Postgres 作为源
如果你更希望从目标端入手,可打开你的 ClickHouse 服务,进入 Data Sources,并在源列表中选择 ClickHouse Managed Postgres。随后,像配置其他任何 Postgres 源一样,填写你的 Postgres 实例的连接详情即可。连接详情
打开您的 ClickHouse Managed Postgres 服务并点击 Connect,即可查看主机、端口、数据库、用户名和密码。请使用 Postgres 直连方式,而非 via PgBouncer 开关:ClickPipes 不支持通过 PgBouncer 或任何其他连接池器进行复制。详情请参阅 Connection。创建具有权限的用户
你可以使用默认的postgres 用户进行连接。在生产环境中,我们建议使用专用的只读复制用户,做法与其他任何 Postgres 源完全相同。使用 psql 连接到你的实例并运行:
-
为 ClickPipes 创建一个专用用户:
-
为该用户授予 schema 级别的只读访问权限。以下示例展示了对
publicschema 的权限设置。对每个包含待复制表的 schema 重复执行这些命令: -
为该用户授予复制特权:
- 为需要复制的表创建一个 publication。我们强烈建议在 publication 中仅包含所需的表,以免带来额外的性能开销。
-
为特定表创建 publication:
-
为特定 schema 中的所有表创建 publication:
-
为特定 schema 中的所有表创建 publication:
逻辑复制
每个 ClickHouse Managed Postgres 实例均已启用逻辑复制,无需修改wal_level 设置或参数组。可通过以下方式确认:
网络访问
ClickHouse Managed Postgres 默认接受来自 ClickPipes 的连接。如果您已在 Postgres 服务上配置了 IP filters,请将 ClickHouse 服务所在区域的 ClickPipes 静态 IP 地址添加到允许列表中。TLS
ClickHouse Managed Postgres 实例出示的证书由该实例专属的 CA 签发,不受公共信任。ClickPipes 默认启用证书校验,因此在你完成以下任一操作之前,连接检查都会失败:- 在 Postgres 服务的 Settings 选项卡中下载 CA 证书包,并在 ClickPipe 连接设置中通过 Upload CA 上传。推荐使用此方式。有关该证书包的获取位置,请参阅 Verified TLS connection。
- 在 ClickPipe 连接设置中开启 Skip certificate verification。此时连接仍然加密,但不会校验 server 身份。
clickhousectl 创建管道,请先拉取该证书包,并通过 --ca-certificate 传入: