Versões compatíveis do Postgres
O ClickPipes oferece suporte ao Postgres versão 12 e posteriores.
Habilite a replicação lógica
Você pode pular esta seção se a sua instância do RDS já tiver a seguinte configuração definida:
rds.logical_replication = 1
Essa configuração geralmente já vem pré-configurada se você já usou outra ferramenta de replicação de dados.
postgres=> SHOW rds.logical_replication ;
rds.logical_replication
-------------------------
on
(1 row)Caso ainda não esteja configurado, siga estas etapas:
- Crie um novo grupo de parâmetros para a sua versão do Postgres com as configurações necessárias:
- Defina
rds.logical_replicationcomo 1
- Defina


- Aplique o novo grupo de parâmetros ao seu banco de dados RDS Postgres

- Reinicie a sua instância do RDS para aplicar as alterações

Configurar o usuário do banco de dados
Conecte-se à sua instância do RDS Postgres como usuário administrador e execute os seguintes comandos:
-
Crie um usuário dedicado para o ClickPipes:
CREATE USER clickpipes_user PASSWORD 'some-password'; -
Conceda acesso somente leitura no nível do schema ao usuário criado na etapa anterior. O exemplo abaixo mostra as permissões para o schema
public. Repita esses comandos para cada schema que contenha tabelas que você deseja 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; -
Conceda privilégios de replicação ao usuário:
GRANT rds_replication TO clickpipes_user; -
Crie uma publicação com as tabelas que você deseja replicar. Recomendamos fortemente incluir na publicação apenas as tabelas necessárias para evitar sobrecarga de desempenho.
-
Para criar uma publicação para tabelas específicas:
CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;-
Para criar uma publicação para todas as tabelas em um schema específico:
CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
-
A publicação 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 RDS instance without storing database credentials.
Enable IAM authentication
- Log in to your AWS account and go to the RDS instance you want to configure.
- Click Modify.
- Scroll to the Database authentication section.
- Select Password and IAM database authentication.
- Click Continue.
- 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
- Log in to your ClickHouse Cloud account.
- Select the ClickHouse service you want to connect.
- Select the Settings tab.
- Scroll to the Network security information section at the bottom of the page.
- Copy the service's Service role ID (IAM) value, shown below.

This value is your {ClickHouse_IAM_ARN} — the role ClickPipes uses to access your RDS instance.
Obtain the resource ID
- Log in to your AWS account and go to the RDS instance you want to configure.
- Select the Configuration tab.
- Note the Resource ID value — it looks like
db-xxxxxxxxxxxxxx. This is your{RDS_RESOURCE_ID}, which you reference in the permissions policy.
Create the IAM role
- Log in to your AWS account with an IAM user that has permission to create and manage IAM roles.
- Open the IAM console.
- 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 RDS instance,{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" ] } ] } - 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 RDS instance from ClickPipes.
Configurar o acesso à rede
Controle de acesso por IP
Se você quiser restringir o tráfego para sua instância do RDS, adicione os IPs NAT estáticos documentados às Inbound rules do grupo de segurança do RDS.


Acesso privado via AWS PrivateLink
Para se conectar à sua instância do RDS por uma rede privada, você pode usar o AWS PrivateLink. Siga nosso guia de configuração do AWS PrivateLink para ClickPipes para configurar a conexão.
Soluções alternativas para o RDS Proxy
O RDS Proxy não oferece suporte a conexões de replicação lógica. Se você tiver endereços IP dinâmicos no RDS e não puder usar um nome DNS ou uma função Lambda, aqui estão algumas alternativas:
- Usando um cron job, resolva periodicamente o IP do endpoint do RDS e atualize o NLB se ele tiver mudado.
- Usando notificações de eventos do RDS com EventBridge/SNS: acione atualizações automaticamente com notificações de eventos do AWS RDS.
- EC2 estável: implante uma instância do EC2 para atuar como um serviço de polling ou proxy baseado em IP.
- Automatize o gerenciamento de endereços IP usando ferramentas como Terraform ou CloudFormation.
Próximos passos
Agora você pode criar seu ClickPipe e começar a fazer a ingestão de dados da sua instância do Postgres para o ClickHouse Cloud. Anote os detalhes da conexão que você usou ao configurar sua instância do Postgres, pois precisará deles durante o processo de criação do ClickPipe.