# clickhouse-sqlalchemy **Repository Path**: nutquant/clickhouse-sqlalchemy ## Basic Information - **Project Name**: clickhouse-sqlalchemy - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-09 - **Last Updated**: 2024-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ClickHouse SQLAlchemy ===================== ClickHouse dialect for SQLAlchemy to `ClickHouse database `_. .. image:: https://img.shields.io/pypi/v/clickhouse-sqlalchemy.svg :target: https://pypi.org/project/clickhouse-sqlalchemy .. image:: https://coveralls.io/repos/github/xzkostyan/clickhouse-sqlalchemy/badge.svg?branch=master :target: https://coveralls.io/github/xzkostyan/clickhouse-sqlalchemy?branch=master .. image:: https://img.shields.io/pypi/l/clickhouse-sqlalchemy.svg :target: https://pypi.org/project/clickhouse-sqlalchemy .. image:: https://img.shields.io/pypi/pyversions/clickhouse-sqlalchemy.svg :target: https://pypi.org/project/clickhouse-sqlalchemy .. image:: https://img.shields.io/pypi/dm/clickhouse-sqlalchemy.svg :target: https://pypi.org/project/clickhouse-sqlalchemy .. image:: https://github.com/xzkostyan/clickhouse-sqlalchemy/actions/workflows/actions.yml/badge.svg :target: https://github.com/xzkostyan/clickhouse-sqlalchemy/actions/workflows/actions.yml Documentation ============= Documentation is available at https://clickhouse-sqlalchemy.readthedocs.io. Usage ===== Supported interfaces: - **native** [recommended] (TCP) via `clickhouse-driver ` - **async native** (TCP) via `asynch ` - **http** via requests Define table .. code-block:: python from sqlalchemy import create_engine, Column, MetaData from clickhouse_sqlalchemy import ( Table, make_session, get_declarative_base, types, engines ) uri = 'clickhouse+native://localhost/default' engine = create_engine(uri) session = make_session(engine) metadata = MetaData(bind=engine) Base = get_declarative_base(metadata=metadata) class Rate(Base): day = Column(types.Date, primary_key=True) value = Column(types.Int32) __table_args__ = ( engines.Memory(), ) Rate.__table__.create() Insert some data .. code-block:: python from datetime import date, timedelta from sqlalchemy import func today = date.today() rates = [ {'day': today - timedelta(i), 'value': 200 - i} for i in range(100) ] And query inserted data .. code-block:: python session.execute(Rate.__table__.insert(), rates) session.query(func.count(Rate.day)) \ .filter(Rate.day > today - timedelta(20)) \ .scalar() License ======= ClickHouse SQLAlchemy is distributed under the `MIT license `_.