Saltar al contenido principal
Esta página cubre las siguientes opciones para integrar PostgreSQL con ClickHouse:
  • usar el motor de tabla PostgreSQL para leer desde una tabla de PostgreSQL
  • usar el motor de base de datos experimental MaterializedPostgreSQL para sincronizar una base de datos de PostgreSQL con una base de datos de ClickHouse
Consulta nuestro servicio Managed Postgres. Gracias a su almacenamiento NVMe, ubicado físicamente junto al cómputo, ofrece un rendimiento hasta 10 veces superior para cargas de trabajo limitadas por disco en comparación con alternativas que usan almacenamiento conectado por red como EBS, y te permite replicar tus datos de Postgres en ClickHouse mediante el conector Postgres CDC de ClickPipes.

Uso del motor de tabla PostgreSQL

El motor de tabla PostgreSQL permite realizar operaciones SELECT e INSERT sobre datos almacenados en un servidor PostgreSQL remoto desde ClickHouse. Este artículo ilustra métodos básicos de integración usando una sola tabla.

1. Configuración de PostgreSQL

  1. En postgresql.conf, agregue la siguiente entrada para que PostgreSQL escuche en las interfaces de red:
  1. Cree un usuario para que ClickHouse se conecte. Con fines de demostración, este ejemplo le concede privilegios completos de superusuario.
  1. Cree una nueva base de datos en PostgreSQL:
  1. Cree una tabla nueva:
  1. Agreguemos unas cuantas filas para probar:
  1. Para configurar PostgreSQL de modo que permita conexiones a la nueva base de datos con el nuevo usuario para la replicación, agrega la siguiente entrada al archivo pg_hba.conf. Actualiza la línea de dirección con la subred o la dirección IP de tu servidor de PostgreSQL:
  1. Recarga la configuración pg_hba.conf (ajusta este comando según tu versión):
  1. Verifique que el nuevo clickhouse_user pueda iniciar sesión:
Si estás usando esta función en ClickHouse Cloud, puede que necesites permitir el acceso a tu instancia de PostgreSQL desde las direcciones IP de ClickHouse Cloud. Consulta la Cloud Endpoints API de ClickHouse para obtener información sobre el tráfico de salida.

2. Defina una tabla en ClickHouse

  1. Inicie sesión en el cliente clickhouse-client:
  1. Vamos a crear una nueva base de datos:
  1. Cree una tabla que use PostgreSQL:
Los parámetros mínimos necesarios son:
Consulte la página de documentación de PostgreSQL table engine para ver la lista completa de parámetros.

3 Probar la integración

  1. En ClickHouse, consulte las filas iniciales:
La tabla de ClickHouse debería llenarse automáticamente con las dos filas que ya existían en la tabla de PostgreSQL:
  1. De nuevo en PostgreSQL, añada un par de filas a la tabla:
  1. Esas dos filas nuevas deberían aparecer en tu tabla de ClickHouse:
La respuesta debería ser:
  1. Veamos qué ocurre cuando añades filas a la tabla de ClickHouse:
  1. Las filas agregadas en ClickHouse deberían aparecer en la tabla de PostgreSQL:
Este ejemplo mostró la integración básica entre PostgreSQL y ClickHouse mediante el motor de tabla PostrgeSQL. Consulta la página de documentación del motor de tabla PostgreSQL para ver más funcionalidades, como especificar esquemas, devolver solo un subconjunto de columnas y conectarse a varias réplicas. Consulta también el blog ClickHouse and PostgreSQL - a match made in data heaven - part 1.

Uso del motor de base de datos MaterializedPostgreSQL

El motor de base de datos PostgreSQL utiliza las funciones de replicación de PostgreSQL para crear una réplica de la base de datos con todos los esquemas y tablas, o con un subconjunto de ellos. Este artículo ilustra métodos básicos de integración con una base de datos, un esquema y una tabla. En los procedimientos siguientes se utilizan PostgreSQL CLI (psql) y ClickHouse CLI (clickhouse-client). El servidor PostgreSQL está instalado en Linux. A continuación se muestra la configuración mínima si la base de datos PostgreSQL es una instalación de prueba nueva

1. En PostgreSQL

  1. En postgresql.conf, configure los niveles mínimos de escucha, el nivel WAL de replicación y los slots de replicación:
agregue las siguientes entradas:
*ClickHouse necesita como mínimo el nivel de wal logical y al menos 2 slots de replicación
  1. Con una cuenta de administrador, cree un usuario para conectarse desde ClickHouse:
*con fines de demostración, se han concedido privilegios completos de superusuario.
  1. cree una nueva base de datos:
  1. conéctese a la nueva base de datos desde psql:
  1. cree una nueva tabla:
  1. añade las filas iniciales:
  1. Configure PostgreSQL para permitir conexiones a la nueva base de datos con el nuevo usuario de replicación. A continuación se muestra la entrada mínima que se debe añadir al archivo pg_hba.conf:
*para fines de demostración, aquí se utiliza el método de autenticación con contraseña en texto claro. actualice la línea address con la subred o la dirección del servidor, según la documentación de PostgreSQL
  1. vuelva a cargar la configuración de pg_hba.conf con algo como esto (ajústelo según su versión):
  1. Pruebe a iniciar sesión con el nuevo clickhouse_user:

2. En ClickHouse

  1. acceda a la ClickHouse CLI
  1. Habilite la función experimental de PostgreSQL para el motor de base de datos:
  1. Cree la nueva base de datos que se va a replicar y defina la tabla inicial:
opciones mínimas:
Para consultar la guía completa del motor de base de datos PostgreSQL, consulte https://clickhouse.com/docs/engines/database-engines/materialized-postgresql/#settings
  1. Compruebe que la tabla inicial tenga datos:

3. Probar la replicación básica

  1. En PostgreSQL, agregue nuevas filas:
  1. En ClickHouse, verifica que las nuevas filas estén visibles:

4. Resumen

Esta guía de integración se ha centrado en un ejemplo sencillo de cómo replicar una base de datos con una tabla; sin embargo, existen opciones más avanzadas, como replicar toda la base de datos o añadir nuevas tablas y esquemas a las replicaciones ya existentes. Aunque esta replicación no admite comandos DDL, el motor puede configurarse para detectar cambios y volver a cargar las tablas cuando se realicen cambios estructurales.
Para conocer más funcionalidades disponibles en las opciones avanzadas, consulte la documentación de referencia.
Última modificación el 2 de julio de 2026