メインコンテンツへスキップ

要件

  • Python 3.8+
  • 対応プラットフォーム: macOS および Linux (x86_64、ARM64)

インストール

使用方法

コマンドラインインターフェイス

コマンドラインから直接SQLクエリを実行します。

Pythonの基本的な使い方

接続ベースのAPI (推奨)

リソース管理とパフォーマンスを向上させるため:

データ入力方法

ファイルベースのデータソース

chDB は、ファイルを直接クエリするための 70 種類以上のデータフォーマットをサポートしています。

出力フォーマットの例

DataFrame の操作

旧DataFrame API

ステートフルセッション

セッションでは、複数の操作にわたってクエリの状態を保持できるため、複雑なワークフローを実現できます。

セッションの高度な機能

関連項目: test_stateful.py

Python DB-API 2.0 インターフェイス

既存のPythonアプリケーションとの互換性を確保するための標準的なデータベースインターフェイス:

ユーザー定義関数 (UDF)

カスタム Python 関数で SQL を拡張できます。

UDFの基本的な使い方

カスタムの戻り値型を使用する高度なUDF

UDFのベストプラクティス

  1. ステートレスな関数: UDFは、副作用のない純粋関数にする必要があります
  2. 関数内でのインポート: 必要なモジュールは、すべてUDF内でインポートする必要があります
  3. Stringの入出力: すべてのUDFパラメータはStringです (TabSeparatedフォーマット)
  4. エラー処理: 堅牢なUDFにするため、try-catchブロックを含めてください
  5. パフォーマンス: UDFは各行に対して呼び出されるため、パフォーマンスを最適化してください

ストリーミングクエリ処理

メモリ使用量を一定に保ちながら、大規模なデータセットを処理します。

Pythonテーブルエンジン

Pandas DataFrame にクエリを実行する

PyReader を使ったカスタムデータソースの読み取り

特殊なデータソース向けのカスタムデータリーダーを実装します。

パフォーマンスと最適化

ベンチマーク

chDB は、他の埋め込みエンジンと比べて一貫して優れた性能を発揮します。
  • DataFrame の操作: 分析クエリでは、従来の DataFrame ライブラリと比べて 2〜5 倍高速です
  • Parquet の処理: 主要な列指向エンジンに匹敵する性能です
  • メモリ効率: 他の選択肢よりメモリ使用量を抑えられます
ベンチマーク結果の詳細

パフォーマンスのヒント

GitHub リポジトリ

最終更新日 2026年6月19日