PlanetScale for Postgres 数据源设置指南
PlanetScale for Postgres 目前处于早期试用阶段。
支持的 Postgres 版本
ClickPipes 支持 Postgres 12 及更高版本。
启用逻辑复制
-
要在 Postgres 实例上启用复制,需要确保将以下参数设置为:
要检查当前设置,可以运行以下 SQL 命令:
输出默认应为
logical。如果不是,请登录 PlanetScale 控制台,进入Cluster configuration->Parameters,向下滚动到Write-ahead log进行修改。

在 PlanetScale 控制台中更改此项将会触发重启。
- 此外,建议将
max_slot_wal_keep_size从默认的 4GB 提高。你也可以通过 PlanetScale 控制台来完成:进入Cluster configuration->Parameters,然后向下滚动到Write-ahead log。如需帮助确定新的取值,请查看这里。

使用权限和发布(publication)创建用户
使用默认的 postgres.<...> 用户连接到你的 PlanetScale Postgres 实例,并运行以下命令:
-
为 ClickPipes 创建一个专用用户:
-
为你在上一步创建的用户授予 schema 级的只读访问权限。下面的示例展示了对
publicschema 的权限设置。对于每个包含你希望复制的表的 schema,都需要重复这些命令: -
为该用户授予复制权限:
-
使用你想要复制的表创建一个发布(publication)。我们强烈建议仅将所需的表包含在发布中,以避免额外的性能开销。
注意任何包含在发布中的表必须定义有 primary key,或者 将其 replica identity 配置为
FULL。请参阅 Postgres 常见问题 以获得如何限定发布范围的指导。-
为特定表创建发布:
-
为特定 schema 中的所有表创建发布:
clickpipes发布将包含由指定表生成的一组变更事件,稍后将用于摄取复制流。 -
注意事项
- 要连接到 PlanetScale Postgres,需要在前面创建的用户名后追加当前分支名。例如,如果创建的用户为
clickpipes_user,则在创建 ClickPipe 时实际提供的用户名需要为clickpipes_user.branch,其中branch指的是当前 PlanetScale Postgres branch 的 “id”。要快速确定这一点,可以查看你之前用于创建该用户的postgres用户名,句点后的部分即为 branch id。 - 不要为连接到 PlanetScale Postgres 的 CDC 管道使用
PSBouncer端口(当前为6432),必须使用常规端口5432。对于仅用于初始加载的管道,可以使用任一端口。 - 请确保你只连接到主实例,目前不支持连接到副本实例。
后续步骤
您现在可以创建 ClickPipe,并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud。 请务必记录在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 时将需要这些信息。