

# 从 Aurora PostgreSQL 数据库集群或 RDS for PostgreSQL 数据库实例加载数据。
<a name="limitless-load.data"></a>

完成资源和身份验证设置后，连接到集群端点，然后从 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.
```