postgresql
Позволяет выполнять запросы SELECT
и INSERT
над таблицами удаленной БД PostgreSQL.
Синтаксис
Аргументы
host:port
— адрес сервера PostgreSQL.database
— имя базы данных на удалённом сервере.table
— имя таблицы на удалённом сервере.user
— пользователь PostgreSQL.password
— пароль пользователя.schema
— имя схемы, если не используется схема по умолчанию. Необязательный аргумент.
Возвращаемое значение
Таблица с теми же столбцами, что и в исходной таблице PostgreSQL.
В запросах INSERT
для того чтобы отличить табличную функцию postgresql(...)
от таблицы со списком имен столбцов вы должны указывать ключевые слова FUNCTION
или TABLE FUNCTION
. См. примеры ниже.
Особенности реализации
Запросы SELECT
на стороне PostgreSQL выполняются как COPY (SELECT ...) TO STDOUT
внутри транзакции PostgreSQL только на чтение с коммитом после каждого запроса SELECT
.
Простые условия для WHERE
такие как =
, !=
, >
, >=
, <
, <=
и IN
исполняются на стороне PostgreSQL сервера.
Все операции объединения, аггрегации, сортировки, условия IN [ array ]
и ограничения LIMIT
выполняются на стороне ClickHouse только после того как запрос к PostgreSQL закончился.
Запросы INSERT
на стороне PostgreSQL выполняются как COPY "table_name" (field1, field2, ... fieldN) FROM STDIN
внутри PostgreSQL транзакции с автоматическим коммитом после каждого запроса INSERT
.
PostgreSQL массивы конвертируются в массивы ClickHouse.
Будьте внимательны, в PostgreSQL массивы, созданные как type_name[]
, являются многомерными и могут содержать в себе разное количество измерений в разных строках одной таблицы. Внутри ClickHouse допустипы только многомерные массивы с одинаковым кол-вом измерений во всех строках таблицы.
Поддерживает несколько реплик, которые должны быть перечислены через |
. Например:
или
При использовании словаря PostgreSQL поддерживается приоритет реплик. Чем больше номер реплики, тем ниже ее приоритет. Наивысший приоритет у реплики с номером 0
.
Примеры
Таблица в PostgreSQL:
Получение данных в ClickHouse:
Вставка данных:
Using Non-default Schema:
См. также