Configure uma base de dados Amazon Aurora PostgreSQL

Esta página descreve como configurar a captura de dados de alterações (CDC) para transmitir dados de uma base de dados Amazon Aurora PostgreSQL para um destino suportado, como o BigQuery ou o Cloud Storage.

Crie um grupo de parâmetros

  1. Inicie o painel de controlo do Amazon RDS.
  2. No painel de navegação, clique em Grupos de parâmetros e, de seguida, em Criar grupo de parâmetros. É apresentada a página Criar grupo de parâmetros.
  3. Use a tabela seguinte para preencher os campos desta página e, de seguida, clique em Criar:
    CampoDescrição
    Família de grupos de parâmetrosSelecione a família que corresponde à sua base de dados.
    TipoSelecione DB Cluster Parameter Group.
    Nome do grupoIndique um nome para o grupo de parâmetros.
    DescriçãoForneça uma descrição para o grupo de parâmetros.
  4. Selecione a caixa de verificação à esquerda do grupo de parâmetros recém-criado e, de seguida, em Ações do grupo de parâmetros, clique em Editar.
  5. Altere o valor do parâmetro rds.logical_replication para 1.
  6. Clique em Guardar alterações.

Atribua o grupo de parâmetros à instância da base de dados

  1. Inicie o painel de controlo do Amazon RDS.
  2. No menu de navegação, clique em Bases de dados e, de seguida, selecione a instância da base de dados.
  3. No menu Ações da instância, selecione Modificar. É apresentada a caixa de diálogo Modify DB Instance (Modificar instância da base de dados).
  4. Na secção Configuração adicional, selecione o grupo de parâmetros do cluster da base de dados que criou.
  5. Defina o período de retenção da cópia de segurança como 7 dias.
  6. Clique em Continuar.
  7. No painel Agendamento de modificações, selecione a opção Aplicar imediatamente.

Reiniciar a instância de base de dados

  1. Inicie o painel de controlo do Amazon RDS.
  2. No menu de navegação, clique em Bases de dados e, de seguida, selecione a instância da base de dados.
  3. No menu pendente Ações, selecione Reiniciar e, de seguida, Confirmar.

Crie uma publicação e um espaço de replicação

  1. Crie uma publicação para as alterações nas tabelas que quer replicar. Recomendamos que crie uma publicação apenas para as tabelas que quer replicar. Isto permite que o Datastream leia apenas os dados relevantes e reduz a carga na base de dados e no Datastream:

    CREATE PUBLICATION PUBLICATION_NAME
    FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2;

    Substitua o seguinte:

    • PUBLICATION_NAME: o nome da sua publicação. Tem de indicar este nome quando criar uma stream no assistente de criação de streams de streams de dados.
    • SCHEMA: o nome do esquema que contém a tabela.
    • TABLE: o nome da tabela que quer replicar.

    Também pode criar uma publicação para todas as tabelas na sua base de dados. Tenha em atenção que esta abordagem aumenta a carga na base de dados de origem e no Datastream:

    CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES;
    
  2. Crie um espaço de replicação introduzindo o seguinte comando do PostgreSQL:

    SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');

    Substitua o seguinte:

    • REPLICATION_SLOT_NAME: o nome da sua ranhura de replicação. Tem de indicar este nome quando criar uma stream no assistente de criação de streams de streams de dados.

Crie um utilizador da stream de dados

  1. Para criar um utilizador do Datastream, introduza o seguinte comando do PostgreSQL:

    CREATE USER USER_NAME WITH ENCRYPTED PASSWORD 'USER_PASSWORD';

    Substitua o seguinte:

    • USER_NAME: o nome do utilizador do fluxo de dados que quer criar.
    • USER_PASSWORD: a palavra-passe do utilizador do fluxo de dados que quer criar.
  2. Conceda os seguintes privilégios ao utilizador que criou:

    GRANT RDS_REPLICATION TO USER_NAME;
    GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME;
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER_NAME;
    ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME
      GRANT SELECT ON TABLES TO USER_NAME;
    

    Substitua o seguinte:

    • SCHEMA_NAME: o nome do esquema ao qual quer conceder os privilégios.
    • USER_NAME: o utilizador ao qual quer conceder os privilégios.

O que se segue?