

 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/)을 참조하세요.

# SET
<a name="r_SET"></a>

서버 구성 파라미터의 값을 설정합니다. SET 명령을 사용하여 현재 세션 또는 트랜잭션에 한해 지속 시간 설정을 재정의합니다.

[reset](r_RESET.md) 명령을 사용하여 파라미터를 기본값으로 반환합니다.

여러 가지 방법으로 서버 구성 파라미터를 변경할 수 있습니다. 자세한 내용은 [서버 구성 수정](cm_chap_ConfigurationRef.md#t_Modifying_the_default_settings) 섹션을 참조하세요.

## 구문
<a name="r_SET-synopsis"></a>

```
SET { [ SESSION | LOCAL ]
{ SEED | parameter_name } { TO | = }
{ value | 'value' | DEFAULT } |
SEED TO value }
```

다음 문은 세션 컨텍스트 변수의 값을 설정합니다.

```
SET { [ SESSION | LOCAL ]
variable_name { TO | = }
{ value | 'value'  }
```

## 파라미터
<a name="r_SET-parameters"></a>

세션   
현재 세션에 대해 설정이 유효함을 지정합니다. 기본값.

*variable\$1name*   
세션에 설정된 컨텍스트 변수의 이름을 지정합니다.  
명명 규칙은 점으로 구분된 두 부분으로 이루어진 이름입니다(예: *identifier.identifier*). 점 구분 기호는 하나만 사용할 수 있습니다. Amazon Redshift의 표준 식별자 규칙을 따르는 *identifier*를 사용합니다. 자세한 내용은 [이름 및 식별자](r_names.md) 섹션을 참조하세요. 구분된 식별자는 허용되지 않습니다.

LOCAL   
현재 트랜잭션에 대해 설정이 유효함을 지정합니다.

SEED TO *value*   
난수 생성을 위한 RANDOM 함수에서 사용할 내부 시드를 설정합니다.  
SET SEED는 0과 1 사이의 숫자 *값*을 취하고 [RANDOM 함수](r_RANDOM.md) 함수과 함께 사용하기 위해 이 숫자에 (231-1)을 곱합니다. 여러 개의 RANDOM 호출을 하기 전에 SET SEED를 사용하면 RANDOM이 예측 가능한 순서대로 숫자를 생성합니다.

 *parameter\$1name*   
설정할 파라미터의 이름. 파라미터에 대한 자세한 내용은 [서버 구성 수정](cm_chap_ConfigurationRef.md#t_Modifying_the_default_settings) 섹션을 참조하세요.

 * 값*   
새 재료 파라미터 값입니다. 값을 특정 문자열로 설정하려면 작은따옴표를 사용하세요. SET SEED를 사용하는 경우 이 파라미터는 SEED 값을 포함합니다.

DEFAULT   
이 파라미터를 기본값으로 설정합니다.

## 예제
<a name="r_SET-examples"></a>

 **현재 세션을 위한 파라미터 변경** 

다음 예에서는 날짜 스타일을 설정합니다.

```
set datestyle to 'SQL,DMY';
```

 **워크로드 관리를 위한 쿼리 그룹 설정** 

쿼리 그룹이 클러스터의 WLM 구성의 일부로서 대기열 정의에 나열되는 경우 QUERY\$1GROUP 파라미터를 나열된 쿼리 그룹 이름으로 설정할 수 있습니다. 후속 쿼리는 관련 쿼리 대기열에 할당됩니다. QUERY\$1GROUP 설정은 세션 지속 시간 동안 또는 RESET QUERY\$1GROUP 명령이 발생할 때까지 계속 적용됩니다.

이 예에서는 쿼리 그룹 'priority'에 속한 쿼리 2개를 실행한 후 쿼리 그룹을 재설정합니다.

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

자세한 내용은 [워크로드 관리](cm-c-implementing-workload-management.md) 섹션을 참조하세요.

 **세션의 기본 ID 네임스페이스 변경** 

데이터베이스 사용자가 `default_identity_namespace`를 설정할 수 있습니다. 이 샘플은 `SET SESSION`을 사용하여 현재 세션 기간 동안 설정을 재정의하는 방법과 새 ID 제공업체 값을 보여줍니다. 이는 Redshift 및 IAM Identity Center와 함께 ID 제공업체를 사용할 때 가장 일반적으로 사용됩니다. Redshift에서 ID 제공업체를 사용하는 방법에 대한 자세한 내용은 [Redshift를 IAM Identity Center와 연결하여 사용자에게 Single Sign-On 경험을 제공합니다](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-idp-connect.html)를 참조하세요.

```
SET SESSION default_identity_namespace = 'MYCO';
         
SHOW default_identity_namespace;
```

이 명령을 실행한 후 다음과 같이 GRANT 문 또는 CREATE 문을 실행할 수 있습니다.

```
GRANT SELECT ON TABLE mytable TO alice;

GRANT UPDATE ON TABLE mytable TO salesrole;
         
CREATE USER bob password 'md50c983d1a624280812631c5389e60d48c';
```

이 경우 기본 ID 네임스페이스를 설정하는 효과는 각 ID 앞에 네임스페이스를 붙이는 것과 같습니다. 이 예제에서는 `alice`가 `MYCO:alice`로 대체됩니다. IAM Identity Center를 사용한 Redshift 구성과 관련된 설정에 대한 자세한 내용은 [ALTER SYSTEM](r_ALTER_SYSTEM.md) 및 [ALTER IDENTITY PROVIDER](r_ALTER_IDENTITY_PROVIDER.md) 섹션을 참조하세요.

 **쿼리의 그룹 레이블 설정** 

QUERY\$1GROUP 파라미터는 SET 명령 뒤에 나오는 동일한 세션에서 실행되는 하나 이상의 쿼리에 대한 레이블을 정의합니다. 그러면 쿼리가 실행될 때 이 레이블이 로그에 기록되어 STL\$1QUERY 및 STV\$1INFLIGHT 시스템 테이블과 SVL\$1QLOG 뷰에서 반환되는 결과를 제한하는 데 사용될 수 있습니다.

```
show query_group;
query_group
-------------
unset
(1 row)

set query_group to '6 p.m.';


show query_group;
query_group
-------------
6 p.m.
(1 row)

select * from sales where salesid=500;
salesid | listid | sellerid | buyerid | eventid | dateid | ...
---------+--------+----------+---------+---------+--------+-----
500 |    504 |     3858 |    2123 |    5871 |   2052 | ...
(1 row)

reset query_group;

select query, trim(label) querygroup, pid, trim(querytxt) sql
from stl_query
where label ='6 p.m.';
query | querygroup |  pid  |                  sql
-------+------------+-------+----------------------------------------
57 | 6 p.m.     | 30711 | select * from sales where salesid=500;
(1 row)
```

쿼리 그룹 레이블은 스크립트의 일부로서 실행되는 개별 쿼리 또는 쿼리 집합을 분리하기에 유용한 메커니즘입니다. ID를 기준으로 쿼리를 식별하고 추적할 필요가 없고, 레이블로 추적할 수 있습니다.

 **난수 생성을 위한 시드 값 설정** 

다음 예에서는 SET와 함께 SEED 옵션을 사용하여 RANDOM 함수가 예측 가능한 순서로 숫자를 생성하도록 합니다.

먼저 SEED 값을 설정하지 않고 RANDOM 정수 3개를 반환합니다.

```
select cast (random() * 100 as int);
int4
------
6
(1 row)

select cast (random() * 100 as int);
int4
------
68
(1 row)

select cast (random() * 100 as int);
int4
------
56
(1 row)
```

그런 다음 SEED 값을 `.25`로 설정한 후 RANDOM 숫자를 3개 더 반환합니다.

```
set seed to .25;

select cast (random() * 100 as int);
int4
------
21
(1 row)

select cast (random() * 100 as int);
int4
------
79
(1 row)

select cast (random() * 100 as int);
int4
------
12
(1 row)
```

마지막으로 SEED 값을 다시 `.25`로 설정한 후 RANDOM이 이전 세 번의 호출과 동일한 결과를 반환하는지 확인합니다.

```
set seed to .25;

select cast (random() * 100 as int);
int4
------
21
(1 row)

select cast (random() * 100 as int);
int4
------
79
(1 row)

select cast (random() * 100 as int);
int4
------
12
(1 row)
```

다음 예에서는 사용자 지정 컨텍스트 변수를 설정합니다.

```
SET app_context.user_id TO 123;
SET app_context.user_id TO 'sample_variable_value';
```