使用 Aurora PostgreSQL Limitless Database 数据加载实用程序 - Amazon Aurora

使用 Aurora PostgreSQL Limitless Database 数据加载实用程序

Aurora 提供了一种实用程序,用于从 Aurora PostgreSQL 数据库集群或 RDS for PostgreSQL 数据库实例将数据直接加载到 Limitless Database 中。

您可以执行以下步骤来使用数据加载实用程序:

限制

数据加载实用程序具有以下限制:

  • 不支持以下数据类型:enumARRAYBOXCIRCLELINELSEGPATHPG_LSNPG_SNAPSHOTPOLYGONTSQUERYTSVECTORTXID_SNAPSHOT

  • 加载期间,VARBIT 数据类型的前导零 (0) 将被去除。

  • 当源表上有复合主键时,数据迁移失败。

  • 当目标表上有外键时,数据迁移失败。

  • 不支持从 RDS for PostgreSQL 多可用区数据库集群加载数据。

先决条件

数据加载实用程序具有以下先决条件:

  • 源数据库使用 Aurora PostgreSQL 或 RDS for PostgreSQL 版本 11.x 及更高版本。

  • 源数据库与目标数据库分片组位于相同的 AWS 账户和 AWS 区域中。

  • 源数据库集群或数据库实例处于 available 状态。

  • 源数据库和 Limitless Database 上的表具有相同的表名称、列名称和列数据类型。

  • 源表和目标表的主键使用相同的列和列顺序。

  • 要运行数据加载命令,您必须有一个可以连接到无限数据库的环境。可用命令如下:

    • rds_aurora.limitless_data_load_start

    • rds_aurora.limitless_data_load_cancel

  • 对于 CDC:

    • 源数据库和目标数据库分片组必须使用相同的数据库子网组、VPC 安全组和数据库端口。这些设置用于与源数据库和数据库分片组中路由器的网络连接。

    • 您必须在源数据库上启用逻辑复制。源数据库用户必须具有读取逻辑复制的权限。

准备源数据库

要访问源数据库进行数据加载,您必须允许传入的网络流量进入该数据库。执行以下步骤。

允许网络流量进入源数据库
  1. 登录到 AWS Management Console 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/)。

  2. 导航到安全组页面。

  3. 为源数据库集群或实例使用的安全组选择安全组 ID

    例如,其安全组 ID 为 sg-056a84f1712b77926

  4. 入站规则选项卡:

    1. 选择编辑入站规则

    2. 为源数据库集群或实例添加新的入站规则:

      • 端口范围 – 源数据库的数据库端口,通常是 5432

      • 安全组 ID – 本例中为 sg-056a84f1712b77926

      为源数据库添加入站规则。
  5. 出站规则选项卡:

    1. 选择编辑出站规则

    2. 为源数据库集群或实例添加新的出站规则:

      • 数据库端口 – All traffic(包括端口 0-65535

      • 安全组 ID – 本例中为 sg-056a84f1712b77926

      为源数据库添加出站规则。
  6. 登录到 AWS Management Console并打开 Amazon VPC 控制台,网址:https://console.aws.amazon.com/vpc/

  7. 导航到网络 ACL 页面。

  8. 添加默认网络 ACL 中概述的默认网络 ACL 配置。

准备目标数据库

按照 创建 Aurora PostgreSQL Limitless Database 表 中的过程在数据库分片组中创建目标表。

目标表的架构、表名称和主键必须与源表相同。

创建数据库凭证

您必须在源数据库和目标数据库中创建数据库用户,然后向这些用户授予必要的权限。有关更多信息,请参阅 PostgreSQL 文档中的 CREATE USERGRANT

创建源数据库凭证

在命令中传递源数据库用户以开始加载。该用户必须拥有从源数据库执行复制的权限。

  1. 使用数据库主用户(或具有 rds_superuser 角色的其他用户)创建具有 LOGIN 权限的源数据库用户。

    CREATE USER source_db_username WITH PASSWORD 'source_db_user_password';
  2. rds_superuser 角色授予您的源数据库用户。

    GRANT rds_superuser to source_db_username;
  3. 如果您使用的是 full_load_and_cdc 模式,请将 rds_replication 角色授予您的源数据库用户。rds_replication 角色可授予管理逻辑时隙和使用逻辑时隙流式处理数据的权限。

    GRANT rds_replication to source_db_username;

创建目标数据库凭证

目标数据库用户必须拥有写入数据库分片组中目标表的权限。

  1. 使用数据库主用户(或具有 rds_superuser 角色的其他用户)创建具有 LOGIN 权限的目标数据库用户。

    CREATE USER destination_db_username WITH PASSWORD 'destination_db_user_password';
  2. rds_superuser 角色授予您的目标数据库用户。

    GRANT rds_superuser to destination_db_username;