SET - Amazon Redshift

SET

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

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

여러 가지 방법으로 서버 구성 파라미터를 변경할 수 있습니다. 자세한 내용은 서버 구성 수정 단원을 참조하십시오.

구문

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

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

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

파라미터

세션

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

variable_name

세션에 설정된 컨텍스트 변수의 이름을 지정합니다.

명명 규칙은 점으로 구분된 두 부분으로 이루어진 이름입니다(예: identifier.identifier). 점 구분 기호는 하나만 사용할 수 있습니다. Amazon Redshift의 표준 식별자 규칙을 따르는 identifier를 사용합니다. 자세한 내용은 이름 및 식별자 섹션을 참조하세요. 구분된 식별자는 허용되지 않습니다.

LOCAL

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

SEED TO value

난수 생성을 위한 RANDOM 함수에서 사용할 내부 시드를 설정합니다.

SET SEED는 0과 1 사이의 숫자 을 취하고 RANDOM 함수 함수과 함께 사용하기 위해 이 숫자에 (231-1)을 곱합니다. 여러 개의 RANDOM 호출을 하기 전에 SET SEED를 사용하면 RANDOM이 예측 가능한 순서대로 숫자를 생성합니다.

parameter_name

설정할 파라미터의 이름. 파라미터에 대한 자세한 내용은 서버 구성 수정 섹션을 참조하세요.

USD 상당

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

DEFAULT

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

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

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

set datestyle to 'SQL,DMY';

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

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

이 예에서는 쿼리 그룹 '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;

자세한 내용은 워크로드 관리 구현 단원을 참조하십시오.

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

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

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 앞에 네임스페이스를 붙이는 것과 같습니다. 이 예제에서는 aliceMYCO:alice로 대체됩니다. IAM Identity Center를 사용한 Redshift 구성과 관련된 설정에 대한 자세한 내용은 ALTER SYSTEMALTER IDENTITY PROVIDER 섹션을 참조하세요.

쿼리의 그룹 레이블 설정

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

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