RDS Postgres 源设置指南
支持的 Postgres 版本
ClickPipes 支持 Postgres 12 及更高版本。
启用逻辑复制
如果您的 RDS 实例已配置以下设置,则可以跳过此部分
rds.logical_replication = 1
wal_sender_timeout = 0
如果您之前使用过其他数据复制工具,则通常会预先配置这些设置。
如果尚未配置,请按照以下步骤操作
-
为您的 Postgres 版本创建一个新的参数组,并包含所需的设置
- 将
rds.logical_replication
设置为 1 - 将
wal_sender_timeout
设置为 0
- 将
-
将新的参数组应用到您的 RDS Postgres 数据库
-
重启您的 RDS 实例以应用更改
配置数据库用户
以管理员用户身份连接到您的 RDS Postgres 实例,并执行以下命令
-
为 ClickPipes 创建一个专用用户
CREATE USER clickpipes_user PASSWORD 'some-password';
-
授予模式权限。以下示例显示了
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; -
授予复制权限
GRANT rds_replication TO clickpipes_user;
-
创建用于复制的发布
CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;
配置网络访问
基于 IP 的访问控制
如果您想限制对 RDS 实例的流量,请将已记录的静态 NAT IP添加到您的 RDS 安全组的 入站规则
中。
通过 AWS PrivateLink 的私有访问
要通过私有网络连接到您的 RDS 实例,您可以使用 AWS PrivateLink。请按照我们的ClickPipes 的 AWS PrivateLink 设置指南设置连接。
RDS Proxy 的解决方法
RDS Proxy 不支持逻辑复制连接。如果您的 RDS 中有动态 IP 地址,并且无法使用 DNS 名称或 lambda,则可以考虑以下替代方案
- 使用 cron 作业,定期解析 RDS 端点的 IP,并在 IP 发生更改时更新 NLB。
- 将 RDS 事件通知与 EventBridge/SNS 结合使用:使用 AWS RDS 事件通知自动触发更新
- 稳定 EC2:部署 EC2 实例以充当轮询服务或基于 IP 的代理
- 使用 Terraform 或 CloudFormation 等工具自动化 IP 地址管理。
下一步是什么?
您现在可以创建您的 ClickPipe 并开始将数据从您的 Postgres 实例摄取到 ClickHouse Cloud 中。请务必记下您在设置 Postgres 实例时使用的连接详细信息,因为您在 ClickPipe 创建过程中将需要它们。