Skip to main content
Você pode seguir este caminho por conta própria, automatizá-lo com um script ou entregá-lo a um agente de IA. Alterne para a visualização Cloud UI para ver a versão no console.Esta página aborda o provisionamento do ClickHouse Managed Postgres, o carregamento de dados, a replicação para o ClickHouse e a execução de consultas, tudo pela linha de comando com a ClickHouse CLI (clickhousectl) e psql. Os comandos são não interativos; o clickhousectl gera JSON com --json.

Pré-requisitos

Instale a ClickHouse CLI:
Você também precisa do psql (ferramentas do cliente PostgreSQL; no macOS, brew install libpq) e do jq.Operações de escrita (criação, exclusão) exigem autenticação por chave de API; o login via OAuth é somente leitura:
Como alternativa, defina as variáveis de ambiente CLICKHOUSE_CLOUD_API_KEY e CLICKHOUSE_CLOUD_API_SECRET. Verifique com clickhousectl cloud auth status; deve haver uma entrada com escopo read/write.

Parte 1: Criar o Postgres e carregar os dados

Criar um serviço Postgres

Crie o serviço e salve a resposta; a senha é exibida apenas uma vez:
A resposta inclui o ID do serviço, o hostname e uma string de conexão pronta para uso:
Extraia o que será necessário para o restante deste guia:
Se a senha for perdida, gere uma nova com clickhousectl cloud postgres reset-password $PG_ID --generate.

Aguarde o provisionamento do serviço

O Provisioning leva alguns minutos. Verifique periodicamente até que o estado seja running:

Carregar dados de exemplo

Crie duas tabelas e insira 1 milhão de eventos usando o psql:
A inserção de 1 milhão de linhas leva cerca de 7 segundos no c6gd.large (a menor configuração), graças ao armazenamento NVMe. Verifique com uma consulta; a contagem de linhas varia entre as execuções porque os dados são gerados com random():

Parte 2: Replicar para o ClickHouse

Criar um serviço do ClickHouse

Crie um serviço na mesma região e salve a resposta; a senha aparece apenas na resposta de criação:
Aguarde até que ele esteja em execução; o ClickPipe requer um destino em execução:
Para usar um serviço existente, defina CH_ID a partir de clickhousectl cloud service list e CH_PASSWORD como a senha do usuário default, que é necessária para a etapa pg_clickhouse.

Replique as tabelas para o ClickHouse

Crie um Postgres CDC ClickPipe no serviço do ClickHouse, apontando para o hostname do Managed Postgres. O pipe copia as linhas existentes e, em seguida, mantém o ClickHouse sincronizado com as alterações contínuas:
Notas:
  • As tabelas replicadas são gravadas no banco de dados default do serviço do ClickHouse, com os nomes definidos pelos destinos de --table-mapping
  • A publication e o replication slot são criados automaticamente, com a publication restrita às tabelas mapeadas; passe --publication-name para usar uma gerenciada por você
  • Use o hostname direto do Postgres; a replicação não é compatível com o PgBouncer

Aguarde o pipe atingir o status Running

O pipe passa por Provisioning, Setup e, no caso de tabelas maiores, Snapshot antes de atingir Running, o que leva cerca de 4 minutos para o primeiro pipe em um service. Failed e InternalError são estados terminais:

Consulte os dados replicados no ClickHouse

Execute SQL diretamente no serviço do ClickHouse pela CLI. A primeira chamada cria automaticamente um endpoint da Query API e uma chave de API com escopo no serviço:
Novas gravações no Postgres são replicadas continuamente. Insira uma linha e faça consultas até que a contagem atinja 1,000,001 (normalmente em menos de um minuto):

Consultar o ClickHouse no Postgres

A extensão pg_clickhouse permite que o Postgres atue como uma camada unificada de consulta para dados transacionais e analíticos. Obtenha o hostname HTTPS do ClickHouse e, em seguida, configure a extensão usando o psql:
O heredoc está sem aspas de propósito, para que o shell substitua $CH_HOST e $CH_PASSWORD antes que o SQL chegue ao Postgres. As tabelas replicadas agora estão visíveis como tabelas estrangeiras no schema organization; as consultas sobre elas são executadas no ClickHouse.Em testes no c6gd.large com este conjunto de dados, as consultas analíticas são executadas de 6 a 9 vezes mais rápido por meio das tabelas estrangeiras (por exemplo, um GROUP BY com 5 agregações: 176 ms via ClickHouse vs 1.133 ms localmente; um JOIN com agregações: 298 ms vs 2.764 ms).

Limpeza

Exclua primeiro o ClickPipe e depois o serviço Postgres. Ao excluir um serviço, todos os dados dele são removidos permanentemente:
Um serviço do ClickHouse em execução não pode ser excluído diretamente. Pare-o, aguarde até stopped e depois exclua:
Última modificação em 24 de julho de 2026