- 主なインターフェイスは、
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 の経路は引き続き利用可能です。実験的にオプトインで利用できる Rust codec を使うと、Native format の processing を完全に置き換えることができます。- このパッケージには PEP 561 の型情報が含まれているため、下流の型チェッカーは、公開ドライバー、DB-API、SQLAlchemy の各インターフェイスに対する annotations を利用できます。
clickhouse_connect.cc_sqlalchemyの SQLAlchemy ダイアレクトには、同期のclickhousedb://接続と非同期のclickhousedb+async://接続が含まれます。これらは SQLAlchemy Core、スキーマ reflection、ClickHouse 固有のクエリ clauses と table engines、そして Alembic の移行をサポートします。基本的な ORM の reads と inserts は動作しますが、このダイアレクトは完全な unit-of-work ORM の振る舞いではなく、分析ワークロード向けに設計されています。- 中核ドライバーと ClickHouse Connect SQLAlchemy 実装は、ClickHouse を Apache Superset に接続するための推奨される方法です。
ClickHouse Connectデータベース接続、またはclickhousedbSQLAlchemy ダイアレクト接続文字列を使用してください。
標準の ClickHouse Connect クライアントは HTTPインターフェイス を使用します。これにより、HTTP ロードバランサー、プロキシ、および一般的なエンタープライズ向けネットワーク制御に対応できます。ClickHouse Connect には、実験的なインプロセスの chDB バックエンドもあります。
要件と互換性
この package には、利用可能な環境向けのコンパイル済み wheel が含まれており、Cython 拡張機能をビルドできない場合は pure Python 実装にフォールバックします。PyArrow は Python 3.10 〜 3.14 をサポートしています。Python 3.14 では PyArrow 22 以降が必要です。
インストール
pip を使用して、PyPI から ClickHouse Connect をインストールします。- GitHub リポジトリ を
git cloneします。 - プロジェクトのルートディレクトリに移動し、
pip install .を実行します。ビルドシステムにより、オプションの C 拡張機能をコンパイルするための Cython が自動的にインストールされます。
ソースビルドモード
ソースビルドは3つのモードをサポートします。デフォルトモードと必須モードでは、Cythonが利用できない場合やcythonize() が失敗した場合にビルドが失敗します。スキップモードではCythonをインポートしません。
CLICKHOUSE_CONNECT_SKIP_CYTHON=1 と CLICKHOUSE_CONNECT_REQUIRE_C=1 を同時に設定するとエラーになります。
デフォルトのフォールバックwheelにはコンパイル済み拡張機能は含まれませんが、プラットフォームとインタプリタのタグは保持されます。py3-none-any を生成するのはスキップモードのみです。pip はインデックスのsdistからビルドしたフォールバックwheelをキャッシュすることがあり、コンパイラの問題を解消した後も、互換性のあるPythonとプラットフォームに対してそのwheelを再利用してしまう場合があります。次のコマンドでキャッシュをクリアしてください:
True と出力されます:
clickhouse_connect.driverc.npconv を直接インポートする場合も、NumPy がインストールされている必要があります。
インストールされているバージョンは clickhouse_connect.__version__ で確認できます。
サポートポリシー
問題を報告する前に、ClickHouse Connect を最新リリースに更新してください。問題の報告は GitHub project に登録してください。ClickHouse Connect は、各ドライバーのリリース時点でアクティブにサポートされている ClickHouse リリースを対象としています。古いサーバーバージョンでも動作することはよくありますが、新しいデータ型やプロトコル機能では、より新しいサーバーが必要になる場合があります。基本的な使い方
接続情報を確認する
HTTP(S) で ClickHouse に接続するには、次の情報が必要です。
ClickHouse Cloud サービスの詳細は、ClickHouse Cloud コンソールで確認できます。
サービスを選択し、Connect をクリックします。

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

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