跳到主要内容
跳到主要内容
编辑此页面

RDS Postgres 源设置指南

支持的 Postgres 版本

ClickPipes 支持 Postgres 12 及更高版本。

启用逻辑复制

如果您的 RDS 实例已配置以下设置,则可以跳过此部分

  • rds.logical_replication = 1
  • wal_sender_timeout = 0

如果您之前使用过其他数据复制工具,则通常会预先配置这些设置。

Checking if logical replication is already enabled

如果尚未配置,请按照以下步骤操作

  1. 为您的 Postgres 版本创建一个新的参数组,并包含所需的设置

    • rds.logical_replication 设置为 1
    • wal_sender_timeout 设置为 0

    Where to find Parameter groups in RDS?

    Changing rds.logical_replication

    Changing wal_sender_timeout

  2. 将新的参数组应用到您的 RDS Postgres 数据库

    Modifying RDS Postgres with new parameter group

  3. 重启您的 RDS 实例以应用更改

    Reboot RDS Postgres

配置数据库用户

以管理员用户身份连接到您的 RDS Postgres 实例,并执行以下命令

  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. 授予复制权限

    GRANT rds_replication TO clickpipes_user;
  4. 创建用于复制的发布

    CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;

配置网络访问

基于 IP 的访问控制

如果您想限制对 RDS 实例的流量,请将已记录的静态 NAT IP添加到您的 RDS 安全组的 入站规则 中。

Where to find security group in RDS Postgres?

Edit inbound rules for the above security group

要通过私有网络连接到您的 RDS 实例,您可以使用 AWS PrivateLink。请按照我们的ClickPipes 的 AWS PrivateLink 设置指南设置连接。

RDS Proxy 的解决方法

RDS Proxy 不支持逻辑复制连接。如果您的 RDS 中有动态 IP 地址,并且无法使用 DNS 名称或 lambda,则可以考虑以下替代方案

  1. 使用 cron 作业,定期解析 RDS 端点的 IP,并在 IP 发生更改时更新 NLB。
  2. 将 RDS 事件通知与 EventBridge/SNS 结合使用:使用 AWS RDS 事件通知自动触发更新
  3. 稳定 EC2:部署 EC2 实例以充当轮询服务或基于 IP 的代理
  4. 使用 Terraform 或 CloudFormation 等工具自动化 IP 地址管理。

下一步是什么?

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