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 - Amazon Aurora

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

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.