クエリ パフォーマンスの分析情報

Important

この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。

このページでは、クエリ履歴で返Azure Databricksパフォーマンスに関する分析情報とその対処方法について説明します。

クエリを実行すると、Azure Databricksは、パフォーマンスを向上させる機会を特定する分析情報を返す可能性があります。

クエリの分析情報と推奨事項を見つける

分析情報は 、クエリ履歴クエリ プロファイルに表示されます。 クエリの詳細パネルには、分析情報の概要が表示され、タスクの合計期間に対する推定効果によってランク付けされます。 クエリ プロファイル の [パフォーマンス分析情報 ] タブには、各分析情報の詳細が表示されます。

Genie Code を使用して最適化する

クエリに実用的な分析情報がある場合は、[ 最適化 ] を選択して Genie Code を開きます。 クエリの変更を必要とする分析情報のために、Genie Code はクエリを書き換え、承認の変更を提示します。 テーブルまたはコンピューティングの変更に関連する分析情報については、Genie Code によって推奨されるアクションがプレーン言語テキストとしてまとめられます。

Genie Code の使用の詳細については、「 Genie Code」を参照してください。

クエリの最適化に関する分析情報

COVERAGE_FILTER_KEYS_CLUSTERING

テーブルは、テーブル スキャン中にフィルターで使用されない 1 つ以上のキーによって クラスター化 されます。

推奨事項: クラスタリング キーにフィルターを追加して、読み取ったバイト数を減らします。

COVERAGE_FILTER_KEYS_PARTITIONING

テーブルは、テーブル スキャン中にフィルターで使用されない 1 つ以上のキーによって パーティション分割 されます。

推薦: パーティション キーにフィルターを追加して、読み取ったバイト数を減らします。

COVERAGE_PHOTON

Photon はこの操作を高速化できないため、クエリでは標準ランタイム エンジンが使用されます。

推薦:Photon の制限事項を確認し、サポートされている実行パスを使用するようにクエリを調整します。

爆発的結合

結合により、読み取るよりも大幅に多くの行が生成されます。

推薦: 必要な結果サブセットを決定し、結合条件を更新するか、両方のリレーションからの入力行数を減らします。

FLOW_FULL_RECOMPUTE

フロー完全な再計算として実行されます。

推薦: 読み取ったバイト数を減らすために 、増分サポート のクエリを書き換えます。

REDUNDANT_AGGREGATION

集計操作でクエリ結果が変更されませんでした。

推薦: 集計を削除するか、 主キー制約と外部キー制約を適用します。

SELECTIVE_JOIN

結合によって生成される行数は、読み取りよりも大幅に少なくなります。

推奨事項: 必要な結果サブセットを決定し、結合の前にフィルターを追加して入力行を減らします。

WIDE_PROJECTION

このクエリでは、テーブルのすべての列が 投影 されます。

推奨事項: 読み取ったバイト数を減らすために必要な列のみをProjectします。

データ レイアウトの分析情報

AUTO_LIQUID_CLUSTERING

テーブルは手動で最適化されており、自動 液体クラスタリングの利点があります。

Recommendations:

  • パフォーマンスと自動メンテナンスを向上させるために、テーブルを外部から管理に変換します。
  • テーブルで 予測最適化 を有効にして、自動メンテナンス操作を行います。
  • テーブルで自動クラスタリングを有効にして、読み取ったバイト数を減らします。

同時書き込み (CONCURRENT_WRITE)

テーブルへの同時書き込みにより、自動的に解決または失敗する 競合 が発生します。

推奨事項:差分履歴を確認して同時書き込みを特定し、競合を回避するためにスケジュールを調整します。

COVERAGE_STATS_DELTA

デルタデータスキップの統計がテーブルスキャンファイルフィルターに対して見つからないか不完全であるため、クエリはファイル内フィルター処理を使用します。

各フィルターの統計情報の状態は、次のいずれかになります。

  • 完全: 統計はすべてのフィルターで使用できます。
  • 部分: 統計情報は、フィルターのサブセットで使用できます。
  • 利用: 統計情報は、どのフィルターにも使用できません。
  • 未使用: フィルターによってデータ型が変換されるため、統計を使用できません。

推奨事項:デルタ統計を収集 して読み取られたバイト数を減らします。

COVERAGE_STATS_OPTIMIZER

コストベースのオプティマイザー 統計が見つからないか不完全であるため、クエリ プランでは標準ヒューリスティックが使用されます。

推奨事項:統計を収集 して、オプティマイザーがより適切なプランを生成できるようにします。

DATA_SKEW(データの偏り)

データはコンピューティング リソース間で不均一に分散されます。

推薦: データ分散を確認し、キーのソルト処理または事前集計を使用してワークロードのバランスを取ります。

コンピューティングとリソースの分析情報

DATA_SPILL

データがメモリに収まらなかったため、クエリの実行中にディスクにデータがスピルされました。

推薦: メモリを追加するには、倉庫 のサイズ を増やします。 メモリ使用量を減らすために、行、列、または大きな列 (文字列、配列、マップ、構造体) のサイズを減らします。

EXCESSIVE_QUEUE_TIME

クエリは ウェアハウス キューで待機しました。

推薦: キュー時間を短縮するために、ウェアハウス上 のクラスターの最大数 を増やします。

I/O スロットリング

クラウド ストレージ要求がクラウド プロバイダーによって調整されました。

推薦: クラウド プロバイダーにストレージ要求の上限の引き上げを要求するには、管理者に問い合わせてください。

その他のリソース

パフォーマンスのベスト プラクティスのより広範な概要については、 Databricks、Spark、Delta Lake ワークロードを最適化するための包括的なガイドを参照してください。