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

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

Движок таблицы PostgreSQL позволяет выполнять операции SELECT и INSERT с данными, хранящимися на удалённом сервере PostgreSQL, из ClickHouse. В этой статье показаны основные способы интеграции с использованием одной таблицы.
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, вам может понадобиться разрешить доступ к вашему экземпляру PostgreSQL с IP-адресов ClickHouse Cloud. Подробности об исходящем трафике см. в ClickHouse Cloud Endpoints API.
2

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

  1. Войдите в клиент ClickHouse:
  1. Давайте создадим новую базу данных:
  1. Создайте таблицу с движком PostgreSQL:
Необходимые минимальные параметры:
Полный список параметров см. на странице документации PostgreSQL table engine.
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-команды для этой репликации не поддерживаются, движок можно настроить на обнаружение изменений и перезагрузку таблиц при изменении их структуры.
Подробнее о дополнительных возможностях расширенных вариантов см. в справочной документации.
Последнее изменение 3 июля 2026 г.