Введение
- Основной интерфейс — объект
Clientв пакетеclickhouse_connect.driver. Этот базовый пакет также включает различные вспомогательные классы и служебные функции для взаимодействия с сервером ClickHouse, а также реализации “context” для расширенного управления запросами вставки и выборки. - Пакет
clickhouse_connect.datatypesпредоставляет базовую реализацию и подклассы для всех неэкспериментальных типов данных ClickHouse. Его основная функция — сериализация и десериализация данных ClickHouse в бинарный столбцовый формат ClickHouse “Native”, который обеспечивает максимально эффективную передачу данных между ClickHouse и клиентскими приложениями. - Классы Cython/C в пакете
clickhouse_connect.cdriverоптимизируют некоторые из наиболее распространённых операций сериализации и десериализации, обеспечивая значительно более высокую производительность по сравнению с чистым Python. - В пакете
clickhouse_connect.cc_sqlalchemyесть диалект SQLAlchemy, построенный на основе пакетовdatatypesиdbi. Эта реализация поддерживает возможности SQLAlchemy Core, включая запросыSELECTсJOIN(INNER,LEFT OUTER,FULL OUTER,CROSS), секцииWHERE,ORDER BY, операцииLIMIT/OFFSET, операцииDISTINCT, операторы легковесногоDELETEс условиямиWHERE, отражение таблиц и базовые операции DDL (CREATE TABLE,CREATE/DROP DATABASE). Хотя она не поддерживает расширенные возможности ORM или DDL, она предоставляет надёжные возможности выполнения запросов, подходящие для большинства аналитических рабочих нагрузок в OLAP-ориентированной базе данных ClickHouse. - Основной драйвер и реализация ClickHouse Connect SQLAlchemy являются предпочтительным способом подключения ClickHouse к Apache Superset. Используйте подключение к базе данных
ClickHouse Connectили строку подключения диалекта SQLAlchemyclickhousedb.
Официальный Python-драйвер ClickHouse Connect использует HTTP-протокол для взаимодействия с сервером ClickHouse. Это обеспечивает поддержку HTTP-балансировщиков нагрузки и хорошо работает в корпоративных средах с межсетевыми экранами и прокси, но уступает нативному TCP-протоколу по степени сжатия и производительности, а также не поддерживает некоторые расширенные возможности, такие как отмена запроса. В некоторых сценариях стоит рассмотреть использование одного из Community Python drivers, которые используют нативный TCP-протокол.
Требования и совместимость
¹ClickHouse Connect был протестирован на перечисленных платформах. Кроме того, для всех архитектур, поддерживаемых отличным проектом
cibuildwheel, собираются непроверенные бинарные wheel-пакеты (с оптимизацией на C). Наконец, поскольку ClickHouse Connect может работать и в режиме pure Python, установка из исходного кода должна работать в любой современной среде Python.
²Поддержка SQLAlchemy ограничена функциональностью Core (запросы, базовый DDL). Возможности ORM не поддерживаются. Подробности см. в документации SQLAlchemy Integration Support.
³ClickHouse Connect в целом хорошо работает и с версиями вне официально поддерживаемого диапазона.
Установка
pip install clickhouse-connect
ClickHouse Connect также можно установить из исходного кода:
- выполните
git cloneрепозитория на GitHub. - (Необязательно) выполните
pip install cython, чтобы собрать пакет и включить оптимизации C/Cython - перейдите в корневой каталог проекта с помощью
cdи выполнитеpip install .
Политика поддержки
Базовое использование
Подготовьте сведения о подключении
Сведения о подключении для вашего сервиса ClickHouse Cloud доступны в консоли ClickHouse Cloud.
Выберите сервис и нажмите Connect:
Выберите HTTPS. Сведения о подключении будут показаны в примере команды
curl.
Если вы используете самоуправляемый ClickHouse, сведения о подключении задаёт ваш администратор ClickHouse.
Установление соединения
- Подключение к серверу ClickHouse на localhost.
- Подключение к сервису ClickHouse Cloud.
Используйте экземпляр клиента ClickHouse Connect для подключения к серверу ClickHouse на localhost:
Используйте экземпляр клиента ClickHouse Connect для подключения к сервису ClickHouse Cloud:
Работа с базой данных
command клиента:
insert клиента, передав двумерный массив строк и значений:
query клиента: