从 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.