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