Introducción
[pg_clickhouse], una extensión de PostgreSQL de código abierto, ejecuta consultas analíticas en ClickHouse directamente desde PostgreSQL sin necesidad de reescribir SQL. Es compatible con PostgreSQL 14 y versiones posteriores, y con ClickHouse v23 y posteriores. Una vez que ClickPipes comience a sincronizar datos con ClickHouse, usa pg_clickhouse para importar tablas foráneas de forma rápida y sencilla a un esquema de PostgreSQL. Luego, ejecuta tus consultas existentes de PostgreSQL sobre esas tablas, conservando tu base de código actual mientras delegas la ejecución en ClickHouse.Primeros pasos
La forma más sencilla de probar pg_clickhouse es la imagen de Docker, que incluye la imagen estándar de PostgreSQL para Docker junto con las extensiones pg_clickhouse y re2:Caso de prueba: TPC-H
Esta tabla compara el rendimiento de las consultas TPC-H entre tablas PostgreSQL convencionales y pg_clickhouse conectado a ClickHouse, ambos con un factor de escalado de 1; ✔︎ indica un pushdown completo con un único escaneo externo y ✼ indica un pushdown completo con varios escaneos externos. Todas las pruebas se ejecutaron en un MacBook Pro M4 Max con 36 GB de memoria.Compilar a partir del código fuente
Unix en general
Los paquetes de desarrollo de PostgreSQL y curl incluyenpg_config y
curl-config en el PATH, por lo que debería bastar con ejecutar make (o
gmake), luego make install y, después, en tu base de datos
CREATE EXTENSION pg_clickhouse.
Debian / Ubuntu / APT
Consulta PostgreSQL Apt para obtener más información sobre cómo descargarlo desde el repositorio APT de PostgreSQL.RedHat / CentOS / Yum
Instalar desde PGXN
Con las dependencias anteriores ya cumplidas, use el PGXN client (disponible como paquetes de Homebrew, Apt y Yum llamadospgxnclient) para descargar, compilar
e instalar pg_clickhouse:
Compilar e instalar
Para compilar e instalar la biblioteca de ClickHouse ypg_clickhouse, ejecute:
pg_config:
curl-config no está en el PATH de su host, puede especificar la ruta
explícitamente:
gmake:
pg_config esté instalado y disponible en tu path. Si usaste un
sistema de gestión de paquetes como RPM para instalar PostgreSQL, asegúrate de que el
paquete -devel también esté instalado. Si es necesario, indícale al proceso de compilación dónde
encontrarlo:
prefix a install (pero no a ningún otro objetivo de make):
postgresql.conf
parámetros]:
Pruebas
Para ejecutar la batería de pruebas, una vez instalada la extensión, ejecuteCarga
Una vez instaladopg_clickhouse, puede añadirlo a una base de datos conectándose
como superusuario y ejecutando:
pg_clickhouse y todos sus objetos de soporte en
un esquema específico, utiliza la cláusula SCHEMA para especificar el esquema, así:
Dependencias
La extensiónpg_clickhouse requiere PostgreSQL 14 o superior, libcurl
y libuuid. Para compilar la extensión se necesita un compilador de C y C++, libSSL, GNU
make y CMake.
Hoja de ruta
Nuestra principal prioridad es completar la cobertura de pushdown para cargas de trabajo analíticas antes de añadir capacidades de DML. Nuestra hoja de ruta:- Lograr una planificación óptima para las 10 consultas TPC-H restantes sin pushdown
- Probar y corregir el pushdown para las consultas de ClickBench
- Admitir el pushdown transparente de todas las funciones de agregación de PostgreSQL
- Admitir el pushdown transparente de todas las funciones de PostgreSQL
- Permitir ajustes de ClickHouse a nivel de servidor y de sesión mediante CREATE SERVER y GUCs
- Admitir todos los tipos de datos de ClickHouse
- Admitir eliminaciones ligeras y UPDATEs
- Admitir inserción por lotes mediante COPY
- Añadir una función para ejecutar una consulta arbitraria de ClickHouse y devolver sus resultados en forma de tabla
- Añadir compatibilidad con el pushdown de consultas UNION cuando todas consulten la base de datos remota
Autores
Derechos de autor
- Copyright (c) 2025-2026, ClickHouse
- Partes con Copyright (c) 2023-2025, Ildus Kurbangaliev
- Partes con Copyright (c) 2019-2023, Adjust GmbH
- Partes con Copyright (c) 2012-2019, PostgreSQL Global Development Group