メインコンテンツへスキップ
explain() メソッドは、DataStore クエリの実行計画を表示し、どのような処理が実行され、どのような SQL が生成されるかを把握するのに役立ちます。

基本的な使い方

構文

パラメータ:

出力フォーマット

標準出力

アイコンの凡例

verbose出力

verboseモードでは、各操作について追加情報が表示されます。これには、内部の行順序追跡メカニズムを含む完全なSQLクエリも含まれます。

3つの実行フェーズ

EXPLAIN の出力では、処理が次の3つのフェーズで示されます:

フェーズ 1: SQLクエリの構築 (遅延評価)

SQLにコンパイルされる操作:

フェーズ 2: 実行のタイミング

トリガーが発生すると:

フェーズ 3: DataFrame の処理

実行後の処理:

実行計画を理解する

ソース情報

  • file() - ClickHouseのfile()テーブル関数
  • 'CSVWithNames' - ヘッダー付きのファイルフォーマット
その他のソースタイプ:

フィルタ処理

適用される WHERE 句を表示します。

GroupBy と集計

GROUP BY のカラムと集計関数を表示します。

ソート操作

ORDER BY 句を示します。

操作の制限

LIMIT と OFFSET を表示します。

エンジン情報

verbose モードを使用すると、どのエンジンが使用されるかを確認できます。

プッシュダウン

  • はい: 操作はデータソース (SQL) で実行されます
  • いいえ: 操作の実行には pandas が必要です

基本的なクエリ

複雑な集計

SQL と pandas の併用

処理を完全に SQL に押し込めない場合、実行計画には複数のセグメントが表示されます。

explain() を使ったデバッグ

フィルタ条件の判定ロジックを確認する

カラムの選択を確認する

集約を理解する


ベストプラクティス

1. 大規模なクエリを実行する前の確認

2. Verboseを使ってデバッグする

3. to_sql() との比較

4. Pushdown の状態を確認する

最終更新日 2026年7月2日