Перейти к основному содержанию
На этой странице рассматриваются следующие варианты интеграции PostgreSQL с ClickHouse:
  • использование движка таблицы PostgreSQL для чтения данных из таблицы PostgreSQL
  • использование экспериментального движка базы данных MaterializedPostgreSQL для синхронизации базы данных PostgreSQL с базой данных в ClickHouse
Ознакомьтесь с нашим сервисом Managed Postgres. Благодаря NVMe-хранилищу, физически расположенному рядом с вычислительными ресурсами, он обеспечивает производительность до 10 раз выше для рабочих нагрузок, упирающихся в производительность диска, по сравнению с альтернативами на сетевом хранилище, такими как EBS, а также позволяет реплицировать данные из Postgres в ClickHouse с помощью коннектора Postgres CDC в ClickPipes.

Использование движка таблицы PostgreSQL

Движок таблицы PostgreSQL позволяет выполнять из ClickHouse операции SELECT и INSERT с данными, хранящимися на удалённом сервере PostgreSQL. В этой статье на примере одной таблицы показаны базовые способы интеграции.

1. Настройка PostgreSQL

  1. В postgresql.conf добавьте следующую запись, чтобы PostgreSQL прослушивал сетевые интерфейсы:
  1. Создайте пользователя для подключения из ClickHouse. Для демонстрации в этом примере предоставляются полные права суперпользователя.
  1. Создайте новую базу данных в PostgreSQL:
  1. Создайте новую таблицу:
  1. Давайте добавим несколько строк для проверки:
  1. Чтобы настроить PostgreSQL так, чтобы новая база данных принимала подключения нового пользователя для репликации, добавьте следующую запись в файл pg_hba.conf. В строке адреса укажите подсеть или IP-адрес вашего сервера PostgreSQL:
  1. Перезагрузите конфигурационный файл pg_hba.conf (скорректируйте эту команду в зависимости от вашей версии):
  1. Убедитесь, что новый clickhouse_user может войти:
Если вы используете эту возможность в ClickHouse Cloud, вам может потребоваться разрешить IP-адресам ClickHouse Cloud доступ к вашему экземпляру PostgreSQL. Сведения об исходящем трафике см. в ClickHouse Cloud Endpoints API.

2. Создайте таблицу в ClickHouse

  1. Войдите в clickhouse-client:
  1. Создадим новую базу данных:
  1. Создайте таблицу, использующую движок PostgreSQL:
Минимально необходимые параметры:
Полный список параметров см. на странице документации движка таблицы PostgreSQL.

3 Проверьте интеграцию

  1. В ClickHouse просмотрите первые строки:
Таблица ClickHouse должна автоматически заполниться двумя строками, которые уже были в таблице PostgreSQL:
  1. Вернувшись в PostgreSQL, добавьте в таблицу пару строк:
  1. Эти две новые строки должны появиться в таблице ClickHouse:
Ответ должен быть следующим:
  1. Посмотрим, что произойдет, если добавить строки в таблицу ClickHouse:
  1. Строки, добавленные в ClickHouse, должны появиться в таблице PostgreSQL:
В этом примере показана базовая интеграция между PostgreSQL и ClickHouse с использованием движка таблицы PostrgeSQL. Дополнительные возможности, такие как указание схем, выборка только части столбцов и подключение к нескольким репликам, описаны на странице документации о движке таблицы PostgreSQL. Также ознакомьтесь со статьёй в блоге ClickHouse and PostgreSQL - a match made in data heaven - part 1.

Использование движка базы данных MaterializedPostgreSQL

Движок базы данных PostgreSQL использует возможности репликации PostgreSQL для создания реплики базы данных со всеми схемами и таблицами или их подмножеством. В этой статье показаны базовые способы интеграции на примере одной базы данных, одной схемы и одной таблицы. В следующих процедурах используются PostgreSQL CLI (psql) и ClickHouse CLI (clickhouse-client). Сервер PostgreSQL установлен на Linux. Ниже приведены минимальные настройки, если PostgreSQL используется в новой тестовой установке

1. В PostgreSQL

  1. В postgresql.conf задайте минимальные уровни прослушивания, уровень WAL для репликации и слоты репликации:
добавьте следующие параметры:
*Для ClickHouse требуется уровень wal не ниже logical и как минимум 2 слота репликации
  1. Используя учетную запись администратора, создайте пользователя для подключения из ClickHouse:
*для демонстрации были предоставлены полные права суперпользователя.
  1. создайте новую базу данных:
  1. подключитесь к новой базе данных через psql:
  1. Создайте новую таблицу:
  1. добавьте исходные строки:
  1. Настройте PostgreSQL так, чтобы разрешить новому пользователю подключаться к новой базе данных для репликации. Ниже приведена минимальная запись, которую нужно добавить в файл pg_hba.conf:
*в демонстрационных целях здесь используется метод аутентификации с паролем в открытом виде. обновите строку address, указав либо подсеть, либо адрес сервера в соответствии с документацией PostgreSQL
  1. перезагрузите конфигурацию pg_hba.conf, например так (при необходимости скорректируйте для своей версии):
  1. Проверьте вход под новым clickhouse_user:

2. В ClickHouse

  1. войдите в ClickHouse CLI
  1. Включите экспериментальную возможность PostgreSQL для движка базы данных:
  1. Создайте новую базу данных для репликации и исходную таблицу:
минимальные параметры:
Полное руководство по движку базы данных PostgreSQL см. здесь: https://clickhouse.com/docs/engines/database-engines/materialized-postgresql/#settings
  1. Убедитесь, что в исходной таблице есть данные:

3. Проверьте базовую репликацию

  1. В PostgreSQL добавьте новые строки:
  1. В ClickHouse убедитесь, что новые строки отображаются:

4. Сводка

В этом руководстве по интеграции был рассмотрен простой пример репликации базы данных с одной таблицей, однако доступны и более продвинутые варианты, включая репликацию всей базы данных или добавление новых таблиц и схем в уже существующие репликации. Хотя команды DDL для такой репликации не поддерживаются, движок можно настроить на обнаружение изменений и повторную загрузку таблиц при изменении их структуры.
Дополнительные возможности расширенной настройки описаны в справочной документации.
Последнее изменение 1 июля 2026 г.