

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# WLM クエリキューのホッピング
<a name="wlm-queue-hopping"></a>

Amazon Redshift では、WLM (ワークロード管理) のクエリキューホッピングを有効にすることで、ワークロードの同時実行とリソース割り当てを管理できます。この機能を使用すると、リソースが利用可能になったときに、割り当てられたキューから優先度の高いキューに一時的に「ホップ」するクエリが可能になり、全体的なクエリパフォーマンスとシステム使用率が向上します。以下のセクションでは、Amazon Redshift での WLM クエリキューホッピングの設定と使用に関する詳細なガイダンスを提供します。

クエリは、[WLM タイムアウト](cm-c-defining-query-queues.md#wlm-timeout)または[クエリモニタリングルール (QMR) のホップアクション](cm-c-wlm-query-monitoring-rules.md#cm-c-wlm-defining-query-monitoring-rules)に基づいてホップされる場合があります。クエリは、手動 WLM 設定でのみホップできます。

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

## WLM タイムアウトのアクション
<a name="wlm-queue-hopping-summary"></a>

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

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/wlm-queue-hopping.html)

## WLM タイムアウトキューのホッピング
<a name="wlm-timeout-queue-hopping"></a>

WLM は、以下のタイプのクエリをタイムアウト時にホップします。
+ WLM 状態が `running` の、SELECT ステートメントなどの読み取り専用クエリ。クエリの WLM 状態を確認するには、[STV\$1WLM\$1QUERY\$1STATE](r_STV_WLM_QUERY_STATE.md) システムテーブルで STATE 列を表示します。
+ CREATE TABLE AS (CTAS) ステートメント。WLM キューのホッピングでは、ユーザー定義とシステム生成の両方の CTAS ステートメントがサポートされます。
+ SELECT INTO ステートメント。

WLM タイムアウトの対象でないクエリは、完了するまで元のキューで実行を継続します。以下のタイプのクエリは、WLM タイムアウトの対象外です。
+ COPY ステートメント
+ メンテナンスオペレーション (ALTER、ANALYZE、VACUUM など)
+ WLM 状態が `returning` になった、SELECT ステートメントなどの読み取り専用クエリ。クエリの WLM 状態を確認するには、[STV\$1WLM\$1QUERY\$1STATE](r_STV_WLM_QUERY_STATE.md) システムテーブルで STATE 列を表示します。

WLM タイムアウトによるホッピングの対象でないクエリは、タイムアウト時にキャンセルされます。以下のタイプのクエリは、WLM タイムアウトによるホッピングの対象外です。
+ INSERT、UPDATE、および DELETE ステートメント
+ UNLOAD ステートメント
+ ユーザー定義関数 (UDF)

## WLM タイムアウト時のクエリの再割り当てと再開
<a name="wlm-timeout-reassigned-and-restarted-queries"></a>

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

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

クエリは以下のすべての条件が満たされた場合にのみ再割り当てされます。
+ 一致するキューが見つかった。
+ 新しいキューに、クエリを実行できる十分な空きスロットがある。[wlm\$1query\$1slot\$1count](r_wlm_query_slot_count.md) パラメータが 1 以上の値に設定されている場合、クエリに複数のスロットが必要になる場合があります。
+ 新しいキューのメモリ量が、クエリが現在使用しているメモリ量と少なくとも同じである。

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

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

## QMR ホップアクション
<a name="qmr-hop-action-queue-hopping"></a>

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

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/wlm-queue-hopping.html)

QMR によってホップされたクエリが再割り当て、再開、またはキャンセルされるかどうかを確認するには、[STL\$1WLM\$1RULE\$1ACTION](r_STL_WLM_RULE_ACTION.md) システムログテーブルにクエリを実行します。

## QMR ホップアクションによるクエリの再割り当てと再開
<a name="qmr-hop-action-reassigned-and-restarted-queries"></a>

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

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

クエリは以下のすべての条件が満たされた場合にのみ再割り当てされます。
+ 一致するキューが見つかった。
+ 新しいキューに、クエリを実行できる十分な空きスロットがある。[wlm\$1query\$1slot\$1count](r_wlm_query_slot_count.md) パラメータが 1 以上の値に設定されている場合、クエリに複数のスロットが必要になる場合があります。
+ 新しいキューのメモリ量が、クエリが現在使用しているメモリ量と少なくとも同じである。

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

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