

# Carregar dados de um cluster de banco de dados do Aurora PostgreSQL ou de uma instância de banco de dados do RDS para PostgreSQL
<a name="limitless-load.data"></a>

Depois de concluir a configuração do recurso e da autenticação, conecte-se ao endpoint do cluster e chame o procedimento armazenado `rds_aurora.limitless_data_load_start` de um banco de dados ilimitado, como `postgres_limitless`. O banco de dados ilimitado é um banco de dados no grupo de fragmentos de banco de dados para o qual você deseja migrar dados.

Essa função se conecta de forma assíncrona em segundo plano ao banco de dados de origem especificado no comando, lê os dados da fonte e carrega os dados nos fragmentos. Para um melhor desempenho, os dados são carregados usando threads paralelas. A função recupera um snapshot da tabela em um ponto no tempo executando um comando `SELECT` para ler os dados das tabelas fornecidas no comando.

É possível carregar dados em tabelas fragmentadas, de referência e padrão.

É possível carregar dados no nível do banco de dados, esquema ou tabela nas chamadas `rds_aurora.limitless_data_load_start`.
+ Banco de dados: é possível carregar um banco de dados por vez em cada chamada, sem limite no número de esquemas ou tabelas dentro do banco de dados.
+ Esquema: é possível carregar no máximo 15 esquemas em cada chamada, sem limite no número de tabelas em cada esquema.
+ Tabela: você pode carregar no máximo 15 tabelas em cada chamada.

**nota**  
Este recurso não usa snapshots do Amazon RDS ou isolamento em um ponto no tempo do banco de dados. Para manter a consistência entre as tabelas, recomendamos clonar o banco de dados de origem e apontar para esse banco de dados clonado como a fonte.

O procedimento armazenado usa a seguinte sintaxe:

```
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', ...]);
```

Os parâmetros de entrada são os seguintes:
+ `source_type`: o tipo de fonte: `aurora_postgresql` ou `rds_postgresql`
+ `source_DB_cluster_or_instance_ID`: o identificador do cluster de banco de dados do Aurora PostgreSQL de origem ou o identificador da instância de banco de dados do RDS para PostgreSQL
+ `source_database_name`: o nome do banco de dados de origem, como *postgres*
+ `streaming_mode`: se deve incluir a captura de dados de alteração (CDC): `full_load` ou `full_load_and_cdc`
+ `data_loading_IAM_role_arn`: o nome do recurso da Amazon (ARN) do perfil do IAM para `aurora-data-loader`
+ `source_DB_secret_arn`: o ARN do segredo do banco de dados de origem
+ `destination_DB_secret_arn`: o ARN do segredo do banco de dados de destino
+ `ignore_primary_key_conflict_boolean_flag`: se deve continuar se ocorrer um conflito de chave primária:
  + Se definido como `true`, o carregamento de dados ignora novas alterações nas linhas com um conflito de chave primária.
  + Se definido como `false`, o carregamento de dados substitui as linhas existentes nas tabelas de destino quando encontra um conflito de chave primária.
+ `is_dry_run`: se deve testar se o trabalho de carregamento de dados pode se conectar aos bancos de dados de origem e destino:
  + Se definido como `true`, testa as conexões sem carregar dados
  + Se definido como `false`, carrega os dados
+ (opcional) `schemas` ou `tables`: uma matriz de esquemas ou tabelas para carregar. Você pode especificar qualquer um destes valores:
  + Uma lista de tabelas no formato `tables => ARRAY['schema1.table1', 'schema1.table2', 'schema2.table1', ...]`
  + Uma lista de esquemas no formato `schemas => ARRAY['schema1', 'schema2', ...]`

  Se você não incluir esse parâmetro, todo o banco de dados de origem especificado será migrado.

O parâmetro de saída é o ID do trabalho com uma mensagem.

O exemplo a seguir mostra como usar o procedimento armazenado `rds_aurora.limitless_data_load_start` para carregar dados de um cluster de banco de dados do 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.
```