跳转到主内容
跳转到主内容

Azure PostgreSQL 灵活服务器源设置指南

ClickPipes 支持 Postgres 12 及更高版本。

启用逻辑复制

如果 wal_level 已设置为 logical,则无需执行以下步骤。如果你是从其他数据复制工具迁移过来,这个设置通常已经预先配置好了。

  1. 点击 Server parameters 部分
Azure Flexible Server for Postgres 中的 Server Parameters
  1. wal_level 设置为 logical
在 Azure Flexible Server for Postgres 中将 wal_level 更改为 logical
  1. 此更改需要重启服务器。因此,请在系统提示时重启服务器。
在更改 wal_level 后重启服务器

创建 ClickPipes 用户并授予权限

通过管理员用户连接到 Azure Database for PostgreSQL 灵活服务器,并运行以下命令:

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

    CREATE USER clickpipes_user PASSWORD 'some-password';
    
  2. 为上一步创建的用户授予模式级只读访问权限。以下示例展示了对 public 模式的权限设置。对于每个包含你希望复制的表的模式,都需要重复这些命令:

    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 中的表必须定义有主键或者 将其 replica identity 配置为 FULL。有关范围设定的指导,请参阅 Postgres 常见问题

    • 为特定表创建 publication:

      CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
      
    • 为特定模式中的所有表创建 publication:

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
      

    clickpipes publication 将包含由指定表生成的一组变更事件,之后会用于摄取复制流。

  5. wal_sender_timeoutclickpipes_user 设置为 0:

    ALTER ROLE clickpipes_user SET wal_sender_timeout to 0;
    

将 ClickPipes IP 添加到防火墙

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

  1. 转到 Networking 选项卡,将 ClickPipes IP 添加到 Azure Flexible Server Postgres 的防火墙;如果使用 SSH 隧道,则将其添加到 Jump Server/Bastion 主机的防火墙中。
在 Azure Flexible Server for Postgres 中将 ClickPipes IP 添加到防火墙

下一步

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