Введение
[pg_clickhouse] — расширение PostgreSQL с открытым исходным кодом, которое позволяет выполнять аналитические запросы в ClickHouse прямо из PostgreSQL без какого-либо переписывания SQL. Оно поддерживает PostgreSQL 14 и более поздние версии, а также ClickHouse v23 и выше. Когда ClickPipes начнет синхронизировать данные с ClickHouse, используйте pg_clickhouse, чтобы быстро и просто выполнить import foreign tables в схему PostgreSQL. Затем запускайте существующие запросы PostgreSQL к этим таблицам, сохраняя текущую кодовую базу и передавая выполнение в ClickHouse.Начало работы
Самый простой способ попробовать pg_clickhouse — воспользоваться [Docker-образом], который содержит стандартный Docker-образ PostgreSQL с расширениями pg_clickhouse и re2:Тестирование: TPC-H
В этой таблице сравнивается производительность запросов TPC-H на обычных таблицах PostgreSQL и через pg_clickhouse, подключённый к ClickHouse, в обоих случаях данные загружены с коэффициентом масштабирования 1; ✔︎ обозначает полный pushdown как единое внешнее сканирование, а ✼ обозначает полный pushdown как несколько внешних сканирований. Все тесты выполнены на MacBook Pro M4 Max с 36 ГБ памяти.Сборка из исходного кода
Unix в общем
Пакеты разработки PostgreSQL и curl добавляютpg_config и
curl-config в путь, поэтому вы можете просто выполнить make (или
gmake), затем make install, а затем в своей базе данных
CREATE EXTENSION pg_clickhouse.
Debian / Ubuntu / APT
См. PostgreSQL Apt, чтобы узнать подробности о получении пакетов из репозитория PostgreSQL Apt.RedHat / CentOS / Yum
Установка из PGXN
После установки указанных выше зависимостей используйте PGXN client (доступный в виде пакетов Homebrew, Apt и Yum под именемpgxnclient) для загрузки, компиляции и установки pg_clickhouse:
Сборка и установка
Чтобы собрать и установить библиотеку ClickHouse иpg_clickhouse, выполните:
pg_config:
curl-config не находится в PATH на вашем хосте, вы можете явно указать путь:
gmake:
pg_config установлен и доступен в переменной path. Если вы
использовали для установки PostgreSQL систему управления пакетами, например RPM, убедитесь, что
пакет -devel тоже установлен. При необходимости укажите процессу сборки, где
его найти:
prefix команде install (но не другим целям make):
postgresql.conf]:
Тестирование
Чтобы запустить набор тестов после установки расширения, выполнитеПодключение
После установкиpg_clickhouse его можно подключить к базе данных, подключившись
под суперпользователем и выполнив:
pg_clickhouse и все связанные с ним объекты в
конкретную схему, используйте предложение SCHEMA для указания схемы, например:
Зависимости
Для расширенияpg_clickhouse требуются PostgreSQL 14 или новее, libcurl,
libuuid. Для сборки расширения требуются компиляторы C и C++, libSSL, GNU
make и CMake.
Дорожная карта
Наш главный приоритет — полностью реализовать pushdown для аналитических рабочих нагрузок, прежде чем добавлять возможности DML. Наша дорожная карта:- Добиться оптимального планирования для оставшихся 10 запросов TPC-H без pushdown
- Протестировать и исправить pushdown для запросов ClickBench
- Поддержать прозрачный pushdown всех агрегатных функций PostgreSQL
- Поддержать прозрачный pushdown всех функций PostgreSQL
- Разрешить настройки ClickHouse на уровне сервера и сеанса через CREATE SERVER и GUC
- Поддержать все типы данных ClickHouse
- Поддержать легковесные DELETE и UPDATE
- Поддержать батч-вставку через COPY
- Добавить функцию для выполнения произвольного запроса к ClickHouse и возврата его результатов в виде таблицы
- Добавить поддержку pushdown для запросов UNION, если все они обращаются к удалённой базе данных
Авторы
Авторские права
- Авторские права (c) 2025-2026, ClickHouse
- Отдельные части: авторские права (c) 2023-2025, Ildus Kurbangaliev
- Отдельные части: авторские права (c) 2019-2023, Adjust GmbH
- Отдельные части: авторские права (c) 2012-2019, PostgreSQL Global Development Group