WLM クエリキューのホッピング - Amazon Redshift

WLM クエリキューのホッピング

クエリは、WLM タイムアウトまたはクエリモニタリングルール (QMR) のホップアクションに基づいてホップされる場合があります。クエリは、手動 WLM 設定でのみホップできます。

クエリがホップされると、WLM は、WLM キュー割り当てルールに基づき、次に一致するキューへのクエリのルーティングを試みます。クエリが他のいずれのキュー定義とも一致しない場合、クエリはキャンセルされます。クエリはデフォルトキューに割り当てられません。

WLM タイムアウトのアクション

次の表は、WLM タイムアウト時におけるクエリのタイプ別の動作をまとめたものです。

クエリタイプ アクション
INSERT、UPDATE、および DELETE キャンセル
ユーザー定義関数 (UDF) キャンセル
UNLOAD キャンセル
COPY 実行を継続
メンテナンスオペレーション 実行を継続
returning 状態の読み取り専用クエリ 実行を継続
running 状態の読み取り専用クエリ 再割り当てまたは再起動
CREATE TABLE AS (CTAS)、SELECT INTO 再割り当てまたは再起動

WLM タイムアウトキューのホッピング

WLM は、以下のタイプのクエリをタイムアウト時にホップします。

  • WLM 状態が running の、SELECT ステートメントなどの読み取り専用クエリ。クエリの WLM 状態を確認するには、STV_WLM_QUERY_STATE システムテーブルで STATE 列を表示します。

  • CREATE TABLE AS (CTAS) ステートメント。WLM キューのホッピングでは、ユーザー定義とシステム生成の両方の CTAS ステートメントがサポートされます。

  • SELECT INTO ステートメント。

WLM タイムアウトの対象でないクエリは、完了するまで元のキューで実行を継続します。以下のタイプのクエリは、WLM タイムアウトの対象外です。

  • COPY ステートメント

  • ANALYZE や VACUUM などのメンテナンスオペレーション

  • WLM 状態が returning になった、SELECT ステートメントなどの読み取り専用クエリ。クエリの WLM 状態を確認するには、STV_WLM_QUERY_STATE システムテーブルで STATE 列を表示します。

WLM タイムアウトによるホッピングの対象でないクエリは、タイムアウト時にキャンセルされます。以下のタイプのクエリは、WLM タイムアウトによるホッピングの対象外です。

  • INSERT、UPDATE、および DELETE ステートメント

  • UNLOAD ステートメント

  • ユーザー定義関数 (UDF)

WLM タイムアウト時のクエリの再割り当てと再開

クエリがホップされ一致するキューが見つからない場合、クエリはキャンセルされます。

クエリがホップされ一致するキューが見つかった場合、WLM は新しいキューへのクエリの再割り当てを試みます。クエリを再割り当てすることができない場合は、以下に説明するように、クエリが新しいキューで再開されます。

クエリは以下のすべての条件が満たされた場合にのみ再割り当てされます。

  • 一致するキューが見つかった。

  • 新しいキューに、クエリを実行できる十分な空きスロットがある。wlm_query_slot_count パラメータが 1 以上の値に設定されている場合、クエリに複数のスロットが必要になる場合があります。

  • 新しいキューのメモリ量が、クエリが現在使用しているメモリ量と少なくとも同じである。

再割り当てされたクエリは、新しいキューで実行を継続します。中間の結果は保持されるため、合計実行時間に対する影響は最小限です。

再割り当てできないクエリはキャンセルされ、新しいキューで再開されます。中間の結果は削除されます。クエリはキュー内で待機し、十分なスロット数が利用可能になると実行を開始します。

QMR ホップアクション

次の表は、クエリタイプ別に QMR ホップアクションに基づく動作をまとめたものです。

クエリタイプ アクション
COPY 実行を継続
メンテナンスオペレーション 実行を継続
ユーザー定義関数 (UDF) 実行を継続
UNLOAD 再割り当てまたは実行を継続
INSERT、UPDATE、および DELETE 再割り当てまたは実行を継続
returning 状態の読み取り専用クエリ 再割り当てまたは実行を継続
running 状態の読み取り専用クエリ 再割り当てまたは再起動
CREATE TABLE AS (CTAS)、SELECT INTO 再割り当てまたは再起動

QMR によってホップされたクエリが再割り当て、再開、またはキャンセルされるかどうかを確認するには、STL_WLM_RULE_ACTION システムログテーブルにクエリを実行します。

QMR ホップアクションによるクエリの再割り当てと再開

クエリがホップされ一致するキューが見つからない場合、クエリはキャンセルされます。

クエリがホップされ一致するキューが見つかった場合、WLM は新しいキューへのクエリの再割り当てを試みます。クエリを再割り当てすることができない場合は、以下に説明するように、クエリが新しいキューで再開されるか、元のキューで実行を継続します。

クエリは以下のすべての条件が満たされた場合にのみ再割り当てされます。

  • 一致するキューが見つかった。

  • 新しいキューに、クエリを実行できる十分な空きスロットがある。wlm_query_slot_count パラメータが 1 以上の値に設定されている場合、クエリに複数のスロットが必要になる場合があります。

  • 新しいキューのメモリ量が、クエリが現在使用しているメモリ量と少なくとも同じである。

再割り当てされたクエリは、新しいキューで実行を継続します。中間の結果は保持されるため、合計実行時間に対する影響は最小限です。

再割り当てできないクエリは、再開されるか元のキューで実行を継続します。クエリが再開される場合、そのクエリはキャンセルされ、新しいキューで再開されます。中間の結果は削除されます。クエリはキュー内で待機し、十分なスロット数が利用可能になると実行を開始します。