mymarilyn/clickhouse-driver
A Python driver providing native TCP interface support for efficient and secure interaction with ClickHouse databases, featuring extensive data type support and compliance with Python DB API 2.0.
The project "django-clickhouse-backend" is a Django database backend designed specifically for the ClickHouse database. It enables developers to use Django's ORM (Object-Relational Mapping) to interact directly with ClickHouse, aiming to provide an experience similar to using MySQL or PostgreSQL within Django. This backend leverages the clickhouse-driver as its DBAPI and clickhouse-pool for efficient connection pooling, ensuring optimized communication with the ClickHouse native interface. Key features include compatibility with most Django ORM functionalities to minimize learning curves, direct interaction with ClickHouse without intermediate storage or data synchronization, and support for ClickHouse-specific schema features such as table engines and indexes. It also supports various table migrations, test database creation, and integration with Django's TestCase and pytest-django frameworks. The backend accommodates most ClickHouse data types and advanced query features like SETTINGS in SELECT queries and the PREWHERE clause. Query results can be returned in columns and deserialized into numpy objects for efficient data handling. The project notes some limitations, such as lack of support for unique and foreign key constraints due to ClickHouse's nature, absence of transaction support, and potential issues with aggregation functions and outer joins. It also advises using ClickHouse server version 22.x or higher for best compatibility and warns about migration risks. Installation is straightforward via pip or manual setup, and configuration involves setting the database engine to "clickhouse_backend.backend" with optional parameters for host, port, user, and password. The project recommends using a database router to manage queries between ClickHouse and other databases like PostgreSQL, providing example code for routing based on model subclasses. Overall, django-clickhouse-backend facilitates seamless integration of ClickHouse into Django projects, enabling efficient big data event storage and querying while maintaining Django's ORM convenience.
https://github.com/jayvynl/django-clickhouse-backend
A Python driver providing native TCP interface support for efficient and secure interaction with ClickHouse databases, featuring extensive data type support and compliance with Python DB API 2.0.
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.
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.
infi.clickhouse_orm is a Python ORM library that simplifies working with the ClickHouse database by enabling easy model definition, data insertion, and querying.
sqlalchemy-clickhouse is a SQLAlchemy dialect that enables seamless integration with the ClickHouse database for efficient data querying and manipulation.
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.
An asynchronous Python driver for ClickHouse with native TCP interface support, enabling efficient database interactions using asyncio.
Pandahouse is a Python library providing a Pandas interface to interact with ClickHouse databases via HTTP API for efficient data reading and writing.