Skip to main content
Se recomienda a los usuarios de ClickHouse Cloud que utilicen ClickPipes para la replicación de PostgreSQL a ClickHouse. Esto ofrece compatibilidad nativa con Change Data Capture (CDC) de alto rendimiento para PostgreSQL.
Crea una tabla de ClickHouse con un volcado inicial de datos de una tabla de PostgreSQL e inicia el proceso de replicación; es decir, ejecuta un trabajo en segundo plano para aplicar nuevos cambios a medida que se producen en la tabla de PostgreSQL de la base de datos remota.
Este motor de tabla es experimental. Para usarlo, establezca allow_experimental_materialized_postgresql_table en 1 en sus archivos de configuración o mediante el comando SET:
Si se requiere más de una tabla, se recomienda encarecidamente usar el motor de base de datos MaterializedPostgreSQL en lugar del motor de tabla y usar la configuración materialized_postgresql_tables_list, que especifica las tablas que se van a replicar (también será posible añadir el schema de la base de datos). Esto ofrece un rendimiento mucho mejor en términos de CPU, con menos conexiones y menos slots de replicación en la base de datos remota de PostgreSQL.

Crear una tabla

Parámetros del motor
  • host:port — Dirección del servidor PostgreSQL.
  • database — Nombre de la base de datos remota.
  • table — Nombre de la tabla remota.
  • user — Usuario de PostgreSQL.
  • password — Contraseña del usuario.

TLS/SSL

Los parámetros de TLS/SSL se reenvían a libpq y pueden proporcionarse mediante una colección con nombre o como argumentos clave-valor al final de la definición del motor: sslmode (disable, allow, prefer, require, verify-ca o verify-full; si no se especifica, se usa el valor predeterminado prefer de libpq), así como los certificados y la clave, de una de dos formas. sslrootcert (certificado de CA), sslcert (certificado de cliente) y sslkey (clave privada de cliente) son rutas a archivos locales del servidor y solo se aceptan desde una colección con nombre definida en el archivo de configuración del servidor. En cambio, sslrootcert_pem, sslcert_pem y sslkey_pem aceptan el contenido literal del archivo correspondiente, pueden especificarse desde SQL y se ocultan en los registros y las consultas SHOW, como una contraseña.
Los parámetros TLS/SSL forman parte de los parámetros de conexión de PostgreSQL, que se establecen al crear la tabla.

Requisitos

  1. La configuración wal_level debe tener el valor logical, y el parámetro max_replication_slots debe tener un valor de al menos 2 en el archivo de configuración de PostgreSQL.
  2. Una tabla con el motor MaterializedPostgreSQL debe tener una clave primaria, que debe ser la misma que el índice de identidad de réplica (de forma predeterminada, la clave primaria) de una tabla de PostgreSQL (consulte los detalles sobre el índice de identidad de réplica).
  3. Solo se permite la base de datos Atomic.
  4. El motor de tabla MaterializedPostgreSQL solo funciona con versiones de PostgreSQL >= 11, ya que la implementación requiere la función de PostgreSQL pg_replication_slot_advance.

Columnas virtuales

  • _version — Contador de transacciones. Tipo: UInt64.
  • _sign — Marca de eliminación. Tipo: Int8. Valores posibles:
    • 1 — La fila no está eliminada,
    • -1 — La fila está eliminada.
No es necesario añadir estas columnas al crear una tabla. Siempre se puede acceder a ellas en la consulta SELECT. La columna _version equivale a la posición de LSN en WAL, por lo que puede usarse para comprobar lo actualizada que está la replicación.
La replicación de valores TOAST no es compatible. Se usará el valor predeterminado del tipo de dato.
Última modificación el 14 de agosto de 2026