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.
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: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
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.
Requisitos
-
La configuración wal_level debe tener el valor
logical, y el parámetromax_replication_slotsdebe tener un valor de al menos2en el archivo de configuración de PostgreSQL. -
Una tabla con el motor
MaterializedPostgreSQLdebe 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). - Solo se permite la base de datos Atomic.
-
El motor de tabla
MaterializedPostgreSQLsolo 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.
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.