

 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;
```

한 역할을 다른 역할에 명시적으로 부여하여 두 역할의 권한을 결합할 수도 있습니다. 사용자에게 중첩된 역할을 할당하면 사용자에게 두 역할의 권한이 모두 부여됩니다.

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

클러스터에서 역할이 부여된 사용자 목록을 보려면 SVV\$1USER\$1GRANTS 테이블을 쿼리하세요. 클러스터에서 역할이 부여된 역할 목록을 보려면 SVV\$1ROLE\$1GRANTS 테이블을 쿼리하세요.

```
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\$1group* 명령을 실행해도 쿼리 대기열에 아무런 영향도 미치지 못합니다.

TO 절에서 정의하는 레이블은 쿼리 로그에도 수집되기 때문에 레이블을 문제 해결에도 사용할 수 있습니다. query\$1group 구성 파라미터에 대한 자세한 내용은 구성 참조에서 [query\$1group](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;
```

## 수퍼유저 대기열에 쿼리 할당
<a name="cm-c-executing-queries-assigning-superuser-queue"></a>

슈퍼 사용자 대기열에 쿼리를 할당하려면 먼저 슈퍼 사용자 권한으로 Amazon Redshift에 로그온한 후 슈퍼 사용자 그룹에서 쿼리를 실행합니다. 쿼리 실행을 모두 마치고 나면 이후 쿼리부터는 수퍼유저 대기열에서 실행되지 않도록 쿼리 그룹을 재설정해야 합니다.

다음은 실행할 명령 2개를 수퍼유저 대기열에서 할당하는 것을 보여주는 예입니다.

```
set query_group to 'superuser';

analyze;
vacuum; 
reset query_group;
```

수퍼유저 목록을 보려면 PG\$1USER 시스템 카탈로그 테이블에 대해 쿼리합니다.

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