Introducción
- La interfaz principal es el objeto
Clientdel paqueteclickhouse_connect.driver. Ese paquete principal también incluye varias clases auxiliares y funciones de utilidad para comunicarse con el servidor de ClickHouse, así como implementaciones de “context” para la gestión avanzada de consultas de inserción y selección. - El paquete
clickhouse_connect.datatypesproporciona una implementación base y subclases para todos los tipos de datos no experimentales de ClickHouse. Su función principal es la serialización y deserialización de datos de ClickHouse al formato binario columnar “Native” de ClickHouse, utilizado para lograr el transporte más eficiente entre ClickHouse y las aplicaciones cliente. - Las clases Cython/C del paquete
clickhouse_connect.cdriveroptimizan algunas de las serializaciones y deserializaciones más habituales para ofrecer un rendimiento significativamente superior al de Python puro. - El paquete
clickhouse_connect.cc_sqlalchemyincluye un dialecto de SQLAlchemy construido sobre los paquetesdatatypesydbi. Esta implementación admite la funcionalidad Core de SQLAlchemy, incluidas consultasSELECTconJOIN(INNER,LEFT OUTER,FULL OUTER,CROSS), cláusulasWHERE,ORDER BY,LIMIT/OFFSET, operacionesDISTINCT, sentencias de eliminación ligeraDELETEcon condicionesWHERE, reflexión de tablas y operaciones DDL básicas (CREATE TABLE,CREATE/DROP DATABASE). Aunque no admite características avanzadas de ORM ni funcionalidades DDL avanzadas, ofrece capacidades de consulta sólidas, adecuadas para la mayoría de las cargas de trabajo analíticas sobre la base de datos orientada a OLAP de ClickHouse. - El controlador principal y la implementación de ClickHouse Connect SQLAlchemy son el método preferido para conectar ClickHouse a Apache Superset. Utilice la conexión de base de datos
ClickHouse Connecto la cadena de conexión del dialecto SQLAlchemyclickhousedb.
El controlador oficial de Python ClickHouse Connect utiliza el protocolo HTTP para comunicarse con el servidor de ClickHouse. Esto permite la compatibilidad con balanceadores de carga HTTP y funciona bien en entornos empresariales con cortafuegos y proxies, pero ofrece una compresión y un rendimiento ligeramente inferiores en comparación con el protocolo nativo basado en TCP, y no admite algunas funciones avanzadas, como la cancelación de consultas. En algunos casos de uso, puede convenir utilizar uno de los controladores de Python de la comunidad que usan el protocolo nativo basado en TCP.
Requisitos y compatibilidad
¹ClickHouse Connect se ha probado explícitamente en las plataformas indicadas. Además, se compilan ruedas binarias no probadas (con optimización en C) para todas las arquitecturas compatibles con el excelente proyecto
cibuildwheel. Por último, como ClickHouse Connect también puede ejecutarse como Python puro, la instalación desde el código fuente debería funcionar en cualquier instalación reciente de Python.
²La compatibilidad con SQLAlchemy se limita a la funcionalidad de Core (consultas, DDL básico). Las funcionalidades de ORM no son compatibles. Consulta la documentación de SQLAlchemy Integration Support para obtener más información.
³Por lo general, ClickHouse Connect funciona bien con versiones fuera del rango de compatibilidad oficial.
Instalación
pip install clickhouse-connect
ClickHouse Connect también puede instalarse desde el código fuente:
- haga
git clonedel repositorio de GitHub. - (Opcional) ejecute
pip install cythonpara compilar y habilitar las optimizaciones de C/Cython - cambie al directorio raíz del proyecto y ejecute
pip install .
Política de soporte
Uso básico
Obtén los detalles de conexión
Los detalles de su servicio de ClickHouse Cloud están disponibles en la consola de ClickHouse Cloud.
Seleccione un servicio y haga clic en Connect:
Elija HTTPS. Los detalles de conexión se muestran en un comando
curl de ejemplo.
Si usa ClickHouse autogestionado, los detalles de conexión los establece su administrador de ClickHouse.
Establecer una conexión
- Conexión a un servidor de ClickHouse en localhost.
- Conexión a un servicio de ClickHouse Cloud.
Usa una instancia cliente de ClickHouse Connect para conectarte a un servidor de ClickHouse en localhost:
Usa una instancia del cliente ClickHouse Connect para conectarte a un servicio de ClickHouse Cloud:
Interactúa con tu base de datos
command del cliente:
insert del cliente con un array bidimensional de filas y valores:
query del cliente: