支持的版本
要使用 ClickPipes 将数据从您的 AlloyDB 实例传输到 ClickHouse Cloud,您的实例必须配置为支持逻辑复制。此功能从 AlloyDB 14 版本开始受支持。
启用逻辑复制
要检查 AlloyDB 实例是否已启用逻辑复制,请在主节点实例上运行以下查询:
SHOW wal_level;如果结果是 logical,则说明逻辑复制已启用,你可以跳到下一步。如果结果是 replica,则必须在主节点实例中将 alloydb.enable_pglogical 和 alloydb.logical_decoding 标志设为 on。
要启用这些标志,请执行以下操作:
-
在 Google Cloud Console 中,前往 AlloyDB 的 Clusters 页面。在主节点实例对应的 Actions 菜单中,点击 Edit。

-
向下滚动到 Advanced configuration options 并展开该部分。在 Flags 下,点击 Add a database flag。
- 添加
allowdb.enable_pglogical标志,并将其值设为on - 添加
alloydb.logical_decoding标志,并将其值设为on

- 添加
-
点击 Update instance 保存配置更改。请注意,此操作会触发主节点实例重启。
-
当实例状态从
Updating变为Ready后,对主节点实例运行以下查询,以验证逻辑复制是否已启用:SHOW wal_level;结果应为
logical。
创建 ClickPipes 用户并管理复制权限
以管理员用户身份连接到 AlloyDB 实例,然后执行以下命令:
-
为 ClickPipes 创建一个专用用户:
CREATE USER clickpipes_user PASSWORD 'some-password'; -
为上一步创建的用户授予 schema 级只读访问权限。以下示例展示了
publicschema 的权限。对于每个包含待复制表的 schema,都需要重复执行这些命令:GRANT USAGE ON SCHEMA "public" TO clickpipes_user; GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; -
向该用户授予复制权限:
ALTER USER clickpipes_user WITH REPLICATION; -
使用你要复制的表创建一个 publication。我们强烈建议只在 publication 中包含所需的表,以避免额外的性能开销。
-
为特定表创建 publication:
CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;-
为特定 schema 中的所有表创建 publication:
CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
-
clickpipes publication 定义了其变更事件将流式传输到 ClickPipes 的那组表。除非你打算复制每一张表,否则我们不建议使用 FOR ALL TABLES,因为包含不必要的表会增加从 Postgres 到 ClickPipes 的 WAL 流量,并降低整体复制效率。
配置网络访问
接下来,选择 ClickPipes 连接到 AlloyDB 实例的方式。
对于从托管在 GCP 上的 ClickHouse Cloud 服务建立的私有连接,请按照 GCP Private Service Connect 指南,为 AlloyDB 实例配置反向专用终结点。
-
在 Google Cloud Console 中,前往 AlloyDB 的 Clusters 页面。选择你的主节点实例,打开 Overview 页面。
-
向下滚动到 Instances in your cluster,然后点击 Edit primary。
-
勾选 Enable Public IP 复选框,以允许通过公网连接到该实例。在 Authorized external networks 下,输入你的 service 所部署区域对应的 ClickPipes 静态 IP 地址列表。

-
在 Network Security 下,选择 Require SSL Encryption (default) (如果尚未选中) 。
-
点击 Update instance 保存网络安全配置更改。
如果你不允许公开访问 AlloyDB 实例,则必须先设置一台 SSH 堡垒机主机,以通过安全隧道建立连接。要在 Google Cloud Platform 上设置 SSH 堡垒机主机:
-
按照官方文档创建并启动一个 Google Compute Engine (GCE) 实例。
- 确保 GCE 实例与你的 AlloyDB 实例位于同一个 Virtual Private Network (VPC) 中。
- 确保 GCE 实例具有一个静态公网 IP 地址。将 ClickPipes 连接到 SSH 堡垒机主机时,你需要使用此 IP 地址。
-
更新 SSH 堡垒机主机的防火墙规则,以允许来自你的 service 所部署区域对应的 ClickPipes 静态 IP 地址列表 的流量。
-
更新 AlloyDB 的防火墙规则,以允许来自 SSH 堡垒机主机的流量。
下一步是什么?
你现在可以创建你的 ClickPipe,并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud。 请务必记下你在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 的过程中会用到这些信息。