Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Google Cloud SQL Postgres 数据源设置指南

支持的 Postgres 版本

Postgres 12 及更高版本

启用逻辑复制

如果设置 cloudsql. logical_decoding 已开启,则无需执行以下步骤。如果你是从其他数据复制工具迁移而来,通常此设置已预先配置好。

  1. 在 Overview 页面上点击 Edit 按钮。
Cloud SQL Postgres 中的 Edit 按钮
  1. 进入 Flags,将 cloudsql.logical_decoding 设置为 on。此更改需要重启 Postgres 服务器。
将 cloudsql.logical_decoding 设置为 on
重启服务器

创建 ClickPipes 用户并授予权限

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

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

    CREATE USER clickpipes_user PASSWORD 'some-password';
  2. 向您在上一步创建的用户授予 schema 级只读权限。以下示例展示了 public 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. 向该用户授予复制权限:

    ALTER USER clickpipes_user WITH REPLICATION;
  4. 使用您要复制的表创建一个 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 IP 添加到防火墙

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

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

下一步是什么?

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

Navigation