跳到主要内容
跳到主要内容

AlloyDB Postgres 数据源配置指南

支持的版本

要使用 ClickPipes 将数据从 AlloyDB 实例传输到 ClickHouse Cloud,必须将该实例配置为使用 逻辑复制(logical replication)。该功能自 AlloyDB 14 版本 起受到支持。

启用逻辑复制

要检查您的 AlloyDB 实例是否已启用逻辑复制,请在主实例上运行以下查询:

SHOW  wal_level;

如果结果为 logical,说明已启用逻辑复制,您可以跳到下一步。如果结果为 replica,则必须在主实例中将 alloydb.enable_pglogicalalloydb.logical_decoding 标志设置为 on

注意

AlloyDB 标志文档所述,修改用于启用逻辑复制的标志需要重新启动主实例。

要启用这些标志:

  1. 在 Google Cloud 控制台中,导航到 AlloyDB Clusters 页面。在主实例的 Actions 菜单中,点击 Edit

    编辑主实例配置
  2. 向下滚动到 Advanced configuration options 并展开该部分。在 Flags 下,点击 Add a database flag

    将 allowdb.enable_pglogical 和 alloydb.logical_decoding 标志设置为 on
  3. 点击 Update instance 以保存配置更改。需要特别注意的是,此操作会触发主实例重启。

  4. 当实例状态从 Updating 变为 Ready 后,在主实例上运行以下查询,以验证已启用逻辑复制:

    SHOW  wal_level;
    

    结果应为 logical

    验证逻辑复制已启用

创建 ClickPipes 用户并管理复制权限

以管理员用户连接到 AlloyDB 实例并执行以下命令:

  1. 为 ClickPipes 创建一个专用用户:

    CREATE USER clickpipes_user PASSWORD 'some-password';
    
  2. 为该专用用户授予需要复制的 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;
    

    上面的示例展示了针对 public schema 的权限设置。对每个希望通过 ClickPipes 进行复制的 schema 重复执行上述命令序列。

  3. 为该专用用户授予管理复制的权限:

    ALTER ROLE clickpipes_user REPLICATION;
    
  4. 使用你希望复制的表创建一个 publication。强烈建议仅在 publication 中包含实际需要的表,以避免额外的性能开销。

    注意

    包含在 publication 中的所有表必须要么定义了 primary key,要么将其 replica identity 配置为 FULL。关于范围设置的指导,请参阅 Postgres 常见问题

    • 为特定表创建 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 不支持 Private Service Connect (PSC) 连接。如果你不允许对 AlloyDB 实例的公共访问,可以使用 SSH 隧道以安全方式连接。PSC 将在未来提供支持。

接下来,你需要允许 ClickPipes 连接到你的 AlloyDB 实例。

  1. 在 Google Cloud Console 中,导航到 AlloyDB Clusters 页面。选择你的主实例以打开 Overview 页面。

  2. 向下滚动至 Instances in your cluster 并点击 Edit primary

  3. 勾选 Enable Public IP 复选框,以允许通过公共互联网连接到该实例。在 Authorized external networks 下,为你的服务部署所在区域输入ClickPipes 静态 IP 地址列表

    使用 IP 允许列表配置公共访问的网络
    注意

    AlloyDB 要求使用 CIDR 表示法指定地址。你可以通过在每个地址后追加 /32,将提供的 ClickPipes 静态 IP 地址列表调整为符合该表示法。

  4. Network Security 下,选择 Require SSL Encryption (default)(如果尚未选择)。

  5. 点击 Update instance 以保存网络安全配置更改。

下一步

现在可以创建 ClickPipe,并开始将 Postgres 实例中的数据摄取到 ClickHouse Cloud 中。 请务必记录在设置 Postgres 实例时使用的连接信息,因为在创建 ClickPipe 时需要用到这些信息。