

 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/)を参照してください。

# ワークロード管理
<a name="workload-mgmt-config"></a>

Amazon Redshift では、ワークロード管理 (WLM) を使用して、使用可能なクエリキューの数と、処理するためにクエリをそれらのキューにルーティングする方法を定義します。WLM は、パラメータグループ設定の一部です。クラスターは、関連付けられているパラメータグループで指定された WLM 設定を使用します。

パラメータグループを作成すると、デフォルトの WLM 設定には、最大 5 つのクエリを同時に実行できる 1 つのキューが含まれます。クエリの処理をさらに細かく制御する場合、キューを追加して、各キューの WLM プロパティを設定できます。追加した各キューのデフォルトの WLM 設定は、そのプロパティを設定するまで同じです。

付加的なキューを追加する場合、設定内の最後のキューが*デフォルトキュー*になります。クエリが WLM 設定の条件に基づいて別のキューにルーティングされる場合を除いて、デフォルトキューにより処理されます。デフォルトキューのモードおよび同時実行レベル (クエリスロット) を指定できますが、デフォルトキューのユーザーグループやクエリグループを指定することはできません。

 他のパラメータと同様、デフォルトパラメータグループで WLM 設定を変更することはできません。デフォルトパラメータグループに関連付けられたクラスターは、常にデフォルトの WLM 設定を使用します。WLM 設定を変更するには、新しいパラメータグループを作成してからカスタム WLM 設定を必要とするクラスターとそのパラメータグループを関連付けます。

## WLM の動的プロパティと静的プロパティ
<a name="wlm-dynamic-and-static-properties"></a>

WLM 設定プロパティは動的または静的のいずれかです。動的なプロパティは、クラスターを再起動することなくデータベースに適用できますが、静的プロパティで変更を有効にするには、クラスターの再起動が必要です。静的および動的プロパティの詳細については、「[WLM の動的設定プロパティと静的設定プロパティ](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-dynamic-properties.html)」を参照してください。

## WLM 設定パラメータのプロパティ
<a name="wlm-json-config-properties"></a>

WLM は、Amazon Redshift コンソール、AWS CLI、Amazon Redshift API、または AWS SDK の 1 つを使用して設定できます。WLM 設定では、キュー間でのメモリ割り当て、キューで同時に実行できるクエリの数などのキューの動作を定義するいくつかのプロパティが使用されます。

**注記**  
 以下のプロパティは Amazon Redshift コンソール名とともに表示され、対応する JSON プロパティは説明で示されています。

次の表は、プロパティが自動 WLM または手動 WLM に適用可能かどうかをまとめたものです。


****  

| WLM プロパティ | 自動 WLM | 手動 WLM | 
| --- | --- | --- | 
| 自動 WLM | はい | はい | 
| ショートクエリアクセラレーションの有効化 | はい | はい | 
| ショートクエリの最大実行時間 | はい | はい | 
| 優先度 | はい | いいえ | 
| キューのタイプ | はい | はい | 
| キュー名 | はい | はい | 
| 同時実行スケーリングモード | はい | はい | 
| Concurrency | いいえ | はい | 
| ユーザーグループ | はい | はい | 
| User Group Wildcard | はい | はい | 
| クエリグループ | はい | はい | 
| Query Group Wildcard | はい | はい | 
| ユーザーロール | 可能 | はい | 
| ユーザーロールワイルドカード | 可能 | はい | 
| タイムアウト | いいえ | 廃止 | 
| メモリ | いいえ | はい | 
| クエリのモニタリングルール | はい | はい | 

次の一覧では、設定できる WLM プロパティについて説明します。

**自動 WLM**  
**自動 WLM** を `true` に設定すると、自動 WLM が有効になります。[Automatic WLM] (自動 WLM) では、[**Concurrency on main**] (メインでの同時実行数) と [**Memory (%)**] (メモリ (%))の値が `Auto` に設定されます。Amazon Redshift は、クエリの同時実行数とメモリの割り当てを管理します。デフォルトは `true` です。  
JSON プロパティ: `auto_wlm`

**ショートクエリアクセラレーションの有効化**  
ショートクエリアクセラレーション (SQA) は、実行時間が短い一部のクエリを、実行時間が長いクエリよりも優先します。SQA では実行時間が短いクエリを専用領域で実行します。このため SQA クエリは、実行時間が長いクエリをキューで待機するよう強制されません。SQA によって実行時間が短いクエリの実行開始が早くなり、ユーザーへの結果表示も早くなります。SQA を有効にすると、ショートクエリの最大実行時間も指定できます。SQA を有効にするには、`true` を指定します。デフォルトは `false` です。この設定は、キューではなく各パラメータグループに適用されます。  
JSON プロパティ: `short_query_queue`

****ショートクエリの最大実行時間****  
SQA を有効にした場合は、0 に指定することで、WLM でショートクエリの最大実行時間を動的に設定することができます。または、固定値 (1 20 秒) を指定します。デフォルト値は `0` です。  
JSON プロパティ: `max_execution_time`

**優先度**  
優先度は、キューで実行されるクエリの優先度を設定します。優先度を設定するには、[**WLM モード**] を [**Auto WLM**] に設定する必要があります。つまり、`auto_wlm` が `true` でなければなりません。有効な値は、`highest`、`high`、`normal`、`low`、および `lowest` です。デフォルトは `normal` です。  
JSON プロパティ: `priority`

**キューのタイプ**  
キュータイプは、[**自動 WLM**] または [**手動 WLM**] で使用されるキューを指定します。`queue_type` を `auto` または `manual` に設定します。指定されなかった場合、デフォルト値は `manual` です。  
JSON プロパティ: `queue_type`

**キュー名**  
キューの名前。キュー名は、ビジネスニーズに基づいて設定できます。キュー名は WLM 設定内で一意である必要があります。また、最大 64 文字の英数字、アンダースコア、またはスペースを使用します。引用符を含めることはできません。たとえば、ETL クエリのキューがある場合は、`ETL queue` と名前を付けることができます。この名前は、メトリクス、システムテーブルの値、Amazon Redshift コンソールでキューを識別するために使用されます。これらのソースの名前を使用するクエリとレポートは、名前の変更に対応できる必要があります。以前は、キュー名は Amazon Redshift によって生成されていました。キューのデフォルト名は、`Queue 1`、`Queue 2` の順に最後の `Default queue` という名前のキューまで続きます。  
キュー名を変更すると、WLM キューメトリクスの `QueueName` ディメンションの値 (WLMQueueLength、WLMQueueWaitTime、WLMQueriesCompletedPerSecond、WLMQueryDuration、WLMRunningQueries など) も変更されます。そのため、キュー名を変更する場合は、設定した CloudWatch のアラームを変更する必要がある場合があります。
JSON プロパティ: `name`

**同時実行スケーリングモード**  
キューで同時実行スケーリングを有効にするには、[**同時実行スケーリングモード**] を `auto` に設定します。キューにルーティングされたクエリの数がキューに設定された同時実行数を超えると、対象クエリがスケーリングクラスターに送信されます。スロットが使用可能になると、クエリはメインクラスターで実行されます。デフォルトは `off` です。  
JSON プロパティ: `concurrency_scaling`

**同時実行**  
手動 WLM キューで同時に実行できるクエリの数。このプロパティは、手動 WLM にのみ適用されます。同時実行スケーリングが有効な場合、キューが同時実行数レベル (クエリスロット) に達すると、対象のクエリがスケーリングクラスターに送信されます。同時実行スケーリングモードが無効な場合、スロットが使用可能になるまで、クエリはキューで待機します。範囲は 1～50 です。  
JSON プロパティ: `query_concurrency`

**ユーザーグループ**  
ユーザーグループ名のカンマ区切りリスト。ユーザーグループのメンバーがデータベースでクエリを実行すると、そのメンバーのクエリはユーザーグループに関連付けられたキューにルーティングされます。  
JSON プロパティ: `user_group`

**ユーザーグループのワイルドカード**  
ユーザーグループでワイルドカードを有効にするかどうかを示すブール値。この値が 0 の場合、ワイルドカードは無効です。この値が 1 の場合、ワイルドカードは有効です。ワイルドカードを有効にすると、「\*」または「？」を使用できます。クエリを実行するときに複数のユーザーグループを指定します。詳細については、[ワイルドカード](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-defining-query-queues.html#wlm-wildcards)を参照してください。  
JSON プロパティ: `user_group_wild_card`

**クエリグループ**  
クエリグループのカンマ区切りリスト。クエリグループのメンバーがデータベースでクエリを実行すると、そのメンバーのクエリはクエリグループに関連付けられたキューにルーティングされます。  
JSON プロパティ: `query_group`

**クエリグループのワイルドカード**  
クエリグループでワイルドカードを有効にするかどうかを示すブール値。この値が 0 の場合、ワイルドカードは無効です。この値が 1 の場合、ワイルドカードは有効です。ワイルドカードを有効にすると、「\*」または「？」を使用できます。クエリを実行するときに複数のクエリグループを指定します。詳細については、[ワイルドカード](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-defining-query-queues.html#wlm-wildcards)を参照してください。  
JSON プロパティ: `query_group_wild_card`

**ユーザーロール**  
ユーザーロールのカンマ区切りリスト。そのユーザーロールのメンバーがデータベースでクエリを実行すると、そのメンバーのクエリはユーザーロールに関連付けられたキューにルーティングされます。ユーザーロールの詳細については、「[ロールベースのアクセスコントロール (RBAC)](https://docs.aws.amazon.com/redshift/latest/dg/t_Roles.html)」を参照してください。  
JSON プロパティ: `user_role`

**ユーザーロールワイルドカード**  
クエリグループでワイルドカードを有効にするかどうかを示すブール値。この値が 0 の場合、ワイルドカードは無効です。この値が 1 の場合、ワイルドカードは有効です。ワイルドカードを有効にすると、「\*」または「？」を使用できます。クエリを実行するときに複数のクエリグループを指定します。詳細については、[ワイルドカード](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-defining-query-queues.html#wlm-wildcards)を参照してください。  
JSON プロパティ: `user_role_wild_card`

**タイムアウト (ms)**  
WLM タイムアウト (`max_execution_time`) は廃止されました。自動 WLM を使用している場合は使用できません。代わりに、`query_execution_time` を使用してクエリモニタリングルール (QMR) を作成して、経過したクエリ実行時間を制限します。詳細については、「[WLM クエリモニタリングルール](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html)」を参照してください。  
クエリがキャンセルされるまで実行できる最大時間 (ミリ秒単位)。場合によっては、読み取り専用クエリ (SELECT ステートメントなど) が WLM タイムアウトに伴ってキャンセルされることもあります。このような場合、WLM は、WLM キュー割り当てルールに基づいて次に一致するキューへのクエリのルーティングを試みます。クエリが他のいずれのキュー定義にも一致しない場合、クエリはキャンセルされ、デフォルトキューには割り当てられません。詳細については、「[WLM クエリキューのホッピング](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-defining-query-queues.html#wlm-queue-hopping)」を参照してください。WLM タイムアウトは `returning` 状態に達したクエリには適用されません。クエリの状態を表示するには、[STV\_WLM\_QUERY\_STATE](https://docs.aws.amazon.com/redshift/latest/dg/r_STV_WLM_QUERY_STATE.html) システムテーブルを参照してください。  
JSON プロパティ: `max_execution_time`

**メモリ (%)**  
キューに割り当てるメモリの割合。少なくとも 1 つキューに対してメモリの割合を指定する場合は、他のすべてのキューに対しても割合を指定する必要があります。合計は 100 パーセント以下とします。すべてのキューのメモリ割り当ての合計が 100% 未満である場合、未割り当て分のメモリはサービスによって管理されます。サービスは、この未割り当てメモリを、処理用メモリの追加をリクエストしたキューに一時的に割り当てることができます。  
JSON プロパティ: `memory_percent_to_use`

**クエリのモニタリングルール**  
WLM クエリモニタリングルールを使用することで、指定した基準または述語に基づいてクエリの WLM キューを継続的にモニタリングできます。たとえば、システムリソースを過剰に消費する傾向があるクエリをモニタリングし、指定したパフォーマンスの境界をクエリを超えたときに指定のアクションを開始することができます。  
プログラムでルールを作成する場合は、パラメータグループ定義に含める JSON をコンソールを使用して生成することを強くおすすめします。
特定のクエリキューにクエリモニタリングルールを関連付けます。キューごとの 25 個までルールを指定できます。すべてのキューでのルールは合計 25 個までです。  
JSON プロパティ: `rules`  
JSON プロパティの階層:   

```
rules
    rule_name
    predicate
        metric_name
        operator
        value
    action
        value
```
ルールごとに、以下のプロパティを指定します。  
+ `rule_name` – ルール名は WLM 設定内で一意である必要があります。ルール名には最大で 32 文字の英数字または下線を使用できます。スペースまたは疑問符を含めることはできません。
  + `predicate` – 述語は、ルールごとに最大で 3 つまで設定できます。述語ごとに、以下のプロパティを指定します。
    + `metric_name` – メトリクスの一覧については、*Amazon Redshift データベースデベロッパーガイド*の「[クエリモニタリングのメトリクス](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html#cm-c-wlm-query-monitoring-metrics)」を参照してください。
    + `operator` – オペレーションは `=`、`<`、および `>` です。
    + `value` – アクションをトリガーする指定されたメトリクスのしきい値。
+ `action` – 各ルールは 1 つのアクションに関連付けられます。有効なアクションは以下のとおりです。
  + `log`
  + `hop` (手動 WLM でのみ利用可能)
  + `abort`
  + `change_query_priority` (自動 WLM でのみ利用可能)
次の例は、2 つの述語と `rule_1` いうアクションを持つ `hop` という名前の WLM クエリモニタリングルール用の JSON を示しています。  

```
"rules": [
          {
            "rule_name": "rule_1",
            "predicate": [
              {
                "metric_name": "query_execution_time",
                "operator": ">",
                "value": 100000
              },
              {
                "metric_name": "query_blocks_read",
                "operator": ">",
                "value": 1000
              }
            ],
            "action": "hop"
          }
        ]
```

これらのプロパティとクエリキュー設定の戦略に関する詳細については、*Amazon Redshift データベースデベロッパーガイド*から[ワークロード管理の実装](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-implementing-workload-management.html)を参照してください。

## AWS CLI を使用した WLM パラメータの設定
<a name="Configuring-the-wlm-json-configuration-Parameter"></a>

 WLM を設定するには、`wlm_json_configuration` パラメータを変更します。`wlm_json_configuration` プロパティ値の最大サイズは 8,000 文字です。この値は JavaScript Object Notation (JSON) でフォーマットされています。AWS CLI、Amazon Redshift API、または AWS SDK の 1 つを使用して WLM を設定する場合、このセクションの残りの部分で `wlm_json_configuration` パラメータの JSON 構造を構築する方法を確認してください。

**注記**  
 Amazon Redshift を使用して WLM を設定する場合、コンソールでは簡単にキューを追加してそのプロパティを設定できるため、JSON 形式について理解する必要はありません。コンソールを使用して WLM を設定する方法の詳細については、「[パラメータグループを変更する](parameter-group-modify.md)」を参照してください。

例

次の例は、自動 WLM で 1 つのキューを定義するデフォルトの WLM 設定です。

```
{
   "auto_wlm": true
}
```

例

次の例は、同時実行数レベル (クエリスロット) が 5 である 1 つの手動 WLM キューを定義するカスタムの WLM 設定です。

```
{
   "query_concurrency":5
}
```

構文

デフォルトの WLM 設定は非常にシンプルで、キューが 1 つとプロパティが 1 つしかありません。JSON 構造でキューを追加し、キューごとに複数のプロパティを設定することができます。次の構文は、複数のプロパティを持つ複数のキューを設定する場合に使用する JSON 構造を表しています。

```
[
   {
      "ParameterName":"wlm_json_configuration", "ParameterValue":
         "[
             {
                "{{q1_first_property_name}}":"{{q1_first_property_value}}",
                "{{q1_second_property_name}}":"{{q1_second_property_value}}", 
                ...
             },
             {
                "{{q2_first_property_name}}":"{{q2_first_property_value}}",
                "{{q2_second_property_name}}":"{{q2_second_property_value}}", 
                ...
             }
             ...

         ]"
   }
]
```

前の例では、**q1** で始まる代表的なプロパティは、最初のキューの配列にあるオブジェクトです。これらの各オブジェクトは名前と値のペアです。`name` と `value` を組み合わせて最初のキューに WLM プロパティを設定します。**q2** で始まる代表的なプロパティは、2 番目のキューの配列にあるオブジェクトです。より多くのキューが必要な場合、追加の各キューに別のアレイを追加し、各オブジェクトのプロパティを設定します。

 WLM の設定を変更する際は、キュー内の 1 つのプロパティだけを変更する場合であっても、キューの構造全体を含める必要があります。これは、`wlm_json_configuration` パラメータの値として、JSON 構造全体が文字列として渡されるためです。

### AWS CLI コマンドのフォーマット
<a name="construct-json-param-value"></a>

`wlm_json_configuration` を使用する場合、AWS CLI パラメータには特定の形式が必要です。使用する形式は、クライアントのオペレーティングシステムによって異なります。コマンドラインから正しく渡されるように JSON 構造を囲む方法は、オペレーティングシステムによってさまざまです。Linux、Mac OS X、Windows の各オペレーティングシステムで適切なコマンドを作成する方法の詳細については、以下のセクションを参照してください。一般的な AWS CLI での JSON データ構造の違いについては、*AWS Command Line Interface ユーザーガイド*の「[Quoting strings](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#quoting-strings)」を参照してください。

例

以下のコマンド例では、`example-parameter-group` という名前のパラメータグループの手動 WLM を設定します。この設定により、ショートクエリアクセラレーションでショートクエリの最大実行時間が 0 に設定されます。これにより、値を動的に設定することを WLM に指示します。`ApplyType` 設定は `dynamic` です。この設定では、このパラメータ内の動的プロパティに対して行われたすべての変更は、設定に対して他の静的な変更が行われていない限り、速やかに適用されます。この設定では、次の 3 つのキューを定義しています。
+  最初のキューにより、ユーザーは自身のキューで `report` をラベルとして (`query_group` プロパティで) 指定し、そのキューへのクエリのルーティングをスムーズにすることができます。`report*` ではワイルドカード検索が有効にされているため、クエリをキューにルーティングするためにラベルを正しい順序にする必要はありません。たとえば、`reports` と `reporting` のいずれも、このクエリグループに一致します。このキューにはすべてのキューの合計メモリのうち 25 パーセントが割り当てられ、最大 4 つのクエリを同時に実行できます。クエリの時間は、最大 20,000 ミリ秒 (ms) に制限されています。モードが自動に設定されているため、キューのクエリスロットがいっぱいになると、対象のクエリがスケーリングクラスターに送信されます。
+  2 番目のキューにより、データベース内の `admin` または `dba` グループのメンバーであるユーザーは、自身のクエリを処理用にそのキューにルーティングすることができます。ユーザーグループではワイルドカード検索が無効になっているため、ユーザーは自身のクエリがそのキューにルーティングされるようにデータベース内のグループと正確に一致する必要があります。このキューにはすべてのキューの合計メモリのうち 40% が割り当てられ、最大 5 つのクエリを同時に実行できます。モードはオフに設定されているため、admin または dba グループのメンバーによって送信されたクエリはすべて、メインクラスターで実行されます。
+  設定内の最後のキューはデフォルトキューです。このキューにはすべてのキューの合計メモリのうち 35 パーセントが割り当てられ、最大 5 つのクエリを同時に処理できます。モードは自動に設定されます。

**注記**  
 デモンストレーションの目的で、例は複数行で示されています。実際のコマンドに改行を入れることはできません。

```
aws redshift modify-cluster-parameter-group 
--parameter-group-name example-parameter-group 
--parameters
'[
  {
    "query_concurrency": 4,
    "max_execution_time": 20000,
    "memory_percent_to_use": 25,
    "query_group": ["report"],
    "query_group_wild_card": 1,
    "user_group": [],
    "user_group_wild_card": 0,
    "user_role": [],
    "user_role_wild_card": 0,
    "concurrency_scaling": "auto", 
    "queue_type": "manual"
  },
  {
    "query_concurrency": 5,
    "memory_percent_to_use": 40,
    "query_group": [],
    "query_group_wild_card": 0,
    "user_group": [
      "admin",
      "dba"
    ],
    "user_group_wild_card": 0,
    "user_role": [],
    "user_role_wild_card": 0,
    "concurrency_scaling": "off",
    "queue_type": "manual"    
  },
  {
    "query_concurrency": 5,
    "query_group": [],
    "query_group_wild_card": 0,
    "user_group": [],
    "user_group_wild_card": 0,
    "user_role": [],
    "user_role_wild_card": 0,
    "concurrency_scaling": "auto",
    "queue_type": "manual"    
  },
  {"short_query_queue": true}
]'
```

以下に、自動 WLM 設定で、WLM クエリモニタリングルールを設定する例を示します。この例では、`example-monitoring-rules` という名前のパラメータグループを作成します。設定で前の例と同じ 3 つのキューを定義しますが、`query_concurrency` および `memory_percent_to_use` は、指定されません。この設定では、次のルールとクエリの優先度も追加されます。
+ 最初のキューは `rule_1` というルールを定義します。ルールには 2 つの述語があります。`query_cpu_time > 10000000` と `query_blocks_read > 1000` です。ルールのアクションは `log` です。このキューの優先度は `Normal` です。
+ 2 つめのキューは `rule_2` というルールを定義します。ルールには 2 つの述語があります。`query_execution_time > 600000000` と `scan_row_count > 1000000000` です。ルールのアクションは `abort` です。このキューの優先度は `Highest` です。
+ 設定内の最後のキューはデフォルトキューです。このキューの優先度は `Low` です。

**注記**  
 デモンストレーションの目的で、例は複数行で示されています。実際のコマンドに改行を入れることはできません。

```
aws redshift modify-cluster-parameter-group 
--parameter-group-name example-monitoring-rules 
--parameters
'[ {
  "query_group" : [ "report" ],
  "query_group_wild_card" : 1,
  "user_group" : [ ],
  "user_group_wild_card" : 0,
  "user_role": [ ],
  "user_role_wild_card": 0,
  "concurrency_scaling" : "auto",
  "rules" : [{
    "rule_name": "rule_1",
    "predicate": [{
      "metric_name": "query_cpu_time",
      "operator": ">",
      "value": 1000000 },
      { "metric_name": "query_blocks_read",
      "operator": ">",
      "value": 1000
    } ],
    "action" : "log"
  } ],
   "priority": "normal",
   "queue_type": "auto"
}, {  
  "query_group" : [ ],
  "query_group_wild_card" : 0,
  "user_group" : [ "admin", "dba" ],
  "user_group_wild_card" : 0,
  "user_role": [ ],
  "user_role_wild_card": 0,
  "concurrency_scaling" : "off",
  "rules" : [ {
    "rule_name": "rule_2",
    "predicate": [
      {"metric_name": "query_execution_time",
      "operator": ">",
      "value": 600000000},
      {"metric_name": "scan_row_count",
      "operator": ">",
      "value": 1000000000}],
      "action": "abort"}],
   "priority": "high",
   "queue_type": "auto"

}, {
  "query_group" : [ ],
  "query_group_wild_card" : 0,
  "user_group" : [ ],
  "user_group_wild_card" : 0,
  "user_role": [ ],
  "user_role_wild_card": 0,
  "concurrency_scaling" : "auto",
  "priority": "low",
  "queue_type": "auto",
  "auto_wlm": true
}, {
  "short_query_queue" : true
} ]'
```

#### JSON ファイルを指定してコマンドラインで AWS CLI を使用して WLM を設定する
<a name="wlm-cli-json-file"></a>

`wlm_json_configuration` を使用して AWS CLI パラメータを変更し、JSON ファイルとして `parameters` 引数の値で渡すことができます。

```
aws redshift modify-cluster-parameter-group --parameter-group-name myclusterparaametergroup --parameters file://modify_pg.json 
```

`--parameters` の引数は、`modify_pg.json` に保存されます。ファイルの場所は、オペレーティングシステムの形式で指定されます。詳細については、「[ファイルからパラメータをロードする](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html#cli-usage-parameters-file)」を参照してください。`modify_pg.json` JSON ファイルの内容の例を以下に示します。

```
[
    {
        "ParameterName": "wlm_json_configuration",
        "ParameterValue": "[{\"user_group\":\"example_user_group1\",\"query_group\": \"example_query_group1\", \"query_concurrency\":7},{\"query_concurrency\":5}]"
    }
]
```

```
[
    {
        "ParameterName": "wlm_json_configuration",
        "ParameterValue": "[{\"query_group\":[\"reports\"],\"query_group_wild_card\":0,\"query_concurrency\":4,\"max_execution_time\":20000,\"memory_percent_to_use\":25},{\"user_group\":[\"admin\",\"dba\"],\"user_group_wild_card\":1,\"query_concurrency\":5,\"memory_percent_to_use\":40},{\"query_concurrency\":5,\"memory_percent_to_use\":35},{\"short_query_queue\": true, \"max_execution_time\": 5000 }]",
        "ApplyType": "dynamic"
    }
]
```

#### Linux および macOS X オペレーティングシステムのコマンドラインで AWS CLI を使用して WLM を設定する際のルール
<a name="wlm-cli-linux-and-mac"></a>

1 行にパラメータを指定して AWS CLI コマンドを実行するには、以下のルールに従います。
+ JSON 構造全体を単一引用符 (') と 1 組の角括弧 ([ ]) で囲む必要があります。
+ すべてのパラメータ名とパラメータ値は、二重引用符 (") で囲む必要があります。
+ `ParameterValue` 値内では、ネストされた構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要があります。
+ ネストされた構造内では、各キューのプロパティと値をそれぞれ中括弧 ({ }) で囲む必要があります。
+ ネストされた構造内では、各二重引用符 (") の前で円記号 (\\) のエスケープ文字を使用する必要があります。
+ 名前と値のペアでは、各プロパティとその値をコロン (:) で区切ります。
+ 名前と値の各ペアは、カンマ (,) で区切ります。
+ 複数のキューは、キューの中括弧の末尾 (}) とその次のキューの中括弧の先頭 ({) の間にカンマ (,) を置くことで区切ります。

#### Microsoft Windows オペレーティングシステムの Windows PowerShell で AWS CLI を使用して WLM を設定する際のルール
<a name="wlm-cli-windows-powershell"></a>

1 行にパラメータを指定して AWS CLI コマンドを実行するには、以下のルールに従います。
+ JSON 構造全体を単一引用符 (') と 1 組の角括弧 ([ ]) で囲む必要があります。
+ すべてのパラメータ名とパラメータ値は、二重引用符 (") で囲む必要があります。
+ `ParameterValue` 値内では、ネストされた構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要があります。
+ ネストされた構造内では、各キューのプロパティと値をそれぞれ中括弧 ({ }) で囲む必要があります。
+ ネストされた構造内では、各二重引用符 (") とその円記号 (\\) のエスケープ文字の前で円記号 (\\) のエスケープ文字を使用する必要があります。この要件は、プロパティが正しく渡されるようにするため (\\\\\\")、3 つの円記号と 1 つの二重引用符を使用することを意味します。
+ 名前と値のペアでは、各プロパティとその値をコロン (:) で区切ります。
+ 名前と値の各ペアは、カンマ (,) で区切ります。
+ 複数のキューは、キューの中括弧の末尾 (}) とその次のキューの中括弧の先頭 ({) の間にカンマ (,) を置くことで区切ります。

#### Windows オペレーティングシステムでコマンドプロンプトを使用して WLM を設定する際のルール
<a name="wlm-cli-cmd-windows"></a>

1 行にパラメータを指定して AWS CLI コマンドを実行するには、以下のルールに従います。
+ JSON 構造全体を二重引用符 (") と 1 組の角括弧 ([ ]) で囲む必要があります。
+ すべてのパラメータ名とパラメータ値は、二重引用符 (") で囲む必要があります。
+ `ParameterValue` 値内では、ネストされた構造全体を二重引用符 (") と角括弧 ([ ]) で囲む必要があります。
+ ネストされた構造内では、各キューのプロパティと値をそれぞれ中括弧 ({ }) で囲む必要があります。
+ ネストされた構造内では、各二重引用符 (") とその円記号 (\\) のエスケープ文字の前で円記号 (\\) のエスケープ文字を使用する必要があります。この要件は、プロパティが正しく渡されるようにするため (\\\\\\")、3 つの円記号と 1 つの二重引用符を使用することを意味します。
+ 名前と値のペアでは、各プロパティとその値をコロン (:) で区切ります。
+ 名前と値の各ペアは、カンマ (,) で区切ります。
+ 複数のキューは、キューの中括弧の末尾 (}) とその次のキューの中括弧の先頭 ({) の間にカンマ (,) を置くことで区切ります。