クエリ プロファイル
クエリプロファイルを使用して、クエリ実行の詳細を視覚化できます。 クエリ プロファイルは、クエリの実行中に発生するパフォーマンスのボトルネックのトラブルシューティングに役立ちます。 例えば:
各クエリ演算子と、費やした時間、処理された行数、処理された行数、メモリ消費量などの関連するメトリクスを視覚化できます。
クエリ実行の最も遅い部分を一目で特定し、クエリに対する変更の影響を評価できます。
結合の爆発やテーブル全体のスキャンなど、SQL ステートメントの一般的な間違いを発見して修正できます。
クエリプロファイルを表示する
クエリ履歴からクエリプロファイルを表示するには、次の手順を使用します。
クエリ履歴を表示します。
クエリの名前をクリックします。 クエリの詳細パネルが画面の右側に表示されます。
[ クエリ プロファイルの表示] をクリックします。
注:
「Query profile is not available」と表示されている場合、このクエリに使用できるプロファイルはありません。クエリ プロファイルは、クエリ キャッシュから実行されるクエリには使用できません。 クエリ キャッシュを回避するには、
LIMIT
の変更や削除など、クエリに簡単な変更を加えます。グラフ ビュー (デフォルト) でクエリ プロファイルを表示するには、 [グラフ ビュー]をクリックします。 クエリ プロファイルをツリーとして表示するには、[ ツリー ビュー] をクリックします。
グラフビューは、あるノードから別のノードへのデータの流れを視覚化するために最適化されています。
ツリー ビューは、最も実行時間の長い演算子の特定など、クエリのパフォーマンスに関する問題をすばやく見つけるために最適化されています。
グラフ ビューまたはツリー ビューでは、ページの上部にあるタブの 1 つをクリックして、クエリの各演算子の詳細を表示できます。
滞在時間: 各操作に費やされた合計時間。 タスクの合計時間も表示されます。
行: クエリの各演算子の影響を受ける行の数とサイズ。
ピーク メモリ: クエリの各演算子が消費したピーク メモリ。
注:
Photon以外の一部の操作はグループとして実行され、共通のメトリクスを共有します。 この場合、すべての操作は、特定のメトリクスの親演算子と同じ値を持ちます。
グラフビューでは、演算子をクリックして詳細なメトリクスを表示できます。 ツリー ビューでは、演算子の名前をクリックすると、関連する詳細を表示できます。
各ノードには、その操作のラベルが付けられています。 デフォルトでは、一部のオペレーションのメトリクスは非表示になっています。 これらの操作がパフォーマンスのボトルネックの原因になる可能性は低いです。 すべてのオペレーションの情報を表示し、追加のメトリクスを表示するには、ページの上部にある [ ] をクリックし、[ 詳細モードを有効にする] をクリックします。 最も一般的な操作は次のとおりです。
スキャン: データはデータソースから読み取られ、行として出力されました。
結合: 複数のリレーションの行が 1 つの行セットに結合 (インターリーブ) されました。
ユニオン: 同じスキーマを使用する複数のリレーションの行が、1つの行セットに連結されました。
シャッフル: データが再配布または再パーティション化されました。 シャッフル操作はクラスター上のエグゼキューター間でデータを移動するため、リソースに関してコストがかかります。
ハッシュ / ソート: 行はキーによってグループ化され、各グループ内で
SUM
、COUNT
、またはMAX
などの集計関数を使用して評価されました。フィルター: 入力は、
WHERE
句などの条件に従ってフィルター処理され、行のサブセットが返されます。(再利用) Exchange : シャッフルまたはブロードキャスト交換は、必要なパーティショニングに基づいてクラスター ノード間でデータを再分散するために使用されます。
Collect Limit: 返された行数は、
LIMIT
ステートメントを使用して切り捨てられました。Take Ordered And Project: クエリ結果の上位 N 行が返されました。
(オプション)Databricks SQL クエリの場合は、Apache Spark UI でクエリ プロファイルを表示することもできます。 ページの上部にある ケバブメニューをクリックし、[ Spark UIで開く]をクリックします。
クエリ プロファイルを閉じるには、パネルの下部にある [クエリ プロファイルを非表示 ] をクリックします。
クエリ プロファイルには、UI の次の部分からアクセスすることもできます。
SQL エディタから: クエリが完了すると、ページの下部付近にリンクが表示され、経過時間と返された行数が表示されます。 そのリンクをクリックして、 クエリの詳細 パネルを開きます。 [ クエリ プロファイルの表示] をクリックします。
注:
新しい SQL エディターが有効になっている場合 (パブリック プレビュー)、リンクはノートブックと同じように表示されます。
ノートブックから: ノートブックが SQLウェアハウスまたはサーバレス コンピュートに接続されている場合は、クエリを含むセルの下のリンクを使用してクエリ プロファイルにアクセスできます。 [ パフォーマンスの表示 ] をクリックして、実行履歴を開きます。 ステートメントをクリックして、 クエリの詳細 パネルを開きます。
Delta Live Tables パイプライン UI から: パイプライン UI のクエリー履歴 タブからクエリ履歴とプロファイルにアクセスできます。「Delta Live Tables パイプラインのクエリ履歴にアクセスする」を参照してください
ジョブUIから:これはサーバレスジョブにのみ適用されます。 ジョブUIからクエリプロファイルを開く方法については、 サーバレス コンピュート for ワークフロー で Databricks ジョブ を実行する を参照してください。
クエリ プロファイルの詳細を表示する
クエリ プロファイルには、クエリの最上位演算子が逆の順序で一覧表示され、最後の演算子が最初に一覧表示されます。 次のステップを使用して、クエリ プロファイルのさまざまな部分について理解します。
クエリプロファイルビューの上部にある [Time spent]、[ Rows]、 および [Peak memory ] ボタンを使用して、各カテゴリの最上位のメトリクスを表示します。
演算子をクリックすると、操作の詳細 (期間に関する説明とメトリクス、消費されたメモリ、返される行の数とサイズ、使用されたグループ化式と集計式、出力属性など) が表示されます。
演算子の詳細を閉じるには、[ クエリの詳細に戻る] をクリックします。
クエリ プロファイルを閉じるには、右側のパネルの下部にある [クエリ プロファイルを非表示 ] をクリックします。
クエリ プロファイルのインポート
クエリプロファイルの JSON をインポートするには:
クエリ履歴を表示します。
ケバブメニューをクリック右上にある をクリックし、クエリ プロファイル (JSON) のインポートを選択します。
ファイル ブラウザで、共有された JSON ファイルを選択し、 [開く]をクリックします。 JSON ファイルがアップロードされ、クエリ プロファイルが表示されます。
クエリ プロファイルをインポートすると、ブラウザ セッションに動的にロードされ、ワークスペースには保持されません。 表示するたびに再インポートする必要があります。
インポートしたクエリ プロファイルを閉じるには、ページ上部の [X ] をクリックします。
次のステップ
クエリ履歴 APIを使用したクエリ メトリクスへのアクセスについて学習します。