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

Aurora Postgres 源端配置指南

支持的 Postgres 版本

ClickPipes 支持 Aurora PostgreSQL-Compatible Edition 12 及以上版本。

启用逻辑复制

如果您的 Aurora 实例已经配置了以下设置,则可以跳过本节:

  • rds.logical_replication = 1
  • wal_sender_timeout = 0

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

postgres=> SHOW rds.logical_replication ;
 rds.logical_replication
-------------------------
 on
(1 row)

postgres=> SHOW wal_sender_timeout ;
 wal_sender_timeout
--------------------
 0
(1 row)

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

  1. 为当前使用的 Aurora PostgreSQL 版本创建一个新的参数组,并设置以下参数:
    • rds.logical_replication 设置为 1
    • wal_sender_timeout 设置为 0
在 Aurora 中查找参数组的位置
修改 rds.logical_replication
修改 wal_sender_timeout
  1. 将新的参数组应用到 Aurora PostgreSQL 集群
使用新的参数组修改 Aurora PostgreSQL
  1. 重启 Aurora 集群以应用更改
重启 Aurora PostgreSQL

配置数据库用户

以管理员用户连接到你的 Aurora PostgreSQL writer 实例,并执行以下命令:

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

    GRANT rds_replication TO clickpipes_user;
    
  4. 为复制创建一个 publication:

    CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;
    

配置网络访问

基于 IP 的访问控制

如果希望限制访问 Aurora 集群的入站流量,请将文档中列出的静态 NAT IP 添加到 Aurora 安全组的 Inbound rules 中。

在 Aurora PostgreSQL 中在哪里可以找到安全组?
为上述安全组编辑入站规则

要通过私有网络连接到 Aurora 集群,可以使用 AWS PrivateLink。请按照我们的 ClickPipes 的 AWS PrivateLink 配置指南 来完成连接设置。

Aurora 专用注意事项

在为 Aurora PostgreSQL 配置 ClickPipes 时,请注意以下事项:

  1. 连接端点:始终连接到 Aurora 集群的 writer 端点,因为逻辑复制需要写入权限来创建复制插槽,并且必须连接到主实例。

  2. 故障转移处理:在发生故障转移时,Aurora 会自动将某个 reader 提升为新的 writer。ClickPipes 会检测到连接中断,并尝试重新连接到 writer 端点,此时该端点会指向新的主实例。

  3. 全局数据库:如果使用的是 Aurora Global Database,则应连接到主区域的 writer 端点,因为跨区域复制已经负责在各区域之间传输数据。

  4. 存储注意事项:Aurora 的存储层在集群中的所有实例之间共享,与标准 RDS 相比,这可以为逻辑复制提供更好的性能。

处理动态集群端点

虽然 Aurora 提供的端点是稳定的,并会自动路由到合适的实例,但以下是一些确保连接稳定性的一般做法:

  1. 对于高可用部署,将应用程序配置为使用 Aurora writer 端点,该端点会自动指向当前的主实例。

  2. 如果使用跨区域复制,建议为每个区域分别配置独立的 ClickPipes,以降低延迟并提升容错能力。

接下来

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