SELECT e INSERT) para intercambiar datos entre ClickHouse y PostgreSQL.
Proporciona acceso en tiempo real a la lista y a la estructura de las tablas del PostgreSQL remoto mediante las consultas SHOW TABLES y DESCRIBE TABLE.
Admite modificaciones en la estructura de la tabla (ALTER TABLE ... ADD|DROP COLUMN). Si el parámetro use_table_cache (consulte Parámetros del motor más abajo) está configurado en 1, la estructura de la tabla se almacena en caché y no se comprueba si se ha modificado, pero puede actualizarse con las consultas DETACH y ATTACH.
Crear una base de datos
host:port— Dirección del servidor PostgreSQL.database— Nombre de la base de datos remota.user— Usuario de PostgreSQL.password— Contraseña del usuario.schema— Esquema de PostgreSQL.use_table_cache— Indica si la estructura de la tabla de la base de datos se almacena en caché. Opcional. Valor predeterminado:0.
libpq y pueden proporcionarse mediante una colección con nombre o como argumentos clave-valor adicionales: sslmode (disable, allow, prefer, require, verify-ca o verify-full), y los certificados y la clave, en 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, se pueden especificar desde SQL (por ejemplo, ENGINE = PostgreSQL('host:port', 'database', 'user', 'password', sslmode = 'verify-full', sslrootcert_pem = '...')) y se ocultan en los registros y las consultas SHOW, igual que una contraseña. Cuando no se especifican, se aplican los valores predeterminados de libpq (sslmode=prefer).
Compatibilidad con tipos de datos
PostgreSQL
numeric(p, 0) con una precisión p superior a 76 (el máximo admitido por Decimal256) —por ejemplo, numeric(78, 0), usado habitualmente para almacenar enteros de 256 bits— se asigna a Int256 en lugar de Decimal. Los valores que no caben en el rango de Int256 se rechazan con un error.Ejemplos de uso
use_table_cache se estableció en 1 cuando se creó la base de datos, la estructura de la tabla en ClickHouse se almacenó en caché y, por lo tanto, no se modificó: