

 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="cm-c-wlm-dynamic-properties"></a>

WLM 設定プロパティは動的または静的のいずれかです。動的なプロパティは、クラスターを再起動することなくデータベースに適用できますが、静的プロパティで変更を有効にするには、クラスターの再起動が必要です。ただし、動的プロパティと静的プロパティを同時に変更する場合は、すべてのプロパティの変更を有効にするためにクラスターを再起動する必要があります。これは、変更されるプロパティが動的か静的かは関係ありません。

動的プロパティが適用されている場合でも、クラスターのステータスは `modifying` です。自動 WLM および手動 WLM 間の切り替えは静的な変更であり、クラスターの再起動が必要です。

次の表は、自動 WLM または手動 WLM を使用するときに動的または静的である WLM プロパティを示しています。


****  

| WLM プロパティ | 自動 WLM | 手動 WLM | 
| --- | --- | --- | 
| クエリグループ | 動的 | 静的 | 
| Query Group Wildcard | 動的 | 静的 | 
| ユーザーグループ | 動的 | 静的 | 
| User Group Wildcard | 動的 | 静的 | 
| ユーザーロール | 動的 | 静的 | 
| ユーザーロールワイルドカード | 動的 | 静的 | 
| メインでの同時実行数 | 該当しません | 動的 | 
| 同時実行スケーリングモード | 動的 | 動的 | 
| ショートクエリアクセラレーションの有効化 | 該当しません | 動的 | 
| ショートクエリの最大実行時間 | 動的 | 動的 | 
| 使用するメモリの割合 | 該当しません | 動的 | 
| タイムアウト | 該当しません | 動的 | 
| 優先度 | 動的 | 該当しません | 
| キューの追加または削除 | 動的  | 静的 | 

クエリモニタリングルール (QMR) を追加した場合や、既存の QMR を変更または削除した場合は、クラスターを再起動しなくても自動的に変更が反映されます。

**注記**  
手動 WLM を使用しており、タイムアウトの値が変更された場合、その新しい値は、値が変更された後に実行を開始する任意のクエリに適用されます。使用する同時実行またはメモリの割合を変更すると、Amazon Redshift は新しい設定に動的に変更されます。したがって、現在実行中のクエリは変更の影響を受けません。詳細については、「[WLM の動的なメモリの割り当て](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-dynamic-memory-allocation.html)」を参照してください。

**Topics**
+ [WLM の動的なメモリ割り当て](cm-c-wlm-dynamic-memory-allocation.md)
+ [動的な WLM の例](cm-c-wlm-dynamic-example.md)

# WLM の動的なメモリ割り当て
<a name="cm-c-wlm-dynamic-memory-allocation"></a>

各キューでは、WLM によりキューの同時実行レベルと同じ数のクエリスロットが作成されます。クエリスロットに割り当てられるメモリ量は、キューに割り当てられたメモリをスロットカウントで割った割合と同じです。メモリの割り当てや同時実行数を変更すると、Amazon Redshift は新しい WLM 設定への移行を動的に管理します。したがって、アクティブなクエリは、現在割り当てられているメモリ量を使用して完了まで実行できます。同時に、Amazon Redshift はメモリの合計使用量が使用可能なメモリの 100% を超えないようにします。

ワークロードマネージャは、次のプロセスを使用して移行を管理します。

1. WLM は、新しい各クエリスロットへのメモリ割り当てを再計算します。

1. クエリスロットが実行中のクエリによりアクティブに使用されていない場合、WLM によりスロットが削除され、新しいスロットがメモリを使用できるようになります。

1. クエリスロットがアクティブに使用されている場合、WLM はクエリが終了するまで待機します。

1. アクティブなクエリが完了すると、空のスロットが削除され、関連するメモリが解放されます。

1. 1 つ以上のスロットを追加するのに必要なメモリが使用可能になると、新しいスロットが追加されます。

1. 変更時に実行されていたすべてのクエリが完了すると、スロットカウントは新しい同時実行レベルと同じになり、新しい WLM 設定への移行が完了します。

実際、変更時に実行されていたクエリは、引き続き元のメモリ割り当てを使用します。変更時にキューに入っていたクエリは、新しく利用可能になったスロットにルーティングされます。

移行プロセス中に WLM の動的プロパティが変更された場合、WLM はすぐに現在の状態から新しい設定への移行を開始します。移行のステータスを表示するには、[STV\$1WLM\$1SERVICE\$1CLASS\$1CONFIG](r_STV_WLM_SERVICE_CLASS_CONFIG.md) システムテーブルにクエリを実行します。

# 動的な WLM の例
<a name="cm-c-wlm-dynamic-example"></a>

Amazon Redshift では、動的な WLM (ワークロード管理) を使用して、Amazon Redshift クラスター全体のワークロード分散とリソース割り当てを自動的に管理できます。動的な WLM は、ワークロードの需要に基づいてメモリ割り当てを動的に調整するワークロード管理 (WLM) 設定の例であり、最適な同時実行とパフォーマンスを可能にします。次のセクションでは、Amazon Redshift クラスターの動的な WLM の実装と設定について詳しく説明します。

次の動的プロパティを使用して、キューが 2 つ存在するクラスター WLM が設定されているとします。

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

ここでは、クラスターがクエリ処理に 200 GB のメモリを使用できるとします (この値は任意の数値であり、あくまでも例です)。次の式に示すように、各スロットには 25 GB 割り当てられます。

```
(200 GB * 50% ) / 4 slots  = 25 GB
```

次に、次の動的プロパティを使用するように WLM を変更します。

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

次の式に示すように、キュー 1 内の各スロットの新しいメモリ割り当ては 50 GB です。

```
(200 GB * 75% ) / 3 slots = 50 GB 
```

新しい設定の適用時にクエリ A1、A2、A3、A4 が実行中であり、クエリ B1、B2、B3、B4 がキューに入っているとします。WLM は、クエリスロットを次のように動的に再設定します。

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

1. WLM は、各クエリスロットへのメモリ割り当てを再計算します。最初は、キュー 1 には 100 GB 割り当てられていました。新しいキューの合計割り当ては 150 GB のため、新しいキューはすぐに 50 GB 使用可能になります。キュー 1 が 4 つのスロットを使用するようになり、新しい同時実行レベルは 3 つのスロットになったため、新しいスロットは追加されません。

1. 1 つのクエリが終了したら、スロットは削除され、25 GB が解放されます。キュー 1 のスロットは 3 つ、使用可能なメモリは 75 GB になりました。新しい設定では新しいスロットごとに 50 GB 必要ですが、新しい同時実行レベルは 3 つのスロットのため、新しいスロットは追加されません。

1. 2 つ目のクエリが終了したら、スロットは削除され、25 GB が解放されます。キュー 1 のスロットは 2 つになり、空きメモリは 100 GB になります。

1. 空きメモリ 50 GB を使用して新しいスロットが追加されます。キュー 1 のスロットは 3 つになり、空きメモリは 50 GB になります。キューに入っているクエリを新しいスロットにルーティングできるようになりました。

1. 3 つ目のクエリが完了すると、スロットは削除され、25 GB が解放されます。キュー 1 のスロットは 2 つになり、空きメモリは 75 GB になります。

1. 空きメモリ 50 GB を使用して新しいスロットが追加されます。キュー 1 のスロットは 3 つになり、空きメモリは 25 GB になります。キューに入っているクエリを新しいスロットにルーティングできるようになりました。

1. 4 つ目のクエリが終了したら、スロットは削除され、25 GB が解放されます。キュー 1 のスロットは 2 つになり、空きメモリは 50 GB になります。

1. 空きメモリ 50 GB を使用して新しいスロットが追加されます。キュー 1 のスロットは、それぞれ 50 GB のスロットが 3 つになり、使用可能なすべてのメモリが割り当てられました。

移行が完了し、キューに入ったクエリがすべてのクエリスロットを使用できるようになります。