Awesome ClickHousePython

mymarilyn/clickhouse-driver

⭐ 1302 Python repository created 2017-05-10

The project "mymarilyn/clickhouse-driver" is a Python driver designed to interface with the ClickHouse database using a native TCP interface. It provides a robust and efficient way to communicate with ClickHouse servers, supporting both synchronous and asynchronous operations (the latter through a separate asynchronous wrapper). The driver supports a wide range of ClickHouse data types including various integer sizes, floating points, dates and times with timezone support, strings, enums, arrays, nullable types, booleans, UUIDs, decimals, IP addresses, low cardinality types, aggregate functions, tuples, nested structures, and maps. Key features include support for external data in query processing, query settings customization, compression, TLS encryption for secure connections, and the ability to stream query results block by block. It also provides detailed query progress information, server log reception, and supports multiple hosts for redundancy or load balancing. The driver adheres to the Python DB API 2.0 specification, making it familiar and easy to use for Python developers. Additionally, it optionally supports NumPy arrays for efficient numerical data handling. The project includes comprehensive documentation and examples demonstrating usage through both a pure client interface and a DB API interface, showcasing typical operations such as creating tables, inserting data, and querying results. The driver is actively maintained with badges indicating version, license, Python version compatibility, and test coverage. It is distributed under the MIT license, ensuring it is free and open for modification and distribution. Overall, this project is a critical tool for Python developers needing to interact with ClickHouse databases efficiently and securely, providing extensive type support and features tailored to ClickHouse's capabilities.

https://github.com/mymarilyn/clickhouse-driver

asynchronous-wrapperclickhousecompressiondata-typesdatabasedriverexternal-datamit-licensemultiple-hostsnativenative-tcp-interfacenumpy-supportpython-db-api-2.0python-driverquery-progressquery-settingsserver-logsstreaming-resultstls-supportyandex

Also in Python

ClickHouse/clickhouse-connect

ClickHouse Connect is a high-performance Python driver that enables seamless integration of ClickHouse with Python data tools like Pandas, SQLAlchemy, and Apache Superset for efficient data access and visualization.

xzkostyan/clickhouse-sqlalchemy

Clickhouse-sqlalchemy is a SQLAlchemy dialect that enables seamless interaction with ClickHouse databases, supporting multiple connection interfaces and providing ORM capabilities for efficient data analytics.

Infinidat/infi.clickhouse_orm

infi.clickhouse_orm is a Python ORM library that simplifies working with the ClickHouse database by enabling easy model definition, data insertion, and querying.

cloudflare/sqlalchemy-clickhouse

sqlalchemy-clickhouse is a SQLAlchemy dialect that enables seamless integration with the ClickHouse database for efficient data querying and manipulation.

maximdanilchenko/aiochclient

aiochclient is a lightweight asynchronous HTTP client for Python that provides efficient and type-safe interaction with ClickHouse databases, supporting streaming, lazy decoding, and high performance through optional speedups.

long2ice/asynch

An asynchronous Python driver for ClickHouse with native TCP interface support, enabling efficient database interactions using asyncio.

kszucs/pandahouse

Pandahouse is a Python library providing a Pandas interface to interact with ClickHouse databases via HTTP API for efficient data reading and writing.

jayvynl/django-clickhouse-backend

Django-clickhouse-backend is a Django database backend that enables seamless interaction with ClickHouse using Django ORM, supporting ClickHouse-specific features and efficient connection pooling.