从 Aurora PostgreSQL 数据库集群或 RDS for PostgreSQL 数据库实例加载数据。
完成资源和身份验证设置后,连接到集群端点,然后从 Limitless Database(如 postgres_limitless
)调用 rds_aurora.limitless_data_load_start
存储过程。Limitless Database 是您要将数据迁移到其中的数据库分片组上的数据库。
此函数在后台异步连接到命令中指定的源数据库,从源数据库读取数据,然后将数据加载到分片上。为了提高性能,将使用并行线程加载数据。该函数通过运行 SELECT
命令读取命令中提供的表的数据来检索时间点表快照。
您可以将数据加载到分片表、引用表和标准表中。
您可以在 rds_aurora.limitless_data_load_start
调用中加载数据库、架构或表级别的数据。
-
数据库 – 您可以在每次调用中一次加载一个数据库,对数据库中的架构或表数没有限制。
-
架构 – 每次调用最多可以加载 15 个架构,每个架构中的表数没有限制。
-
表 – 每次调用最多可以加载 15 个表。
注意
此功能不使用 Amazon RDS 快照或数据库的时间点隔离。为了保持各表之间的一致性,建议克隆源数据库并指向该克隆的数据库作为源。
存储过程使用以下语法:
CALL rds_aurora.limitless_data_load_start('
source_type
', 'source_DB_cluster_or_instance_ID
', 'source_database_name
', 'streaming_mode'
, 'data_loading_IAM_role_arn
', 'source_DB_secret_arn
', 'destination_DB_secret_arn
', 'ignore_primary_key_conflict_boolean_flag
', 'is_dry_run
', (optional parameter) schemas/tables => ARRAY['name1
', 'name2
', ...]);
以下是输入参数:
-
source_type
– 源类型:aurora_postgresql
或rds_postgresql
-
source_DB_cluster_or_instance_ID
– 源 Aurora PostgreSQL 数据库集群标识符或 RDS for PostgreSQL 数据库实例标识符 -
source_database_name
– 源数据库名称,例如postgres
-
streaming_mode
– 是否包括更改数据捕获(CDC):full_load
或full_load_and_cdc
-
data_loading_IAM_role_arn
–aurora-data-loader
的 IAM 角色 Amazon 资源名称(ARN) -
source_DB_secret_arn
– 源数据库密钥 ARN -
destination_DB_secret_arn
– 目标数据库密钥 ARN -
ignore_primary_key_conflict_boolean_flag
– 如果发生主键冲突,是否继续:-
如果设置为
true
,数据加载将忽略存在主键冲突的行的新更改。 -
如果设置为
false
,数据加载在遇到主键冲突时会覆盖目标表上的现有行。
-
-
is_dry_run
– 是否测试数据加载任务是否可以连接到源数据库和目标数据库:-
如果设置为
true
,则在不加载数据的情况下测试连接 -
如果设置为
false
,则在加载数据的情况下测试连接
-
-
(可选)
schemas
或tables
– 要加载的架构或表的数组。您可以指定以下任一值:-
格式为
tables => ARRAY['
的表列表schema1
.table1
', 'schema1
.table2
', 'schema2
.table1
', ...] -
格式为
schemas => ARRAY[
的架构列表'schema1
', 'schema2
', ...]
如果未包含该参数,则迁移整个指定的源数据库。
-
输出参数是带有消息的任务 ID。
以下示例说明如何使用 rds_aurora.limitless_data_load_start
存储过程从 Aurora PostgreSQL 数据库集群加载数据。
CALL rds_aurora.limitless_data_load_start('aurora_postgresql', 'my-db-cluster', 'postgres', 'full_load_and_cdc', 'arn:aws:iam::123456789012:role/aurora-data-loader-8f2c66', 'arn:aws:secretsmanager:us-east-1:123456789012:secret:secret-source-8f2c66-EWrr0V', 'arn:aws:secretsmanager:us-east-1:123456789012:secret:secret-destination-8f2c66-d04fbD', 'true', 'false', tables => ARRAY['public.customer', 'public.order', 'public.orderdetails']); INFO: limitless data load job id 1688761223647 is starting.