Introdução
[pg_clickhouse], uma extensão de código aberto do PostgreSQL, executa consultas analíticas no ClickHouse diretamente do PostgreSQL, sem reescrever nenhum SQL. Ela é compatível com PostgreSQL 14 e versões posteriores e ClickHouse v23 e versões posteriores. Assim que ClickPipes começar a sincronizar dados para o ClickHouse, use o pg_clickhouse para [importar tabelas estrangeiras] de forma rápida e fácil para um schema do PostgreSQL. Em seguida, execute suas consultas existentes do PostgreSQL nessas tabelas, preservando sua base de código atual enquanto delega a execução ao ClickHouse.Primeiros passos
A forma mais simples de experimentar o pg_clickhouse é a [imagem Docker], que contém a imagem Docker padrão do PostgreSQL com as extensões pg_clickhouse e re2:Caso de teste: TPC-H
Esta tabela compara o desempenho das consultas TPC-H entre tabelas PostgreSQL convencionais e o pg_clickhouse conectado ao ClickHouse, ambos carregados com fator de escala 1; ✔︎ indica pushdown completo em uma única varredura externa, e ✼ indica pushdown completo em várias varreduras externas. Todos os testes foram executados em um MacBook Pro M4 Max com 36 GB de memória.Compilar a partir do código-fonte
Unix em geral
Os pacotes de desenvolvimento do PostgreSQL e do curl incluempg_config e
curl-config no path, então você deve conseguir simplesmente executar make (ou
gmake), depois make install e, em seguida, no seu banco de dados,
CREATE EXTENSION pg_clickhouse.
Debian / Ubuntu / APT
Consulte PostgreSQL Apt para ver detalhes sobre como obter pacotes do repositório PostgreSQL Apt.RedHat / CentOS / Yum
Instalar via PGXN
Com as dependências acima atendidas, use o PGXN client (disponível como pacotes Homebrew, Apt e Yum chamadospgxnclient) para baixar, compilar
e instalar pg_clickhouse:
Compilar e instalar
Para compilar e instalar a biblioteca ClickHouse epg_clickhouse, execute:
pg_config:
curl-config não estiver no path do seu host, você pode especificar o path
explicitamente:
gmake:
pg_config esteja instalado e no seu path. Se você usou um
sistema de gerenciamento de pacotes, como RPM, para instalar o PostgreSQL, certifique-se de que o
pacote -devel também esteja instalado. Se necessário, informe ao processo de build onde
encontrá-lo:
prefix para install (mas não para outros alvos de make):
postgresql.conf]:
Testes
Para executar a suíte de testes, após instalar a extensão, executeCarregando
Depois quepg_clickhouse estiver instalado, você poderá adicioná-lo a um banco de dados conectando-se
como superusuário e executando:
pg_clickhouse e todos os seus objetos auxiliares em
um schema específico, use a cláusula SCHEMA para especificar o schema, assim:
Dependências
A extensãopg_clickhouse requer PostgreSQL 14 ou superior, libcurl
e libuuid. A compilação da extensão requer compiladores C e C++, libSSL, GNU
make e CMake.
Roadmap
Nosso principal foco é concluir a cobertura de pushdown para cargas de trabalho analíticas antes de adicionar recursos de DML. Nosso roadmap:- Planejar de forma ideal as 10 consultas TPC-H restantes que ainda não têm pushdown
- Testar e corrigir o pushdown das consultas do ClickBench
- Oferecer suporte ao pushdown transparente de todas as funções de agregação do PostgreSQL
- Oferecer suporte ao pushdown transparente de todas as funções do PostgreSQL
- Permitir configurações do ClickHouse no nível do servidor e da sessão via CREATE SERVER e GUCs
- Oferecer suporte a todos os tipos de dados do ClickHouse
- Oferecer suporte a DELETEs leves e UPDATEs
- Oferecer suporte à inserção em lote via COPY
- Adicionar uma função para executar uma consulta arbitrária do ClickHouse e retornar seus resultados como uma tabela
- Adicionar suporte ao pushdown de consultas UNION quando todas forem executadas no banco de dados remoto
Autores
Direitos autorais
- Copyright (c) 2025-2026, ClickHouse
- Partes com Copyright (c) 2023-2025, Ildus Kurbangaliev
- Partes com Copyright (c) 2019-2023, Adjust GmbH
- Partes com Copyright (c) 2012-2019, PostgreSQL Global Development Group