- 主なインターフェイスは、
clickhouse_connect.driverにある同期Clientと、aiohttp ベースのネイティブなAsyncClientです。このドライバーパッケージは、クエリおよび insert のコンテキスト、streaming ヘルパー、DB-API サポート、さらに低レベルの HTTP メソッドも提供します。 clickhouse_connect.datatypesパッケージは、ClickHouse Native バイナリ列指向フォーマットを使用して、ClickHouse の型を serialize および deserialize します。clickhouse_connect.drivercのオプションの Cython 拡張機能は、一般的なシリアライゼーション、変換、buffering の処理を高速化します。拡張機能をビルドできないプラットフォームでも、pure Python の経路は引き続き利用可能です。- このパッケージには PEP 561 の型情報が含まれているため、下流の型チェッカーは、公開ドライバー、DB-API、SQLAlchemy の各インターフェイスに対する annotations を利用できます。
clickhouse_connect.cc_sqlalchemyの SQLAlchemy dialect は、SQLAlchemy Core、スキーマ reflection、ClickHouse 固有のクエリ clauses と table engines、そして Alembic の移行をサポートします。基本的な ORM の reads と inserts は動作しますが、この dialect は完全な unit-of-work ORM の振る舞いではなく、分析ワークロード向けに設計されています。- 中核ドライバーと ClickHouse Connect SQLAlchemy 実装は、ClickHouse を Apache Superset に接続するための推奨される方法です。
ClickHouse Connectデータベース接続、またはclickhousedbSQLAlchemy dialect 接続文字列を使用してください。
標準の ClickHouse Connect クライアントは HTTPインターフェイス を使用します。これにより、HTTP ロードバランサー、プロキシ、および一般的なエンタープライズ向けネットワーク制御に対応できます。ClickHouse Connect には、実験的なインプロセスの chDB バックエンドもあります。
要件と互換性
この package には、利用可能な環境向けのコンパイル済み wheel が含まれており、Cython 拡張機能をビルドできない場合は pure Python 実装にフォールバックします。PyArrow は Python 3.10 〜 3.14 をサポートしています。Python 3.14 では PyArrow 22 以降が必要です。
インストール
- GitHub リポジトリ を
git cloneします。 - プロジェクトのルートディレクトリに移動し、
pip install .を実行します。ビルドシステムにより、オプションの C 拡張機能をコンパイルするための Cython が自動的にインストールされます。
clickhouse_connect.__version__ で確認できます。
サポートポリシー
基本的な使い方
接続情報を確認する
ClickHouse Cloud サービスの詳細は、ClickHouse Cloud コンソールで確認できます。
サービスを選択し、Connect をクリックします。

curl コマンドの例として表示されます。

接続する
- localhost 上の ClickHouse サーバーに接続する。
- ClickHouse Cloud サービスに接続する。
ClickHouse Connect クライアントインスタンスを使用して、localhost 上の ClickHouseサーバーに接続します:
ClickHouse Connect クライアントインスタンスを使用して ClickHouse Cloud サービスに接続します。
データベースを操作する
command メソッドを使用します。
insert メソッドを使用し、行と値で構成された二次元配列を渡します。
query メソッドを使用します。
埋め込み chDB バックエンド
chdb extra をインストールし、interface="chdb" または chdb:// DSN でバックエンドを選択します。
path="/data/my_chdb" を渡すか、dsn="chdb:///data/my_chdb" を使用します。chDB では、プロセスごとに指定できる engine path は 1 つだけです。async クライアントや外部データには対応していません。