Введение
Эта библиотека предоставляет расширения PostgreSQL для выполнения запросов chDB в Postgres, а также для копирования данных в различные форматы и объектные хранилища и обратно.Расширение chDB
Расширениеchdb выполняет запросы chDB. Функция chdb_query() выполняет
один запрос. Например, следующий запрос:
Модуль chdb_hook
Модульchdb_hook встраивается в команду COPY, позволяя копировать данные в S3, GCS, Azure Blob, файл или http URL, а также из них. В этом примере записи загружаются из нескольких CSV-файлов в S3 одной командой COPY:
times содержит записи из каждого загруженного файла:
Бенчмаркинг форматов
Бенчмарк сравнивает производительностьCOPY в [chDB_hook] с производительностью
[aws_s3], [pg_duckdb] и [pg_lake] примерно на 1 млн строк NYC Taxi dataset в
различных форматах.

Дополнительные измерения показывают относительно стабильную производительность
при импорте NYC Taxi dataset в различных форматах:

Архитектура
Расширения chDB и chDB_hook используют процессchdb_helper для выполнения
запросов chDB. Вспомогательный процесс отделяет потребление ресурсов chDB
от основного процесса Postgres, что даёт преимущество для нерегулярно выполняемых
сценариев, таких как загрузка данных из озера данных.
Зависимости
Расширениюchdb требуется PostgreSQL 15 или выше и библиотека chDB
версии 26.7.0 или выше (в настоящее время доступна только для Linux и macOS).
Проще всего установить её с помощью shell-скрипта lib.chdb.io:
make из раздела Установка.
Makefile загрузит статическую библиотеку libchdb и встроит её в
приложение при компиляции.
В Linux можно также сделать так, чтобы в процессе установки загружалась и устанавливалась
динамическая библиотека libchdb — для этого задайте export BUNDLE_LIBCHDB=1 перед выполнением
команд make из раздела Установка.
Сборка из исходного кода
Чтобы собрать chDB, достаточно выполнить следующее:gmake:
pg_config установлен и доступен в переменной path. Если PostgreSQL был установлен с помощью системы управления пакетами, например RPM, убедитесь, что установлен также пакет -devel. При необходимости укажите процессу сборки, где его искать:
/usr/local:
prefix цели install (но не другим целям make):
postgresql.conf]: