クイックスタート
プロファイリングの有効化
Profiler API
Profilerの取得
report()
出力例:
- 各ステップの所要時間 (ミリ秒)
- 親/合計時間に占める割合
- 操作の階層構造
- 各ステップのメタデータ (例:
ops_count、ops)
step()
clear()
summary()
レポートを理解する
ステップ名
実行時間
- 計画ステップ (Query Planning): 通常は高速
- 実行ステップ (SQL Execution): 実際の処理が行われる部分
- 転送ステップ (Result to DataFrame): データを pandas に変換する部分
ボトルネックの特定
プロファイリングパターン
単一のクエリをプロファイリングする
複数クエリのプロファイリング
アプローチの比較
最適化のヒント
1. SQL実行時間を確認する
SQL execution がボトルネックになっている場合:
- フィルターを追加してデータ量を減らす
- CSV ではなく Parquet を使用する
- 適切な索引が設定されているか確認する (データベースソースの場合)
2. I/O時間を確認する
read_csv または read_parquet がボトルネックになっている場合:
- Parquet を使用する (列指向かつ圧縮可能)
- 必要なカラムだけを読み取る
- 可能であればソース側でフィルタする
3. データ転送を確認する
to_df が遅い場合:
- 結果セットが大きすぎる可能性があります
- フィルターを追加するか、件数を制限します
- プレビューには
head()を使用します