> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Configure o Amazon Aurora Postgres como fonte para o ClickPipes

# Guia de configuração da fonte do Aurora Postgres

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<div id="supported-postgres-versions">
  ## Versões compatíveis do Postgres
</div>

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

<div id="enable-logical-replication">
  ## Habilitar a replicação lógica
</div>

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.

```text theme={null}
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

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/parameter_group_in_blade.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=b2883dcb98dc63142ebc039c73266959" alt="Onde encontrar grupos de parâmetros no Aurora" size="lg" border width="1800" height="819" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/parameter_group_in_blade.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/change_rds_logical_replication.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=49d72c6fa5e62fa564f49649bec6d164" alt="Alterando rds.logical_replication" size="lg" border width="1800" height="795" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/change_rds_logical_replication.webp" />

2. Aplique o novo grupo de parâmetros ao cluster do Aurora PostgreSQL

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/modify_parameter_group.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=35e6dcc962ef6ccc9cf2d60346ea1f1b" alt="Modificando o Aurora PostgreSQL com o novo grupo de parâmetros" size="lg" border width="1800" height="1352" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/modify_parameter_group.webp" />

3. Reinicie o cluster do Aurora para aplicar as alterações

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/reboot_rds.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=c93af311ca2d75ba1a1955a79234eea2" alt="Reiniciando o Aurora PostgreSQL" size="lg" border width="1800" height="757" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/reboot_rds.webp" />

<div id="configure-database-user">
  ## Configurar usuário do banco de dados
</div>

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:

   ```sql theme={null}
   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:

   ```sql theme={null}
   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:

   ```sql theme={null}
   GRANT rds_replication TO clickpipes_user;
   ```

4. Crie uma [publication](https://www.postgresql.org/docs/current/logical-replication-publication.html) com as tabelas que você deseja replicar. Recomendamos fortemente incluir na publication apenas as tabelas necessárias para evitar sobrecarga de desempenho.

<Warning>
  Qualquer tabela incluída na publication deve ter uma **chave primária** definida *ou* sua **replica identity** configurada como `FULL`. Consulte as [FAQs do Postgres](/docs/pt-BR/integrations/clickpipes/postgres/faq#how-should-i-scope-my-publications-when-setting-up-replication) para orientações sobre como definir esse escopo.
</Warning>

* Para criar uma publication para tabelas específicas:

  ```sql theme={null}
  CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
  ```

  * Para criar uma publication para todas as tabelas de um schema específico:

    ```sql theme={null}
    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.

<div id="iam-authentication">
  ### Usando autenticação IAM (opcional)
</div>

Em vez de uma senha, você pode autenticar o usuário do ClickPipes usando controle de acesso baseado em função do AWS IAM. Isso exige que o parâmetro `rds.iam_auth_for_replication` esteja definido como `1`. Crie o usuário da seguinte forma e, em seguida, conceda a ele os mesmos privilégios de schema e de replicação mostrados acima:

```sql theme={null}
CREATE USER clickpipes_iam_user;
GRANT rds_iam TO clickpipes_iam_user;
```

Consulte [AWS IAM DB authentication (RDS/Aurora)](/docs/pt-BR/integrations/clickpipes/postgres/auth) para conferir o passo a passo completo de configuração da função e da política do IAM necessárias para que o ClickPipes se autentique dessa forma.

<div id="configure-network-access">
  ## Configurar acesso à rede
</div>

<div id="ip-based-access-control">
  ### Controle de acesso baseado em IP
</div>

Se você quiser restringir o tráfego para o cluster Aurora, adicione os [IPs NAT estáticos documentados](/docs/pt-BR/integrations/clickpipes/home#list-of-static-ips) às `Inbound rules` do Security Group do Aurora.

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/security_group_in_rds_postgres.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=32f6f69694b2f735d86cee4813efde34" alt="Onde encontrar o Security Group no Aurora PostgreSQL?" size="lg" border width="1800" height="707" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/security_group_in_rds_postgres.webp" />

<Image img="https://mintcdn.com/private-7c7dfe99/dZZG_-B0EzCG8L4V/images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.webp?fit=max&auto=format&n=dZZG_-B0EzCG8L4V&q=85&s=1176aa14815b965b841d70d28b5f0d7c" alt="Editar as regras de entrada do Security Group acima" size="lg" border width="1800" height="935" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/rds/edit_inbound_rules.webp" />

<div id="private-access-via-aws-privatelink">
  ### Acesso privado via AWS PrivateLink
</div>

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](/docs/pt-BR/resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-clickpipes) para estabelecer a conexão.

<div id="aurora-specific-considerations">
  ### Considerações específicas do Aurora
</div>

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.

<div id="dealing-with-dynamic-cluster-endpoints">
  ### Como lidar com endpoints dinâmicos do cluster
</div>

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.

<div id="whats-next">
  ## O que vem a seguir?
</div>

Agora você pode [criar seu ClickPipe](/docs/pt-BR/integrations/clickpipes/postgres/index) 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.
