Skip to main content
Позволяет подключаться к базам данных на удалённом PostgreSQL сервере. Поддерживает операции чтения и записи (запросы SELECT и INSERT) для обмена данными между ClickHouse и PostgreSQL. Обеспечивает доступ в реальном времени к списку таблиц и структуре таблиц на удалённом сервере PostgreSQL с помощью запросов SHOW TABLES и DESCRIBE TABLE. Поддерживает изменение структуры таблиц (ALTER TABLE ... ADD|DROP COLUMN). Если параметр use_table_cache (см. раздел «Параметры движка» ниже) установлен в 1, структура таблиц кэшируется и не проверяется на изменения, но может быть обновлена запросами DETACH и ATTACH.

Создание базы данных

Параметры движка
  • host:port — Адрес сервера PostgreSQL.
  • database — Имя удалённой базы данных.
  • user — Пользователь PostgreSQL.
  • password — Пароль пользователя.
  • schema — Схема PostgreSQL.
  • use_table_cache — Определяет, кэшируется ли структура таблицы базы данных. Необязательный параметр. Значение по умолчанию: 0.
Параметры TLS/SSL передаются в libpq и могут быть заданы через именованную коллекцию или в качестве завершающих аргументов ключ-значение: sslmode (disable, allow, prefer, require, verify-ca или verify-full), а также сертификаты и ключ в одном из двух вариантов. sslrootcert (CA‑сертификат), sslcert (клиентский сертификат) и sslkey (закрытый ключ клиента) — это пути к локальным файлам сервера; они принимаются только из именованной коллекции, определённой в файле конфигурации сервера. Вместо этого параметры sslrootcert_pem, sslcert_pem и sslkey_pem принимают литеральное содержимое соответствующих файлов; их можно указывать в SQL (например, ENGINE = PostgreSQL('host:port', 'database', 'user', 'password', sslmode = 'verify-full', sslrootcert_pem = '...')), а в журналах и запросах SHOW они маскируются так же, как пароль. Если они не заданы, применяются значения libpq по умолчанию (sslmode=prefer).

Поддержка типов данных

В PostgreSQL numeric(p, 0) с precision p больше 76 (максимального значения, поддерживаемого Decimal256) — например, numeric(78, 0), который обычно используется для хранения 256-битных целых чисел, — сопоставляется с Int256, а не с Decimal. Значения, которые не помещаются в диапазон Int256, отклоняются с ошибкой.

Примеры использования

База данных в ClickHouse, которая обменивается данными с сервером PostgreSQL:
Чтение данных из таблицы PostgreSQL:
Запись данных в таблицу PostgreSQL:
Предположим, что структура таблицы в PostgreSQL была изменена:
Поскольку при создании базы данных параметр use_table_cache был установлен в значение 1, структура таблицы в ClickHouse была кэширована и поэтому не была изменена:
После отсоединения таблицы и её повторного подключения структура была обновлена:
Последнее изменение 14 августа 2026 г.