クエリのスキャン統計を有効にする
大事な
AKS 上の Azure HDInsight は、2025 年 1 月 31 日に廃止されました。 詳細については、アナウンス でを確認してください。
ワークロードの突然の終了を回避するには、ワークロードを Microsoft Fabric または同等の Azure 製品 に移行する必要があります。
大事な
この機能は現在プレビュー段階です。 Microsoft Azure プレビューの 追加使用条件 には、ベータ版、プレビュー版、または一般公開されていない Azure 機能に適用される、より多くの法的条件が含まれています。 この特定のプレビューの詳細については、AKS プレビュー情報 Azure HDInsightを参照してください。 ご質問や機能のご提案については、詳細を記載したリクエストを AskHDInsight に送信してください。また、Azure HDInsight Communityをフォローして、詳細な更新情報を受け取りましょう。
多くの場合、データ チームは、リソース使用率を向上させたり、ビジネス要件を満たすために、パフォーマンスを調査したり、クエリを最適化したりする必要があります。
Trino for HDInsight on AKS に新しい機能が追加されました。これにより、ユーザーは任意のコネクタのスキャン統計情報をキャプチャできます。 この機能は、Trino によって生成された統計で使用できる情報を超えて、クエリ パフォーマンス プロファイルに関するより深い分析情報を提供します。
この機能は、セッション プロパティ collect_raw_scan_statistics
使用し、Trino コマンドに従って有効にすることができます。
SET SESSION collect_raw_scan_statistics=true
有効にすると、TableScanOperator
、ScanFilterAndProject
などのクエリのソース演算子にデータ スキャンに関する統計情報が得られます。粒度はパイプライン内の演算子インスタンスごとに行われます。
ヒント
スキャン統計は、クラスターまたはクエリが CPU に制約されていないときにボトルネックを特定し、クエリの読み取りパフォーマンスを調査する必要がある場合に役立ちます。 また、分割レベルの観点からクエリの実行プロファイルを理解するのにも役立ちます。
手記
現在、ワーカーあたりの分割のキャプチャ数は、生成されるデータのサイズの制約により 1000 に制限されています。 クエリのワーカーあたりの分割数がこの制限を超えた場合は、実行時間が最も長い上位 1,000 個の分割が返されます。
スキャン統計にアクセスする方法
セッション プロパティが設定されると、セッション内の後続のクエリでは、ソース演算子が使用可能になると常に、ソース演算子からの統計のキャプチャが開始されます。 ユーザーがクエリに対して生成されたスキャン統計を使用して分析する方法は複数あります。
クエリ ジェイソン
[クエリの詳細] ページの [Json] タブには、クエリの JSON 表現が表示されます。このクエリには、すべてのステージの統計とクエリのパイプラインが含まれています。 セッション プロパティが設定されると、json には queryStats.operatorSummaries[*]
に scanStats
という新しいフィールドが含まれます。 配列には、演算子のインスタンスごとに 1 つのオブジェクトが含まれています。
次の例は、hive connector
とスキャン統計を有効にしたクエリの json を示しています。
手記
スキャン統計の概要には、コネクタによって設定される splitInfo が含まれています。 これにより、ユーザーはカスタム コネクタに含めるストアに関する情報を制御できます。
スキャン統計 ユーザーインターフェース
Scan Stats
という新しいタブは、この機能によって生成された統計情報を視覚化し、各ワーカーの分割グレイン のパフォーマンスに関する分析情報を提供するクエリの詳細ページにあります。 このページでは、時間とスループットの同時読み取りなどの情報を使用して、クエリの trino の実行プロファイルを表示できます。
次の例は、スキャン統計が有効になっているクエリのページを示しています。
Microsoft クエリ ロガーの使用**
Microsoft クエリ ロガー では、この機能のサポートが組み込まれています。 この機能を有効にすると、クエリ ロガー プラグインはクエリ イベント テーブルと共に operatorstats
というテーブルを設定します。このテーブルは非正規化されるため、すべての演算子インスタンスがクエリごとに 1 行になります。