- Основные интерфейсы — синхронный
Clientи нативныйAsyncClientна базе aiohttp вclickhouse_connect.driver. Пакет драйвера также предоставляет контексты запросов и вставки, вспомогательные средства для стриминга, поддержку DB-API и низкоуровневые HTTP-методы. - Пакет
clickhouse_connect.datatypesсериализует и десериализует типы ClickHouse, используя бинарный столбцовый формат ClickHouse Native. - Необязательные расширения Cython в
clickhouse_connect.drivercускоряют типовые пути сериализации, преобразования и буферизации. На платформах, где эти расширения нельзя собрать, по-прежнему доступен вариант на чистом Python. Экспериментальный подключаемый кодек на Rust может полностью заменить обработку формата Native. - Пакет поставляется с информацией о типах PEP 561, поэтому последующие инструменты проверки типов учитывают аннотации для публичного интерфейса драйвера, DB-API и поверхностей SQLAlchemy.
- Диалекты SQLAlchemy в
clickhouse_connect.cc_sqlalchemyвключают синхронные соединенияclickhousedb://и асинхронные соединенияclickhousedb+async://. Они поддерживают SQLAlchemy Core, отражение схемы, специфичные для ClickHouse секции запросов и движки таблиц, а также миграции Alembic. Базовые операции чтения и вставки ORM работают, но диалект рассчитан на аналитические рабочие нагрузки, а не на полноценную ORM-модель unit-of-work. - Основной драйвер и реализация ClickHouse Connect SQLAlchemy — предпочтительный способ подключения ClickHouse к Apache Superset. Используйте подключение к базе данных
ClickHouse Connectили строку подключения диалекта SQLAlchemyclickhousedb.
Стандартные клиенты ClickHouse Connect используют HTTP-интерфейс. Это позволяет работать с HTTP-балансировщиками нагрузки, прокси и распространёнными корпоративными средствами управления сетью. ClickHouse Connect также поддерживает экспериментальный backend chDB, работающий in-process chDB.
Требования и совместимость
Пакет включает скомпилированные wheel-пакеты там, где они доступны, и использует реализацию на чистом Python, если расширения Cython не удаётся собрать. PyArrow поддерживается для Python 3.10–3.14. Для Python 3.14 требуется PyArrow 22 или новее.
Установка
Установите ClickHouse Connect из PyPI с помощью команды pip:- Выполните
git cloneрепозитория GitHub. - Перейдите в корневой каталог проекта и выполните
pip install .. Система сборки автоматически устанавливает Cython для компиляции необязательных C-расширений.
Режимы сборки из исходного кода
Сборка из исходного кода поддерживает три режима. Режим по умолчанию и обязательный режим завершаются с ошибкой, если Cython недоступен илиcythonize() не отрабатывает. Режим пропуска не импортирует Cython.
Одновременная установка
CLICKHOUSE_CONNECT_SKIP_CYTHON=1 и CLICKHOUSE_CONNECT_REQUIRE_C=1 является ошибкой.
Резервные wheel-пакеты, создаваемые по умолчанию, не содержат скомпилированных расширений, но сохраняют теги платформы и интерпретатора. Только режим пропуска создаёт py3-none-any. pip может закэшировать резервный wheel-пакет, собранный из sdist из индекса, и повторно использовать его для совместимой версии Python и платформы уже после того, как проблема с компилятором будет устранена. Очистите кэш с помощью:
True:
clickhouse_connect.driverc.npconv также требует установленного NumPy.
Установленная версия доступна в clickhouse_connect.__version__.
Политика поддержки
Прежде чем сообщать о проблеме, обновите ClickHouse Connect до последнего релиза. Сообщать о проблемах следует в проекте GitHub. ClickHouse Connect ориентирован на активно поддерживаемые релизы ClickHouse на момент выхода каждого релиза драйвера. Он часто работает и с более старыми версиями сервера, но для более новых типов данных и возможностей протокола может потребоваться более новая версия сервера.Базовое использование
Подготовьте сведения о подключении
Чтобы подключиться к ClickHouse по HTTP(S), вам понадобится следующая информация:
Сведения о подключении для вашего сервиса ClickHouse Cloud доступны в консоли ClickHouse Cloud.
Выберите сервис и нажмите Connect:

curl.

Установление соединения
Ниже показаны два примера подключения к ClickHouse:- Подключение к серверу ClickHouse на localhost.
- Подключение к сервису ClickHouse Cloud.
Используйте экземпляр клиента ClickHouse Connect для подключения к серверу ClickHouse на localhost:
Используйте экземпляр клиента ClickHouse Connect для подключения к сервису ClickHouse Cloud:
Взаимодействие с базой данных
Чтобы выполнить команду ClickHouse SQL, используйте методcommand клиента:
insert с двумерным массивом строк и значений:
query клиента:
Встроенный backend chDB
Экспериментальный backend chDB выполняет запросы ClickHouse внутри процесса Python без HTTP-сервера. Установите дополнительный модульchdb, затем выберите backend через interface="chdb" или DSN chdb://:
path="/data/my_chdb" или используйте dsn="chdb:///data/my_chdb" для постоянного хранения. chDB поддерживает только один путь движка для каждого процесса. Async-клиент и внешние данные не поддерживаются.