AlloyDB Postgres 数据源配置指南
支持的版本
要使用 ClickPipes 将数据从 AlloyDB 实例传输到 ClickHouse Cloud,必须将该实例配置为使用 逻辑复制(logical replication)。该功能自 AlloyDB 14 版本 起受到支持。
启用逻辑复制
要检查您的 AlloyDB 实例是否已启用逻辑复制,请在主实例上运行以下查询:
如果结果为 logical,说明已启用逻辑复制,您可以跳到下一步。如果结果为 replica,则必须在主实例中将 alloydb.enable_pglogical 和 alloydb.logical_decoding 标志设置为 on。
如 AlloyDB 标志文档所述,修改用于启用逻辑复制的标志需要重新启动主实例。
要启用这些标志:
-
在 Google Cloud 控制台中,导航到 AlloyDB Clusters 页面。在主实例的 Actions 菜单中,点击 Edit。

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

- 添加
-
点击 Update instance 以保存配置更改。需要特别注意的是,此操作会触发主实例重启。
-
当实例状态从
Updating变为Ready后,在主实例上运行以下查询,以验证已启用逻辑复制:结果应为
logical。
创建 ClickPipes 用户并管理复制权限
以管理员用户连接到 AlloyDB 实例并执行以下命令:
-
为 ClickPipes 创建一个专用用户:
-
为该专用用户授予需要复制的 schema 的权限。
上面的示例展示了针对
publicschema 的权限设置。对每个希望通过 ClickPipes 进行复制的 schema 重复执行上述命令序列。 -
为该专用用户授予管理复制的权限:
-
使用你希望复制的表创建一个 publication。强烈建议仅在 publication 中包含实际需要的表,以避免额外的性能开销。
注意包含在 publication 中的所有表必须要么定义了 primary key,要么将其 replica identity 配置为
FULL。关于范围设置的指导,请参阅 Postgres 常见问题。-
为特定表创建 publication:
-
为特定 schema 中的所有表创建 publication:
clickpipespublication 将包含由指定表生成的一组变更事件,稍后将用于摄取复制流。 -
配置网络安全
ClickPipes 不支持 Private Service Connect (PSC) 连接。如果你不允许对 AlloyDB 实例的公共访问,可以使用 SSH 隧道以安全方式连接。PSC 将在未来提供支持。
接下来,你需要允许 ClickPipes 连接到你的 AlloyDB 实例。
- 允许 ClickPipes 的 IP
- 使用 SSH 隧道
-
在 Google Cloud Console 中,导航到 AlloyDB Clusters 页面。选择你的主实例以打开 Overview 页面。
-
向下滚动至 Instances in your cluster 并点击 Edit primary。
-
勾选 Enable Public IP 复选框,以允许通过公共互联网连接到该实例。在 Authorized external networks 下,为你的服务部署所在区域输入ClickPipes 静态 IP 地址列表。
注意AlloyDB 要求使用 CIDR 表示法指定地址。你可以通过在每个地址后追加
/32,将提供的 ClickPipes 静态 IP 地址列表调整为符合该表示法。 -
在 Network Security 下,选择 Require SSL Encryption (default)(如果尚未选择)。
-
点击 Update instance 以保存网络安全配置更改。
如果你不允许对 AlloyDB 实例的公共访问,必须先设置一个 SSH 跳板机,通过安全隧道转发连接。在 Google Cloud Platform 上设置 SSH 跳板机的方法如下:
-
按照官方文档创建并启动一个 Google Compute Engine (GCE) 实例。
- 确保 GCE 实例与 AlloyDB 实例位于同一虚拟私有网络 (VPC) 中。
- 确保 GCE 实例具有静态公共 IP 地址。在将 ClickPipes 连接到 SSH 跳板机时,你将使用此 IP 地址。
-
更新 SSH 跳板机的防火墙规则,以允许来自你的服务部署所在区域的 ClickPipes 静态 IP 地址列表 的流量。
-
更新 AlloyDB 的防火墙规则,以允许来自 SSH 跳板机的流量。
下一步
现在可以创建 ClickPipe,并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud 中。 请务必记录在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 时需要用到这些信息。