SELECT и INSERT к данным, хранящимся на удаленном сервере PostgreSQL.
Синтаксис
Аргументы
| Аргумент | Описание |
|---|---|
host:port | Адрес сервера PostgreSQL. |
database | Имя удалённой базы данных. |
table | Имя удалённой таблицы. |
user | Пользователь PostgreSQL. |
password | Пароль пользователя. |
schema | Схема таблицы, отличная от используемой по умолчанию. Необязательно. |
on_conflict | Стратегия разрешения конфликтов. Пример: ON CONFLICT DO NOTHING. Необязательно. |
host и port нужно указывать отдельно. Такой подход рекомендуется для производственной среды.
Возвращаемое значение
В запросе
INSERT, чтобы отличить табличную функцию postgresql(...) от имени таблицы со списком имён столбцов, необходимо использовать ключевые слова FUNCTION или TABLE FUNCTION. См. примеры ниже.Подробности реализации
SELECT-запросы на стороне PostgreSQL выполняются как COPY (SELECT ...) TO STDOUT внутри PostgreSQL-транзакции в режиме только для чтения с фиксацией после каждого SELECT-запроса.
Простые секции WHERE, такие как =, !=, >, >=, <, <= и IN, выполняются на сервере PostgreSQL.
Все JOIN, агрегации, сортировка, условия IN [ array ] и ограничение сэмплирования LIMIT выполняются в ClickHouse только после завершения запроса к PostgreSQL.
INSERT-запросы на стороне PostgreSQL выполняются как COPY "table_name" (field1, field2, ... fieldN) FROM STDIN внутри PostgreSQL-транзакции с автофиксацией после каждого оператора INSERT.
Типы Array в PostgreSQL преобразуются в массивы ClickHouse.
Будьте внимательны: в PostgreSQL столбец с типом массива, например Integer[], может содержать массивы разной размерности в разных строках, но в ClickHouse допускаются только многомерные массивы одинаковой размерности во всех строках.
|. Например:
0.
Примеры
Репликация или миграция данных Postgres с помощью PeerDB
Помимо табличных функций, вы также можете использовать PeerDB от ClickHouse, чтобы настроить непрерывный конвейер передачи данных из Postgres в ClickHouse. PeerDB — это инструмент, специально разработанный для репликации данных из Postgres в ClickHouse с использованием CDC (фиксации изменений данных).