SELECT e INSERT sobre datos almacenados en un servidor PostgreSQL remoto.
Sintaxis
Argumentos
| Argumento | Descripción |
|---|---|
host:port | Dirección del servidor de PostgreSQL. |
database | Nombre de la base de datos remota. |
table | Nombre de la tabla remota. |
user | Usuario de PostgreSQL. |
password | Contraseña del usuario. |
schema | Esquema de tabla distinto del predeterminado. Opcional. |
on_conflict | Estrategia de resolución de conflictos. Ejemplo: ON CONFLICT DO NOTHING. Opcional. |
host y port deben especificarse por separado. Este enfoque se recomienda para entornos de producción.
Valor devuelto
En la consulta
INSERT, para distinguir la función de tabla postgresql(...) del nombre de la tabla con una lista de nombres de columnas, debe usar las palabras clave FUNCTION o TABLE FUNCTION. Vea los ejemplos a continuación.Detalles de implementación
SELECT del lado de PostgreSQL se ejecutan como COPY (SELECT ...) TO STDOUT dentro de una transacción de PostgreSQL de solo lectura, con commit después de cada consulta SELECT.
Las cláusulas WHERE simples, como =, !=, >, >=, <, <= e IN, se ejecutan en el servidor PostgreSQL.
Todos los joins, las agregaciones, la ordenación, las condiciones IN [ array ] y la restricción de muestreo LIMIT se ejecutan en ClickHouse solo después de que finaliza la consulta a PostgreSQL.
Las consultas INSERT del lado de PostgreSQL se ejecutan como COPY "table_name" (field1, field2, ... fieldN) FROM STDIN dentro de una transacción de PostgreSQL, con autocommit después de cada sentencia INSERT.
Los tipos Array de PostgreSQL se convierten en arrays de ClickHouse.
Ten cuidado: en PostgreSQL, una columna de tipo array como Integer[] puede contener arrays de distintas dimensiones en diferentes filas, pero en ClickHouse solo se permite tener arrays multidimensionales de la misma dimensión en todas las filas.
|. Por ejemplo:
0.
Ejemplos
Replicar o migrar datos de Postgres con PeerDB
Además de las funciones de tabla, también puedes usar PeerDB de ClickHouse para configurar un pipeline de datos continuo de Postgres a ClickHouse. PeerDB es una herramienta diseñada específicamente para replicar datos de Postgres a ClickHouse mediante captura de cambios de datos (CDC).