Введение
Начало работы
Тестовый пример: TPC-H
| Query | PostgreSQL | pg_clickhouse | Pushdown |
|---|---|---|---|
| [Запрос 1] | 4693 ms | 268 ms | ✔︎ |
| [Запрос 2] | 458 ms | 3446 ms | |
| [Запрос 3] | 742 ms | 111 ms | ✔︎ |
| [Запрос 4] | 270 ms | 130 ms | ✔︎ |
| [Запрос 5] | 337 ms | 1460 ms | ✔︎ |
| [Запрос 6] | 764 ms | 53 ms | ✔︎ |
| [Запрос 7] | 619 ms | 96 ms | ✔︎ |
| [Запрос 8] | 342 ms | 156 ms | ✔︎ |
| [Запрос 9] | 3094 ms | 298 ms | ✔︎ |
| [Запрос 10] | 581 ms | 197 ms | ✔︎ |
| [Запрос 11] | 212 ms | 24 ms | |
| [Запрос 12] | 1116 ms | 84 ms | ✔︎ |
| [Запрос 13] | 958 ms | 1368 ms | |
| [Запрос 14] | 181 ms | 73 ms | ✔︎ |
| [Запрос 15] | 1118 ms | 557 ms | |
| [Запрос 16] | 497 ms | 1714 ms | |
| [Запрос 17] | 1846 ms | 32709 ms | |
| [Запрос 18] | 5823 ms | 10649 ms | |
| [Запрос 19] | 53 ms | 206 ms | ✔︎ |
| [Запрос 20] | 421 ms | - | |
| [Запрос 21] | 1349 ms | 4434 ms | |
| [Запрос 22] | 258 ms | 1415 ms |
Сборка из исходного кода
Unix в общем
pg_config и
curl-config в путь, поэтому вы можете просто выполнить make (или
gmake), затем make install, а затем в своей базе данных
CREATE EXTENSION pg_clickhouse.
Debian / Ubuntu / APT
RedHat / CentOS / Yum
Установка из PGXN
pgxnclient) для загрузки, компиляции и установки pg_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 13 или новее, libcurl,
libuuid. Для сборки расширения требуются компиляторы C и C++, libSSL, GNU
make и CMake.
Дорожная карта
- Добиться оптимального планирования для оставшихся 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