クエリ プロファイル
クエリプロファイルを使用して、クエリ実行の詳細を視覚化できます。 クエリプロファイルは、クエリ実行中のパフォーマンスのボトルネックのトラブルシューティングに役立ちます。 例えば:
- 各クエリ演算子と、費やした時間、処理された行数、処理された行数、メモリ消費量などの関連するメトリクスを視覚化できます。
- クエリ実行の最も遅い部分を一目で特定し、クエリに対する変更の影響を評価できます。
- SQL 文の一般的な誤り (エクスプロード・ジョインやフル・テーブル・スキャンなど) を検出して修正できます。
必要条件
クエリ プロファイルを表示するには、クエリの所有者であるか、クエリを実行したSQLウェアハウスに対する少なくとも CAN MONITOR アクセス許可 を持っている必要があります。
クエリ プロファイルを表示する
次の手順で、クエリ履歴からクエリプロファイルを表示できます。
-
サイドバー
[クエリー履歴 ] をクリックします。
-
クエリの名前をクリックします。 クエリの詳細パネルが画面の右側に表示されます。
クエリの概要には、次のものが含まれます。
- クエリの状態: クエリには、現在のステータス ( キュー登録済み 、 実行中 、 完了 、 失敗 、 またはキャンセル 済み) のタグが付けられます。
- ユーザーとコンピュートの詳細: このクエリ実行のユーザー名、コンピュートの種類、ランタイムの詳細を参照してください。
- 身分証明書: これは、特定のクエリ実行に関連付けられた汎用一意識別子 (UUID) です。
- クエリステートメント: このセクションには、完全なクエリ ステートメントが含まれています。クエリが長すぎてプレビューに表示できない場合は、 ...全文を表示するための行数が増え ました。
- Query メトリクス: クエリ分析の一般的なメトリクスは、クエリテキストの下に表示されます。 一部のメトリクスとともに表示されるフィルター アイコンは、スキャン中にプルーニングされたデータの割合を示します。
- クエリ プロファイルを参照してください。 この概要には、クエリ プロファイルの有向非巡回グラフ (DAG) のプレビューが示されています。これは、クエリの複雑さと実行フローをすばやく見積もるのに役立ちます。[ クエリ プロファイルの表示 ] をクリックして、詳細な DAG を開きます。
- このクエリの最長演算子を参照してください。 このボタンをクリックすると、[ Top operators ] パネルが開きます。このパネルには、クエリで最も長く実行されている演算子が表示されます。
- 実時間表示のクエリ: スケジューリングの開始からクエリ実行の終了までの合計経過時間がサマリーとして提供されます。スケジュール設定、クエリの最適化とファイルのプルーニング、および実行時間の詳細な内訳が概要の下に表示されます。
- クエリソース: リストされたオブジェクトの名前をクリックして、クエリソースに移動します。
- 集計タスク時間: すべてのノードのすべてのコアでクエリを実行するのにかかった合計時間を表示します。複数のタスクが並行して実行される場合は、ウォールクロックの期間よりも大幅に長くなる可能性があります。タスクが使用可能なノードを待機していた場合は、ウォールクロックの期間よりも短くなる可能性があります。
- 入力/出力 (IO): クエリの実行中に読み取られたデータと書き込まれたデータの詳細を表示します。
-
[ クエリ プロファイルの表示 ] をクリックします。画面の右側に [Details ] パネルが開きます。
[Query profile is not available ] が表示されている場合、このクエリに使用できるプロファイルはありません。クエリ プロファイルは、 クエリ キャッシュから実行されるクエリでは使用できません。 クエリ キャッシュを回避するには、 LIMIT
の変更や削除など、クエリに簡単な変更を加えます。
クエリ プロファイルの詳細を表示する
詳細なクエリプロファイルには、パネルの左側にサマリーメトリクス、右側に演算子のグラフビューが含まれています。
Explore query メトリクス
クエリ プロファイルの左側には、次のタブがあります。
-
Details: クエリの概要メトリクス を表示する[Details] パネルを開きます。
-
上位のオペレーター: [ 上位演算子 ] パネルが開き、クエリで使用される最も負荷の高い演算子が表示されます。これは、最適化の機会を特定するのに役立ちます。
-
クエリ テキスト: クエリの全文を表示する [クエリ] テキスト パネルを開きます。
Photon以外の一部の操作はグループとして実行され、共通のメトリクスを共有します。 この場合、すべての操作は、特定のメトリクスの親演算子と同じ値を持ちます。
DAGの探索
クエリ プロファイルの右半分には、クエリの有向非巡回グラフ (DAG) が表示されます。グラフビューには、 Time spent 、 Memory peak 、 Rows などのメトリクスが表示されます。 各メトリクスをクリックすると、表示されるレポートメトリクスが変更されます。
DAG は、次の方法で操作できます。
- 検索バーを使用して、さまざまな演算子または列を強調表示します。
- ズームインまたはズームアウトして、DAG のさまざまな部分に焦点を合わせます。
- 演算子をクリックすると、詳細なメトリクスと説明が表示されます。 グラフの右側にあるパネルには、操作の詳細が表示されます。
Databricks SQL クエリの場合は、Apache Spark UI でクエリ プロファイルを表示することもできます。ページの上部付近にある ケバブメニューをクリックし、[ Spark UIで開く ]をクリックします。
デフォルトでは、一部のオペレーションのメトリクスは非表示になっています。これらの操作がパフォーマンスのボトルネックの原因になる可能性は低いです。すべてのオペレーションの情報を表示し、追加のメトリクスを表示するには、ページの上部にある [ ] をクリックし、[ 詳細モードを有効にする ] をクリックします。
一般的な操作
最も一般的な操作は次のとおりです。
- スキャン : データはデータソースから読み取られ、行として出力されました。
- 結合 :複数のリレーションの行が1つの行にまとめられました(インターリーブ)。
- ユニオン : 同じスキーマを使用する複数のリレーションの行が 1 つの行セットに連結されました。
- シャッフル : データが再配布または再パーティション分割されました。 シャッフル操作は、クラスター上のエグゼキューター間でデータを移動するため、リソースに関してコストがかかります。
- ハッシュ/ソート : 行はキーでグループ化され、各グループ内の
SUM
、COUNT
、MAX
などの集計関数を使用して評価されました。 - フィルター : 入力は、
WHERE
句などの条件に従ってフィルタリングされ、行のサブセットが返されます。
クエリ プロファイルを共有する
クエリ プロファイルを別のユーザーと共有するには:
- クエリ履歴を表示します。
- クエリの名前をクリックします。
- クエリを共有するには、次の 2 つの選択肢があります。
- 他のユーザーがクエリに対する CAN MANAGE アクセス許可を持っている場合は、クエリ プロファイルの URL を共有できます。 [共有 ] をクリックします。URL がクリップボードにコピーされます。
- それ以外の場合、他のユーザーが CAN MANAGE アクセス許可を持っていないか、ワークスペースのメンバーでない場合は、クエリ プロファイルを JSON オブジェクトとしてダウンロードできます。 ダウンロード 。 JSON ファイルがローカル システムにダウンロードされます。
クエリ プロファイルのインポート
クエリプロファイルのJSONをインポートするには:
-
クエリ履歴を表示します。
-
右上のケバブメニュー
をクリックし、[ クエリプロファイルのインポート(JSON)] を選択します。
-
ファイルブラウザで、共有されたJSONファイルを選択し、[ 開く ]をクリックします。 JSON ファイルがアップロードされ、クエリ プロファイルが表示されます。
クエリプロファイルをインポートすると、ブラウザセッションに動的にロードされ、ワークスペースには保持されません。 表示する場合は、その都度再インポートする必要があります。
-
インポートしたクエリ プロファイルを閉じるには、ページの上部にある [X ] をクリックします。
クエリ プロファイルにアクセスする
クエリ プロファイルには、UI の次の部分からアクセスすることもできます。
-
SQL エディタから : クエリの実行中および実行後に、ページの下部付近にリンクに、経過時間と返された行数が表示されます。そのリンクをクリックして、 クエリの詳細 パネルを開きます。[ クエリ プロファイルの表示 ] をクリックします。
新しい SQL エディターが有効になっている場合 (パブリック プレビュー)、リンクはノートブックと同じように表示されます。
-
ノートブックから : ノートブックが SQLウェアハウスまたはサーバレス コンピュートに接続されている場合は、クエリを含むセルの下のリンクを使用してクエリ プロファイルにアクセスできます。 [ パフォーマンスの表示 ] をクリックして、実行履歴を開きます。 ステートメントをクリックして、 クエリの詳細 パネルを開きます。
-
DLT パイプライン UI から : パイプライン UI の クエリー履歴 タブからクエリ履歴とプロファイルにアクセスできます。「DLT パイプラインのクエリ履歴にアクセスする」を参照してください。
-
ジョブ UI から : SQLウェアハウスとサーバレス コンピュートでジョブ実行のクエリ プロファイルにアクセスできます。 サーバレス コンピュートでのジョブ実行については、ジョブ UI でクエリの詳細を表示する方法については、 ジョブ実行のクエリ詳細の表示 を参照してください。