从 Aurora PostgreSQL 数据库集群或 RDS for PostgreSQL 数据库实例加载数据。 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

  • source_DB_cluster_or_instance_ID – 源 Aurora PostgreSQL 数据库集群标识符或 RDS for PostgreSQL 数据库实例标识符

  • source_database_name – 源数据库名称,例如 postgres

  • streaming_mode – 是否包括更改数据捕获(CDC):full_loadfull_load_and_cdc

  • data_loading_IAM_role_arnaurora-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,则在加载数据的情况下测试连接

  • (可选)schemastables – 要加载的架构或表的数组。您可以指定以下任一值:

    • 格式为 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.