Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Guia de configuração da fonte do Aurora Postgres

Versões compatíveis do Postgres

O ClickPipes oferece suporte ao Aurora PostgreSQL-Compatible Edition versão 12 e posteriores.

Habilitar a replicação lógica

Você pode pular esta seção se a sua instância do Aurora já estiver com a seguinte configuração definida:

  • rds.logical_replication = 1

Essa configuração normalmente já vem habilitada se você já usou outra ferramenta de replicação de dados.

postgres=> SHOW rds.logical_replication ;
 rds.logical_replication
-------------------------
 on
(1 row)

Se isso ainda não estiver configurado, siga estas etapas:

  1. Crie um novo grupo de parâmetros para a sua versão do Aurora PostgreSQL com a configuração necessária:
    • Defina rds.logical_replication como 1
Onde encontrar grupos de parâmetros no Aurora
Alterando rds.logical_replication
  1. Aplique o novo grupo de parâmetros ao cluster do Aurora PostgreSQL
Modificando o Aurora PostgreSQL com o novo grupo de parâmetros
  1. Reinicie o cluster do Aurora para aplicar as alterações
Reiniciando o Aurora PostgreSQL

Configurar usuário do banco de dados

Conecte-se à instância de gravação do Aurora PostgreSQL como usuário administrador e execute os seguintes comandos:

  1. Crie um usuário dedicado para o ClickPipes:

    CREATE USER clickpipes_user PASSWORD 'some-password';
  2. Conceda acesso somente leitura no nível do schema ao usuário criado na etapa anterior. O exemplo a seguir mostra as permissões para o schema public. Repita esses comandos para cada schema que contenha tabelas que você queira replicar:

    GRANT USAGE ON SCHEMA "public" TO clickpipes_user;
    GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user;
    ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user;
  3. Conceda privilégios de replicação ao usuário:

    GRANT rds_replication TO clickpipes_user;
  4. Crie uma publication com as tabelas que você deseja replicar. Recomendamos fortemente incluir na publication apenas as tabelas necessárias para evitar sobrecarga de desempenho.

  • Para criar uma publication para tabelas específicas:

    CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
    • Para criar uma publication para todas as tabelas de um schema específico:

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";

A publication clickpipes define o conjunto de tabelas cujos eventos de alteração serão transmitidos ao ClickPipes. Recomendamos não usar FOR ALL TABLES, a menos que você pretenda replicar todas as tabelas, pois incluir tabelas desnecessárias aumenta o tráfego de WAL do Postgres para o ClickPipes e reduz a eficiência geral da replicação.

Usando autenticação IAM (opcional)

Instead of a password, you can authenticate the ClickPipes user with an AWS IAM role. This lets ClickPipes connect to your Amazon Aurora cluster without storing database credentials.

Enable IAM authentication

  1. Log in to your AWS account and go to the Aurora cluster you want to configure.
  2. Click Modify.
  3. Scroll to the Database authentication section.
  4. Select Password and IAM database authentication.
  5. Click Continue.
  6. Review the changes and select Apply immediately.

Create the ClickPipes user

Create the ClickPipes user with IAM authentication enabled, then grant it the same schema and replication privileges shown above:

CREATE USER clickpipes_iam_user;
GRANT rds_iam TO clickpipes_iam_user;

Obtain the ClickHouse service IAM role ARN

  1. Log in to your ClickHouse Cloud account.
  2. Select the ClickHouse service you want to connect.
  3. Select the Settings tab.
  4. Scroll to the Network security information section at the bottom of the page.
  5. Copy the service's Service role ID (IAM) value, shown below.
Service role ID (IAM) value in the Network security information section

This value is your {ClickHouse_IAM_ARN} — the role ClickPipes uses to access your Aurora cluster.

Obtain the resource ID

  1. Log in to your AWS account and go to the Aurora cluster you want to configure.
  2. Select the Configuration tab.
  3. Note the Resource ID value — it looks like cluster-xxxxxxxxxxxxxx. This is your {RDS_RESOURCE_ID}, which you reference in the permissions policy.

Create the IAM role

  1. Log in to your AWS account with an IAM user that has permission to create and manage IAM roles.
  2. Open the IAM console.
  3. Create a new IAM role with the following trust and permissions policies.

    Trust policy (replace {ClickHouse_IAM_ARN} with the IAM role ARN of your ClickHouse instance):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "{ClickHouse_IAM_ARN}"
          },
          "Action": [
            "sts:AssumeRole",
            "sts:TagSession"
          ]
        }
      ]
    }

    Permissions policy (replace {RDS_RESOURCE_ID} with the resource ID of your Aurora cluster, {RDS_REGION} with its region, and {AWS_ACCOUNT} with your AWS account ID):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "rds-db:connect"
          ],
          "Resource": [
            "arn:aws:rds-db:{RDS_REGION}:{AWS_ACCOUNT}:dbuser:{RDS_RESOURCE_ID}/clickpipes_iam_user"
          ]
        }
      ]
    }
  4. Once the role is created, copy its ARN. This is your {RDS_ACCESS_IAM_ROLE_ARN}.

You can now use this IAM role to authenticate with your Aurora cluster from ClickPipes.

Configurar acesso à rede

Controle de acesso baseado em IP

Se você quiser restringir o tráfego para o cluster Aurora, adicione os IPs NAT estáticos documentados às Inbound rules do Security Group do Aurora.

Onde encontrar o Security Group no Aurora PostgreSQL?
Editar as regras de entrada do Security Group acima

Para se conectar ao cluster Aurora por uma rede privada, você pode usar o AWS PrivateLink. Siga nosso guia de configuração do AWS PrivateLink para ClickPipes para estabelecer a conexão.

Considerações específicas do Aurora

Ao configurar o ClickPipes com Aurora PostgreSQL, tenha em mente as seguintes considerações:

  1. Endpoint de conexão: Sempre se conecte ao endpoint de gravação do seu cluster Aurora, pois a replicação lógica requer acesso de escrita para criar replication slots e precisa se conectar à instância primária.

  2. Tratamento de failover: Em caso de failover, o Aurora promoverá automaticamente uma instância de leitura para ser o novo writer. O ClickPipes detectará a desconexão e tentará se reconectar ao endpoint de gravação, que então passará a apontar para a nova instância primária.

  3. Global Database: Se você estiver usando Aurora Global Database, deverá se conectar ao endpoint de gravação da região primária, pois a replicação entre regiões já faz a movimentação dos dados entre elas.

  4. Considerações de armazenamento: A camada de armazenamento do Aurora é compartilhada por todas as instâncias de um cluster, o que pode oferecer melhor desempenho para a replicação lógica em comparação com o RDS padrão.

Como lidar com endpoints dinâmicos do cluster

Embora o Aurora forneça endpoints estáveis que direcionam automaticamente para a instância apropriada, aqui estão algumas abordagens adicionais para garantir conectividade consistente:

  1. Para configurações de alta disponibilidade, configure sua aplicação para usar o endpoint de gravação do Aurora, que aponta automaticamente para a instância primária atual.

  2. Se estiver usando replicação entre regiões, considere configurar ClickPipes separados para cada região para reduzir a latência e melhorar a tolerância a falhas.

O que vem a seguir?

Agora você pode criar seu ClickPipe e começar a fazer a ingestão de dados do seu cluster Aurora PostgreSQL para o ClickHouse Cloud. Anote os detalhes da conexão que você usou ao configurar seu cluster Aurora PostgreSQL, pois você precisará deles durante o processo de criação do ClickPipe.

Navigation