Pular para o conteúdo principal
Um guia completo de migração do PostgreSQL para o ClickHouse, incluindo orientações sobre modelagem de dados e conceitos equivalentes, pode ser encontrado aqui. A seguir, descrevemos como conectar o ClickHouse ao PostgreSQL.
Esta página aborda as seguintes opções para integrar o PostgreSQL ao ClickHouse:
  • usar o mecanismo de tabela PostgreSQL para ler dados de uma tabela do PostgreSQL
  • usar o mecanismo de banco de dados experimental MaterializedPostgreSQL para sincronizar um banco de dados do PostgreSQL com um banco de dados no ClickHouse
Confira nosso serviço Managed Postgres. Com armazenamento NVMe fisicamente co-localizado com o compute, ele oferece desempenho até 10x superior para workloads limitadas por disco em comparação com alternativas que usam armazenamento conectado à rede, como EBS, e permite replicar seus dados do Postgres para o ClickHouse usando o conector Postgres CDC no ClickPipes.

Usando o mecanismo de tabela PostgreSQL

O mecanismo de tabela PostgreSQL permite realizar operações SELECT e INSERT em dados armazenados no servidor PostgreSQL remoto a partir do ClickHouse. Este artigo ilustra métodos básicos de integração usando uma única tabela.

1. Configurando o PostgreSQL

  1. Em postgresql.conf, adicione a seguinte entrada para permitir que o PostgreSQL aceite conexões nas interfaces de rede:
  1. Crie um usuário para se conectar no ClickHouse. Para fins de demonstração, este exemplo concede privilégios totais de superusuário.
  1. Crie um novo banco de dados no PostgreSQL:
  1. Crie uma nova tabela:
  1. Vamos adicionar algumas linhas para teste:
  1. Para configurar o PostgreSQL para permitir conexões com o novo banco de dados usando o novo usuário de replicação, adicione a seguinte entrada ao arquivo pg_hba.conf. Atualize a linha de endereço com a sub-rede ou o endereço IP do seu servidor PostgreSQL:
  1. Recarregue o arquivo de configuração pg_hba.conf (ajuste este comando de acordo com a sua versão):
  1. Verifique se o novo clickhouse_user consegue se conectar:
Se você estiver usando este recurso no ClickHouse Cloud, talvez seja necessário permitir que os endereços IP do ClickHouse Cloud acessem sua instância do PostgreSQL. Consulte a API de Endpoints do ClickHouse Cloud para ver os detalhes do tráfego de saída.

2. Defina uma tabela no ClickHouse

  1. Acesse o clickhouse-client:
  1. Vamos criar um novo banco de dados:
  1. Crie uma tabela que utilize o PostgreSQL:
Os parâmetros mínimos necessários são:
Consulte a página de documentação do mecanismo de tabela PostgreSQL para ver a lista completa de parâmetros.

3 Teste a integração

  1. No ClickHouse, veja as linhas iniciais:
A tabela do ClickHouse deve ser preenchida automaticamente com as duas linhas que já existiam na tabela do PostgreSQL:
  1. De volta ao PostgreSQL, adicione algumas linhas à tabela:
  1. Essas duas novas linhas devem aparecer na sua tabela no ClickHouse:
A resposta deve ser:
  1. Vamos ver o que acontece quando você adiciona linhas à tabela do ClickHouse:
  1. As linhas adicionadas no ClickHouse devem aparecer na tabela do PostgreSQL:
Este exemplo demonstrou a integração básica entre PostgreSQL e ClickHouse usando o mecanismo de tabela PostrgeSQL. Consulte a página de documentação do mecanismo de tabela PostgreSQL para conhecer mais recursos, como especificar esquemas, retornar apenas um subconjunto de colunas e conectar-se a várias réplicas. Consulte também o blog ClickHouse and PostgreSQL - a match made in data heaven - part 1.

Usando a mecanismo de banco de dados MaterializedPostgreSQL

A mecanismo de banco de dados PostgreSQL usa os recursos de replicação do PostgreSQL para criar uma réplica do banco de dados com todos os schemas e tabelas, ou com apenas um subconjunto deles. Este artigo ilustra métodos básicos de integração usando um banco de dados, um schema e uma tabela. Nos procedimentos a seguir, são usados o PostgreSQL CLI (psql) e o ClickHouse CLI (clickhouse-client). O servidor PostgreSQL está instalado em Linux. A seguir estão as configurações mínimas caso o banco de dados PostgreSQL seja uma nova instalação de teste.

1. No PostgreSQL

  1. Em postgresql.conf, defina os níveis mínimos de escuta, o nível de WAL para replicação e os slots de replicação:
adicione as seguintes entradas:
*O ClickHouse precisa, no mínimo, do wal level logical e de 2 slots de replicação
  1. Usando uma conta de administrador, crie um usuário para conexão a partir do ClickHouse:
*para fins de demonstração, foram concedidas permissões completas de superusuário.
  1. crie um novo banco de dados:
  1. conecte-se ao novo banco de dados no psql:
  1. crie uma nova tabela:
  1. insira as linhas iniciais:
  1. Configure o PostgreSQL para permitir conexões com o novo banco de dados usando o novo usuário para replicação. Abaixo está a entrada mínima a ser adicionada ao arquivo pg_hba.conf:
*para fins de demonstração, isto usa o método de authentication por senha em texto simples. atualize a linha de endereço com a sub-rede ou o endereço do servidor, conforme a documentação do PostgreSQL
  1. recarregue a configuração do pg_hba.conf com algo como isto (ajuste conforme a sua versão):
  1. Teste o acesso com o novo clickhouse_user:

2. No ClickHouse

  1. faça login na ClickHouse CLI
  1. Ative o recurso experimental do PostgreSQL para o mecanismo de banco de dados:
  1. Crie o novo banco de dados a ser replicado e defina a tabela inicial:
opções mínimas:
Para ver o guia completo do mecanismo de banco de dados PostgreSQL, consulte https://clickhouse.com/docs/engines/database-engines/materialized-postgresql/#settings
  1. Verifique se a tabela inicial tem dados:

3. Teste a replicação básica

  1. No PostgreSQL, adicione novas linhas:
  1. No ClickHouse, verifique se as novas linhas estão visíveis:

4. Resumo

Este guia de integração se concentrou em um exemplo simples de como replicar um banco de dados com uma tabela. No entanto, há opções mais avançadas, que incluem replicar o banco de dados inteiro ou adicionar novas tabelas e esquemas às replicações existentes. Embora os comandos DDL não sejam compatíveis com essa replicação, o motor pode ser configurado para detectar alterações e recarregar as tabelas quando houver mudanças estruturais.
Para conhecer mais recursos disponíveis nas opções avançadas, consulte a documentação de referência.
Última modificação em 2 de julho de 2026