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

Google Cloud SQL Postgres 源端设置指南

参考资料

如果您使用的是受支持的服务提供商之一(见侧边栏),请参考该提供商的专用指南。

支持的 Postgres 版本

Postgres 12 及更高版本

启用逻辑复制

如果 cloudsql. logical_decoding 已开启且 wal_sender_timeout 为 0,则无需执行以下步骤。若你是从其他数据复制工具迁移过来,这些设置通常已经预先配置好。

  1. 在概览页面点击 Edit(编辑)按钮。
Cloud SQL Postgres 中的 Edit 按钮
  1. 打开 Flags 选项卡,将 cloudsql.logical_decoding 设置为 on,并将 wal_sender_timeout 设置为 0。完成这些更改后,需要重启你的 Postgres 服务器。
将 cloudsql.logical_decoding 设置为 on
已设置 cloudsql.logical_decoding 和 wal_sender_timeout
重启服务器

创建 ClickPipes 用户并授予权限

使用管理员用户连接到 Cloud SQL Postgres,并运行以下命令:

  1. 为 ClickPipes 专用创建一个 Postgres 用户。

    CREATE USER clickpipes_user PASSWORD 'some-password';
    
  2. 为你要从中复制表的 schema 向 clickpipes_user 提供只读访问权限。以下示例展示了为 public schema 配置权限。如果你希望为多个 schema 授权,可以针对每个 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;
    
  3. 为该用户授予复制(replication)权限:

    ALTER ROLE clickpipes_user REPLICATION;
    
  4. 创建一个 publication,供后续创建 MIRROR(复制)时使用。

    CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;
    

将 ClickPipes IP 添加到防火墙

请按照以下步骤将 ClickPipes 的 IP 添加到您的网络中。

注意

如果您使用 SSH 隧道,则需要将 ClickPipes IP 添加到 Jump Server/Bastion(跳板机/Bastion 主机)的防火墙规则中。

  1. 转到 Connections 部分
Cloud SQL 中的 Connections 部分
  1. 转到 Networking 子部分
Cloud SQL 中的 Networking 子部分
  1. 添加 ClickPipes 的公网 IP
将 ClickPipes 网络添加到防火墙
已将 ClickPipes 网络添加到防火墙

下一步

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