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.
TLS/SSL
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.
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.