クエリの最適化
スロークエリは OpenSearch における一般的な問題であり、多くの場合、非効率なユーザー操作、過剰なフィルター条件、または QPS の急激な上昇が原因で発生します。OpenSearch のスロークエリ分析機能は、指定された期間内に Logical Computing Unit (LCU) の消費量が高いスロークエリを特定するのに役立ちます。また、コスト削減に役立つ最適化の提案も提供します。
メリット
-
無料:この機能は無料で利用できます。
-
オンデマンド分析:過去 1 か月間のスロークエリのレコードを分析し、最適化の提案を受け取ることができます。
-
包括的なメトリック:平均消費量、ピーク消費量、全クエリに占める割合など、さまざまなメトリックを使用してスロークエリの原因を分析します。結果はこれらのいずれかのメトリックでソートできます。
注意事項
-
分析できるのは前日までのデータのみです。過去の分析結果は最大 30 日間保持されます。
操作手順
1. スロークエリ分析サービスを有効にする:初めてクエリの最適化を使用する場合、左側のナビゲーションウィンドウで 機能拡張 > クエリの最適化 に移動します。
スロークエリ分析を有効にするアプリケーションを選択し、[スロークエリ分析の有効化] および [使用コミットメントの確認] チェックボックスを選択してから、[有効化] をクリックします。
2. クエリデータを分析する:サービスが有効になった後、日付別または RequestId 別でデータを分析できます。
日付別: [分析] をクリックします。
分析が完了するまで待ちます。
RequestId 別: 有効な RequestId を入力し、[クエリ] をクリックします。
クエリは、[最適化の提案] と [最適化の例] の列を含む結果テーブルを返します。一般的な提案には、sorted_doc_count_in_qrs の削減 (例えば、start+hit の値を下げて hit:500 を hit:50 に最適化する)、seek_times の削減 (クエリ条件を追加するか filter 句を使用する)、match_doc_count の削減 (例えば AND status:4 を追加するなど、クエリ条件やフィルター条件を追加する) が含まれます。各提案には、最適化前と最適化後のクエリの横並びの比較が含まれます。
入力フォーマットが正しくない場合、システムはエラーメッセージを表示します。
例えば、123 のような無効な RequestId を入力して [クエリ] をクリックすると、「クエリ分析の提案が見つかりません。RequestId が有効かどうか確認してください。」というエラーメッセージが表示されます。エラーコードは Optimizer.OperationFailed.NoData です。
3. 分析結果の表示:期間を選択して、対応するスロークエリの結果を表示します。
また、さまざまなメトリックで分析結果をソートすることもできます。
スロークエリのカテゴリをクリックすると、RequestId、クエリ、総消費量 (LCU)、取得消費量 (LCU)、統計消費量 (LCU)、ソート消費量 (LCU)、サマリー消費量 (LCU)、その他の消費量 (LCU)、最適化の提案などの検索リクエストの詳細が表示されます。