

 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="cm-c-executing-queries"></a>

Amazon Redshift では、ワークロードの同時実行を管理し、クエリをキューに割り当てることでクエリに優先順位を付けることができます。キューを使用すると、重要度の低いクエリより重要なクエリが優先されるように、さまざまなタイプのクエリやユーザーにメモリや CPU などのリソースを割り当てることができます。以下のセクションでは、定義した基準に基づいてキューを作成し、プロパティを設定して、受信クエリを割り当てる方法について説明します。

次の例では、ユーザーロール、ユーザーグループ、クエリグループに従ってクエリをキューに割り当てます。

## ユーザーロールに基づくクエリのキューへの割り当て
<a name="cm-c-executing-queries-assigning-queries-to-queues-based-on-user-roles"></a>

 ユーザーがロールに割り当てられ、そのロールがキューにアタッチされている場合、そのユーザーによって実行されたクエリはそのキューに割り当てられます。次の例では、`sales_rw` という名前のユーザーロールを作成し、そのロールにユーザー `test_user` を割り当てます。

```
create role sales_rw;
grant role sales_rw to test_user;
```

1 つのロールを別のロールに明示的に付与することで、2 つのロールのアクセス許可を組み合わせることもできます。ネストされたロールをユーザーに割り当てると、両方のロールのアクセス許可がユーザーに付与されます。

```
create role sales_rw;
create role sales_ro;
grant role sales_ro to role sales_rw;
grant role sales_rw to test_user;
```

クラスターでロールが付与されているユーザーのリストを表示するには、SVV\_USER\_GRANTS テーブルにクエリを実行します。クラスターでロールが付与されているロールのリストを表示するには、SVV\_ROLE\_GRANTS テーブルにクエリを実行します。

```
select * from svv_user_grants;
select * from svv_role_grants;
```

## ユーザーグループに基づくクエリのキューへの割り当て
<a name="cm-c-executing-queries-assigning-queries-to-queues-based-on-user-groups"></a>

ユーザーグループ名がキューの定義にリストされている場合、そのユーザーグループのメンバーによって実行されたキューは、対応するキューに割り当てられます。次の例では、ユーザーグループを作成し、SQL コマンド [CREATE USER](r_CREATE_USER.md)、[CREATE GROUP](r_CREATE_GROUP.md)、および [ALTER GROUP](r_ALTER_GROUP.md) を使用してユーザーをグループに割り当てます。

```
create group admin_group with user admin246, admin135, sec555;
create user vp1234 in group ad_hoc_group password 'vpPass1234';
alter group admin_group add user analyst44, analyst45, analyst46;
```

## クエリグループへのクエリの割り当て
<a name="cm-c-executing-queries-assigning-a-query-to-a-query-group"></a>

適切なクエリグループにクエリを割り当てることで、実行時にクエリをキューに割り当てることができます。クエリグループを開始するには、SET コマンドを使用します。

```
SET query_group TO {{group_label}}             
```

ここで、{{`group_label`}} は、WLM 設定にリストされているクエリグループのラベルです。

`SET query_group` コマンドの後で実行するすべてのクエリは、クエリグループをリセットするか、現在のログインセッションを終了するまで、指定されたクエリグループのメンバーとして実行されます。Amazon Redshift オブジェクトの設定とリセットの詳細については、SQL コマンドリファレンスの「[SET](r_SET.md)」および「[RESET](r_RESET.md)」を参照してください。

指定するクエリグループラベルは現在の WLM 設定に含まれている必要があります。それ以外の場合、*SET query\_group* コマンドはクエリキューに対して効果がありません。

TO 句で定義されたラベルはクエリログにキャプチャされるので、このラベルをトラブルシューティングに使用できます。query\_group 設定パラメータの詳細については、設定リファレンスの「[query\_group](r_query_group.md)」を参照してください。

次の例では、クエリグループ 'priority' の一部として 2 つのクエリを実行し、クエリグループをリセットします。

```
set query_group to 'priority';
select count(*)from stv_blocklist;
select query, elapsed, substring from svl_qlog order by query desc limit 5; 
reset query_group;
```

## Superuser キューへのクエリの割り当て
<a name="cm-c-executing-queries-assigning-superuser-queue"></a>

superuser キューにクエリを割り当てるには、スーパーユーザーとして Amazon Redshift にログオンし、superuser グループでクエリを実行します。終了したら、クエリグループをリセットし、以降のクエリが superuser キューで実行されないようにします。

次の例では、2 つのコマンドを superuser キューで実行するように割り当てます。

```
set query_group to 'superuser';

analyze;
vacuum; 
reset query_group;
```

スーパーユーザーのリストを表示するには、PG\_USER システムカタログテーブルをクエリします。

```
select * from pg_user where usesuper = 'true';
```