メインコンテンツへスキップ
DataStore は、異なるバックエンドを使用して操作を実行できます。このガイドでは、実行エンジンの選択を設定し、最適化する方法を説明します。

利用可能なエンジン

エンジン説明最適な用途
auto操作ごとに最適なエンジンを自動的に選択一般用途 (デフォルト)
chdbすべての操作を ClickHouse SQL 経由で実行大規模データセット、集計
pandasすべての操作を pandas 経由で実行互換性テスト、pandas 固有の機能

エンジンの設定

グローバル設定

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


自動モード

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 Mode

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

使用するケース

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

パフォーマンス特性

操作の種類パフォーマンス
GroupBy/集約非常に高い (最大20倍高速)
複雑なフィルタリング非常に高い
ソートとても高い
単純な単一フィルタ高い (わずかなオーバーヘッドあり)

制限事項

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

pandas モード

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

使用する場面

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

パフォーマンス特性

操作の種類パフォーマンス
単純な単一操作良好
カスタム関数非常に優秀
複雑な集計chDB より低速
大規模データセットメモリ使用量が大きい

Cross-DataStore エンジン

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


エンジンの選択ロジック

自動モードの決定木

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

一部の関数では、エンジン を明示的に指定できます。
Function Config を参照してください。

性能比較

1,000万行に対するベンチマーク結果:
操作pandas (ms)chdb (ms)高速化率
GroupBy カウント3471719.93x
複合操作1,5352346.56x
複雑なパイプライン2,0473805.39x
Filter+Sort+Head1,5373504.40x
GroupBy 集計4061412.88x
単一フィルター2765260.52x
主なポイント:
  • chDB は集計や複雑なパイプラインで特に高い性能を発揮します
  • シンプルな単一操作では pandas のほうがやや高速です
  • 両方の利点を活かすには auto モードを使用してください

ベストプラクティス

1. まずは 自動モード を使う

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

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

4. explain() を使って実行内容を把握する


トラブルシューティング

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

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

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

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