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

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 写入实例,并执行以下命令:

  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。我们强烈建议只将所需的表包含在 publication 中,以避免额外的性能开销。

    注意

    publication 中包含的任何表都必须已定义 primary key或者 将其 副本 identity 配置为 FULL。有关如何确定范围的指导,请参阅 Postgres FAQs

    • 为特定表创建 publication:

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

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
      

    clickpipes publication 将包含指定表产生的变更事件集合,后续将用于摄取复制流。

配置网络访问权限

基于 IP 的访问控制

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

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

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

Aurora 特定注意事项

使用 Aurora PostgreSQL 设置 ClickPipes 时,请牢记以下注意事项:

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

  2. 故障切换处理:发生故障切换时,Aurora 会自动将一个 reader 提升为新的写入节点。ClickPipes 会检测到连接中断,并尝试重新连接到写入端点,而该端点此时会指向新的主 实例。

  3. Global Database:如果您使用的是 Aurora Global Database,则应连接到主区域的写入端点,因为跨区域复制已负责处理区域之间的数据传输。

  4. 存储注意事项:Aurora 的存储层由 集群 中的所有 实例 共享,因此与标准 RDS 相比,通常能为逻辑复制提供更好的性能。

处理动态集群端点

虽然 Aurora 提供了稳定的端点,并会自动路由到相应的实例,但您还可以采用以下方法来确保连接始终保持一致:

  1. 对于高可用配置,请将您的应用配置为使用 Aurora 写入端点,该端点会自动指向当前的主实例。

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

接下来做什么?

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