Skip to main content
DataStore では、異なるバックエンドを使用して操作を実行できます。このガイドでは、実行エンジンの選択を設定して最適化する方法を説明します。

利用可能なエンジン

エンジンの設定

グローバル設定

現在のエンジンを確認する


自動モード

auto モード (デフォルト) では、DataStore が各操作に応じて最適なエンジンを選択します。

chDB で実行される操作

  • SQL 互換のフィルタリング (filter(), where())
  • カラムの選択 (select())
  • ソート (sort(), orderby())
  • グループ化と集約 (groupby().agg())
  • 結合 (join(), merge())
  • 重複の排除 (distinct(), drop_duplicates())
  • 件数の制限 (limit(), head(), tail())

pandas で実行される操作

  • カスタムの apply 関数 (apply(custom_func))
  • カスタム集計を含む複雑なピボットテーブル
  • SQL では表現できない操作
  • 入力がすでに pandas の DataFrame である場合


chDB モード

すべての操作を ClickHouse SQL 経由で実行するよう強制します:

使用すべき場合

  • 大規模なデータセット (数百万行) の処理
  • 高負荷な集約ワークロード
  • SQL 最適化を最大限に活用したい場合
  • すべての操作で一貫した動作が求められる場合

パフォーマンス特性

制限事項

  • カスタムのPython関数はサポートされない場合があります
  • pandas固有の一部機能では変換が必要です

pandas モード

すべての操作を pandas 経由で実行します:

使用するケース

  • pandas との互換性テスト
  • pandas 固有の機能を使う場合
  • pandas 関連の問題をデバッグする場合
  • データがすでに pandas 形式である場合

パフォーマンス特性


Cross-DataStore エンジン

異なるDataStore間でカラムを組み合わせる操作用に、エンジンを設定します:


エンジンの選択ロジック

自動モードの判定フロー

関数レベルのオーバーライド

一部の関数では、使用する engine を明示的に設定できます。
詳しくは、Function Configを参照してください。

パフォーマンス比較

1,000万行におけるベンチマーク結果: 主なポイント:
  • chDB は集計や複雑なパイプラインで特に高い性能を発揮します
  • pandas は単純な単一操作ではわずかに高速です
  • 両方の長所を活かすには auto モードを使用してください

ベストプラクティス

1. まずは自動モードから

2. 強制する前にプロファイリングを行う

3. 特定のワークロードで使用するエンジンを強制する

4. explain() を使って実行内容を理解する


トラブルシューティング

問題: 動作が想定より遅い

問題: chdb モードではサポートされていない操作

問題: 大量のデータによるメモリ不足

パフォーマンスモード大規模な集計ワークロードを実行していて、pandas の出力互換性 (行の順序、MultiIndex、dtype の補正) を厳密に保つ必要がない場合は、パフォーマンスモード の使用を検討してください。これにより、エンジンは自動的に chdb に設定され、pandas 互換性に伴うオーバーヘッドがすべて取り除かれます。
最終更新日 2026年7月23日