DataStore のデバッグ
DataStore は、データパイプラインを理解し、最適化するための包括的なデバッグツール群を提供します。
デバッグツールの概要
| ツール | 目的 | 使用タイミング |
|---|---|---|
explain() | 実行計画を確認 | どの SQL が実行されるかを把握する |
| Profiler | パフォーマンスを測定 | 遅い処理を特定する |
| Logging | 実行の詳細を記録・確認 | 予期しない動作をデバッグする |
クイック決定マトリックス
| 目的 | ツール | コマンド |
|---|---|---|
| 実行計画を確認する | explain() | ds.explain() |
| パフォーマンスを測定する | Profiler | config.enable_profiling() |
| SQL クエリをデバッグする | Logging | config.enable_debug() |
| 上記すべて | 組み合わせ | 以下を参照 |
クイックセットアップ
すべてのデバッグを有効にする
explain() メソッド
実行前にクエリの実行計画を確認します。
出力結果:
詳細は explain() のドキュメント を参照してください。
プロファイリング
各処理の実行時間を計測します。
出力:
詳細は Profiling Guide を参照してください。
ロギング
詳細な実行ログを確認します。
ログ出力例:
詳細については、ログ設定 を参照してください。
よくあるデバッグシナリオ
1. クエリが想定どおりの結果を返さない
2. クエリの実行が遅い
3. エンジン選択を理解する
4. キャッシュ関連の問題のデバッグ
ベストプラクティス
1. デバッグは本番環境ではなく開発環境で行う
2. 大きなクエリを実行する前に explain() を使う
3. 最適化の前にプロファイリングする
4. 結果が期待どおりでない場合は SQL を確認する
デバッグツールの概要
| ツール | コマンド | 出力 |
|---|---|---|
| Explain plan | ds.explain() | 実行ステップ + SQL |
| Verbose explain | ds.explain(verbose=True) | + メタデータ |
| SQL の表示 | ds.to_sql() | SQL クエリ文字列 |
| デバッグ有効化 | config.enable_debug() | 詳細なログ |
| プロファイリング有効化 | config.enable_profiling() | タイミング情報 |
| Profiler レポート | get_profiler().report() | パフォーマンス概要 |
| Profiler クリア | get_profiler().reset() | タイミング情報をクリア |
次のステップ
- explain() メソッド - 実行計画の詳細なドキュメント
- プロファイリングガイド - パフォーマンス計測
- ロギング設定 - ログレベルとフォーマットの設定