使用 Aurora PostgreSQL Limitless Database 数据加载实用程序
Aurora 提供了一种实用程序,用于从 Aurora PostgreSQL 数据库集群或 RDS for PostgreSQL 数据库实例将数据直接加载到 Limitless Database 中。
您可以执行以下步骤来使用数据加载实用程序:
限制
数据加载实用程序具有以下限制:
-
不支持以下数据类型:
enum
、ARRAY
、BOX
、CIRCLE
、LINE
、LSEG
、PATH
、PG_LSN
、PG_SNAPSHOT
、POLYGON
、TSQUERY
、TSVECTOR
和TXID_SNAPSHOT
。 -
加载期间,
VARBIT
数据类型的前导零 (0
) 将被去除。 -
当源表上有复合主键时,数据迁移失败。
-
当目标表上有外键时,数据迁移失败。
-
不支持从 RDS for PostgreSQL 多可用区数据库集群加载数据。
先决条件
数据加载实用程序具有以下先决条件:
-
源数据库使用 Aurora PostgreSQL 或 RDS for PostgreSQL 版本 11.x 及更高版本。
-
源数据库与目标数据库分片组位于相同的 Amazon Web Services 账户和 Amazon Web Services 区域中。
-
源数据库集群或数据库实例处于
available
状态。 -
源数据库和 Limitless Database 上的表具有相同的表名称、列名称和列数据类型。
-
源表和目标表的主键使用相同的列和列顺序。
-
要运行数据加载命令,您必须有一个可以连接到无限数据库的环境。可用命令如下:
-
rds_aurora.limitless_data_load_start
-
rds_aurora.limitless_data_load_cancel
-
-
对于 CDC:
-
源数据库和目标数据库分片组必须使用相同的数据库子网组、VPC 安全组和数据库端口。这些设置用于与源数据库和数据库分片组中路由器的网络连接。
-
您必须在源数据库上启用逻辑复制。源数据库用户必须具有读取逻辑复制的权限。
-
使用 Limitless Compatibility Assessment Tool
您可以使用 Limitless Compatibility Assessment Toolpg_dump
文件,然后对该工具运行该文件,以评估哪些 SQL 语句受支持,哪些不受支持。
有关更多信息,请参阅 Limitless Compatibility Assessment Tool 的相关文档
准备源数据库
要访问源数据库进行数据加载,您必须允许传入的网络流量进入该数据库。执行以下步骤。
允许网络流量进入源数据库
登录到 Amazon Web Services Management Console 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/
)。 -
导航到安全组页面。
-
为源数据库集群或实例使用的安全组选择安全组 ID。
例如,其安全组 ID 为
sg-056a84f1712b77926
。 -
在入站规则选项卡:
-
选择编辑入站规则。
-
为源数据库集群或实例添加新的入站规则:
-
端口范围 – 源数据库的数据库端口,通常是
5432
-
安全组 ID – 本例中为
sg-056a84f1712b77926
-
-
-
在出站规则选项卡:
-
选择编辑出站规则。
-
为源数据库集群或实例添加新的出站规则:
-
数据库端口 –
All traffic
(包括端口0-65535
) -
安全组 ID – 本例中为
sg-056a84f1712b77926
-
-
登录到 Amazon Web Services Management Console并打开 Amazon VPC 控制台,网址:https://console.aws.amazon.com/vpc/
。 -
导航到网络 ACL 页面。
-
添加默认网络 ACL 中概述的默认网络 ACL 配置。
准备目标数据库
按照 创建 Aurora PostgreSQL Limitless Database 表 中的过程在数据库分片组中创建目标表。
目标表的架构、表名称和主键必须与源表相同。
创建数据库凭证
您必须在源数据库和目标数据库中创建数据库用户,然后向这些用户授予必要的权限。有关更多信息,请参阅 PostgreSQL 文档中的 CREATE USER
创建源数据库凭证
在命令中传递源数据库用户以开始加载。该用户必须拥有从源数据库执行复制的权限。
-
使用数据库主用户(或具有
rds_superuser
角色的其他用户)创建具有LOGIN
权限的源数据库用户。CREATE USER
source_db_username
WITH PASSWORD 'source_db_user_password
'; -
将
rds_superuser
角色授予您的源数据库用户。GRANT rds_superuser to
source_db_username
; -
如果您使用的是
full_load_and_cdc
模式,请将rds_replication
角色授予您的源数据库用户。rds_replication
角色可授予管理逻辑时隙和使用逻辑时隙流式处理数据的权限。GRANT rds_replication to
source_db_username
;
创建目标数据库凭证
目标数据库用户必须拥有写入数据库分片组中目标表的权限。
-
使用数据库主用户(或具有
rds_superuser
角色的其他用户)创建具有LOGIN
权限的目标数据库用户。CREATE USER
destination_db_username
WITH PASSWORD 'destination_db_user_password
'; -
将
rds_superuser
角色授予您的目标数据库用户。GRANT rds_superuser to
destination_db_username
;