워크로드 관리
Amazon Redshift에서는 워크로드 관리(WLM)를 통해 사용 가능한 쿼리 대기열의 수와 쿼리가 처리를 위해 대기열로 라우팅되는 방식을 정의합니다. WLM은 파라미터 그룹 구성에 포함됩니다. 클러스터는 연결된 파라미터 그룹에서 지정하는 WLM 구성을 사용합니다.
파라미터 그룹을 생성할 때는 동시에 5개까지 쿼리를 실행할 수 있는 대기열 1개가 기본 WLM 구성에 포함됩니다. 여기에 대기열을 추가할 수 있으며, 쿼리 처리에 대한 통제 권한을 높이려면 각 대기열마다 WLM 속성을 구성하면 됩니다. 추가하는 대기열에는 속성을 구성할 때까지 마찬가지 기본 WLM 구성이 적용됩니다.
대기열을 추가할 때는 마지막 대기열이 기본 대기열이 됩니다. WLM 구성 기준에 따라 다른 대기열로 라우팅되지 않는 쿼리는 기본 대기열에서 처리됩니다. 기본 대기열에 모드 및 동시성 레벨(쿼리 슬롯)을 지정할 수 있지만 기본 대기열에 사용자 그룹 또는 쿼리 그룹을 지정할 수는 없습니다.
다른 파라미터에서도 그렇지만 기본 파라미터 그룹의 WLM 구성은 수정할 수 없습니다. 기본 파라미터 그룹과 연결된 클러스터는 항상 기본 WLM 구성을 사용합니다. WLM 구성을 수정하려면 새 파라미터 그룹을 생성한 후 사용자 지정 WLM 구성이 필요한 모든 클러스터와 생성한 파라미터 그룹을 연결합니다.
WLM 동적 및 정적 속성
WLM 구성 속성은 동적이거나 정적입니다. 동적 속성은 클러스터 재부팅 없이도 데이터베이스에 적용할 수 있지만 정적 속성의 경우 변경 사항이 적용되려면 클러스터를 재부팅해야 합니다. 정적 및 동적 속성에 대한 자세한 내용은 WLM 동적 및 정적 구성 속성을 참조하십시오.
WLM 구성 파라미터의 속성
Amazon Redshift 콘솔, AWS CLI, Amazon Redshift API 또는 AWS SDK 중 하나를 사용하여 WLM을 구성할 수 있습니다. WLM 구성은 몇 가지 속성을 사용하여 대기열에 대한 메모리 할당, 대기열에서 동시에 실행 가능한 쿼리 수 등 대기열 동작을 정의합니다.
참고
다음 속성은 해당 Amazon Redshift 콘솔 이름과 함께 표시되며 해당 설명서 JSON 속성 이름이 표시됩니다.
다음 표는 속성이 자동 WLM에 적용되는지, 아니면 수동 WML에 적용되는지 여부를 요약한 것입니다.
WLM 속성 | 자동 WLM | 수동 WLM |
---|---|---|
자동 WLM | 예 | 예 |
단기 쿼리 가속화 활성화 | 예 | 예 |
단기 쿼리의 최대 실행 시간 | 예 | 예 |
우선 순위 | 예 | 아니요 |
Queue type(대기열 유형) | 예 | 예 |
대기열 이름 | 예 | 예 |
동시성 확장 모드 | 예 | 예 |
동시성 | 아니요 | 예 |
사용자 그룹 | 예 | 예 |
사용자 그룹 와일드카드 | 예 | 예 |
쿼리 그룹 | 예 | 예 |
쿼리 그룹 와일드카드 | 예 | 예 |
사용자 역할 | 예 | 예 |
사용자 역할 와일드카드 | 예 | 예 |
제한 시간 | 아니요 | Deprecated |
메모리 | 아니요 | 예 |
쿼리 모니터링 규칙 | 예 | 예 |
다음은 구성할 수 있는 WLM 속성을 설명한 것입니다.
- 자동 WLM
-
Auto WLM(자동 WLM)을
true
로 설정하면 자동 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
- 우선 순위
-
Priority를 통해 대기열에서 실행되는 쿼리의 우선 순위를 설정할 수 있습니다. 우선 순위를 설정하려면 WLM mode(WLM 모드)를 Auto WLM(자동 WLM)으로 설정해야 합니다. 즉
auto_wlm
이true
이어야 합니다. 우선 순위 값은highest
,high
,normal
,low
및lowest
일 수 있습니다. 기본값은normal
입니다.JSON 속성:
priority
- Queue type(대기열 유형)
-
Queue type(대기열 유형)에서는 Auto WLM(자동 WLM) 또는 Manual 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 대기열 지표(예: WLMQueueLength, WLMQueueWaitTime, WLMQueriesCompletedPerSecond, WLMQueryDuration, WLMRunningQueries 등) 의
QueueName
차원 값도 변경됩니다. 따라서 대기열의 이름을 변경하는 경우 설정한 CloudWatch 경보를 변경해야 할 수 있습니다.JSON 속성:
name
- 동시성 확장 모드
-
대기열에서 동시성 확장을 활성화하려면 Concurrency Scaling mode(동시성 확장 모드)를
auto
로 설정합니다. 대기열로 라우팅된 쿼리의 수가 대기열의 구성된 동시성을 초과하면 적합한 쿼리가 확장 클러스터로 전송됩니다. 슬롯을 사용할 수 있게 되면 쿼리가 기본 클러스터에서 실행됩니다. 기본값은off
입니다.JSON 속성:
concurrency_scaling
- 동시성
-
수동 WLM 대기열에서 동시에 실행할 수 있는 쿼리의 수입니다. 이 속성은 수동 WLM에만 적용됩니다. 동시성 확장이 활성화하면 대기열이 동시성 레벨(쿼리 슬롯)에 도달할 때 적합한 쿼리가 확장 클러스터로 전송됩니다. 동시성 확장이 비활성화되면 슬롯을 사용할 수 있게 될 때까지 쿼리가 대기열에서 대기합니다. 범위는 1~50입니다.
JSON 속성:
query_concurrency
- 사용자 그룹
-
사용자 그룹 이름이 쉼표로 구분된 목록입니다. 사용자 그룹 멤버가 데이터베이스에서 쿼리를 실행하면 사용자 그룹과 연결되어 있는 대기열로 쿼리가 라우팅됩니다.
JSON 속성:
user_group
- 사용자 그룹 와일드카드
-
사용자 그룹의 와일드카드 활성화 여부를 나타내는 부울 값입니다. 값이 0이면 와일드카드가 비활성화되고, 값이 1이면 와일드카드가 활성화됩니다. 와일드카드가 활성화되면 쿼리를 실행할 때 "*" 또는 "?"를 사용하여 다수의 사용자 그룹을 지정할 수 있습니다. 자세한 내용은 와일드카드를 참조하십시오.
JSON 속성:
user_group_wild_card
- 쿼리 그룹
-
쉼표로 분리된 쿼리 그룹 목록입니다. 쿼리 그룹 멤버가 데이터베이스에서 쿼리를 실행하면 쿼리 그룹과 연결되어 있는 대기열로 쿼리가 라우팅됩니다.
JSON 속성:
query_group
- 쿼리 그룹 와일드카드
-
쿼리 그룹의 와일드카드 활성화 여부를 나타내는 부울 값입니다. 값이 0이면 와일드카드가 비활성화되고, 값이 1이면 와일드카드가 활성화됩니다. 와일드카드가 활성화되면 쿼리를 실행할 때 "*" 또는 "?"를 사용하여 다수의 쿼리 그룹을 지정할 수 있습니다. 자세한 내용은 와일드카드를 참조하십시오.
JSON 속성:
query_group_wild_card
- 사용자 역할
-
사용자 역할이 쉼표로 구분된 목록입니다. 해당 사용자 역할을 가진 멤버가 데이터베이스에서 쿼리를 실행하면 사용자 역할과 연결되어 있는 대기열로 쿼리가 라우팅됩니다. 사용자 역할에 대한 자세한 내용은 역할 기반 액세스 제어(RBAC)를 참조하세요.
JSON 속성:
user_role
- 사용자 역할 와일드카드
-
쿼리 그룹의 와일드카드 활성화 여부를 나타내는 부울 값입니다. 값이 0이면 와일드카드가 비활성화되고, 값이 1이면 와일드카드가 활성화됩니다. 와일드카드가 활성화되면 쿼리를 실행할 때 "*" 또는 "?"를 사용하여 다수의 쿼리 그룹을 지정할 수 있습니다. 자세한 내용은 와일드카드를 참조하십시오.
JSON 속성:
user_role_wild_card
- 제한 시간(ms)
-
WLM 제한 시간(
max_execution_time
)은 더 이상 사용되지 않습니다. 자동 WLM을 사용 중인 경우에는 사용할 수 없습니다. 대신query_execution_time
을 통해 QMR(쿼리 모니터링 규칙)을 생성하여 쿼리 실행 경과 시간을 제한하십시오. 자세한 내용은 WLM 쿼리 모니터링 규칙을 참조하십시오.쿼리가 취소되기 전까지 최대한 실행할 수 있는 시간(ms)입니다. 경우에 따라 SELECT 문 등의 읽기 전용 쿼리는 WLM 제한 시간으로 인해 취소될 수 있습니다. 경우에 따라 WLM은 WLM 대기열 할당 규칙을 기반으로 다음에 일치하는 대기열에 쿼리를 라우팅하려고 합니다. 하지만 그 밖에 쿼리와 일치하는 대기열 정의가 없으면 쿼리가 취소되고 기본 대기열로도 할당되지 않습니다. 자세한 내용은 WLM 쿼리 대기열 건너뛰기를 참조하십시오.
returning
상태에 도달한 쿼리에는 WLM 제한 시간이 적용되지 않습니다. 쿼리 상태는 STV_WLM_QUERY_STATE 시스템 테이블에서 확인할 수 있습니다.JSON 속성:
max_execution_time
- 메모리(%)
-
대기열에 할당되는 메모리 비율입니다. 대기열 중에서 최소 1개 이상의 대기열에 메모리 비율을 지정하는 경우에는 나머지 모든 대기열의 총 메모리 비율을 최대 100%까지만 지정해야 합니다. 모든 대기열에 할당되는 메모리 비율이 100% 미만인 경우에는 해당 서비스에서 미할당 메모리를 관리합니다. 이 서비스는 처리를 위해 추가 메모리가 필요한 대기열에 이 미할당 메모리를 임시로 제공할 수 있습니다.
JSON 속성:
memory_percent_to_use
- 쿼리 모니터링 규칙
-
WLM 쿼리 모니터링 규칙은 지정하는 기준, 즉 조건자에 따라 WLM 쿼리 대기열을 연속해서 모니터링하는 데 사용됩니다. 예를 들어 시스템 리소스를 과도하게 소비하는 대기열을 모니터링하다가 쿼리가 지정한 성능 경계를 초과하면 지정한 작업을 시작할 수 있습니다.
참고
프로그래밍 방식으로 규칙을 생성하려면 콘솔을 사용하여 파라미터 그룹 정의에 추가할 JSON을 생성하는 것이 가장 좋습니다.
생성된 쿼리 모니터링 규칙을 원하는 쿼리 대기열과 연결합니다. 대기열 1개당 규칙 수는 최대 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 데이터베이스 개발자 안내서의 쿼리 모니터링 지표를 참조하세요. -
operator
– 연산은=
,<
및>
입니다. -
value
- 지정한 지표에서 작업이 트리거되는 임계값입니다.
-
-
-
action
- 각 규칙은 한 가지 작업과 연결됩니다. 유효 작업은 다음과 같습니다.-
log
-
hop
(수동 WLM에서만 사용할 수 있음) -
abort
-
change_query_priority
(자동 WLM에서만 사용할 수 있음)
-
다음은
rule_1
이라는 이름의 WLM 쿼리 모니터링 규칙에 대한 JSON 속성을 나타낸 예로서, 조건자가 2개이고 작업은hop
입니다."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 데이터베이스 개발자 안내서의 워크로드 관리 구현을 참조하세요.
AWS CLI를 사용하여 WLM 파라미터 구성
WLM을 구성하려면 wlm_json_configuration
파라미터를 수정합니다. wlm_json_configuration
속성 값의 최대 크기는 8000자입니다. 파라미터 값은 JSON(JavaScript Object Notation) 형식을 따릅니다. AWS CLI, Amazon Redshift API 또는 AWS SDK 중 하나를 사용하여 WLM을 구성하는 경우 이 섹션의 나머지 부분에서 wlm_json_configuration
파라미터에 맞춰 JSON 구조를 생성하는 방법에 대해 알아보세요.
참고
Amazon Redshift 콘솔을 사용해 WLM을 구성한다면 콘솔에서 쉽게 대기열을 추가하고 속성을 구성할 수 있기 때문에 JSON 형식에 대해 이해할 필요는 없습니다. 콘솔을 사용해 WLM을 구성하는 방법에 대한 자세한 내용은 파라미터 그룹 수정 단원을 참조하십시오.
예
다음은 자동 WLM을 사용하는 대기열 하나를 정의하는 기본 WLM 구성 예입니다.
{ "auto_wlm": true }
예
다음은 동시성 레벨(쿼리 슬롯)이 5인 수동 WLM 대기열 하나를 정의하는 사용자 지정 WLM 구성 예입니다.
{ "query_concurrency":5 }
구문
기본 WLM 구성은 대기열과 속성 하나로 이루어져 매우 간단합니다. 여기에 대기열을 추가하고, 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로 시작하는 대표 속성은 두 번째 대기열의 배열에 속하는 객체입니다. 대기열이 더 필요한 경우에는 추가되는 대기열마다 배열도 하나씩 더한 후 각 객체 속성을 설정합니다.
WLM 구성을 수정할 때는 대기열의 속성 하나만 변경하더라도 대기열 구조 전체를 입력해야 합니다. 이는 전체 JSON 구조가 wlm_json_configuration
파라미터 값처럼 하나의 문자열로 전달되기 때문입니다.
AWS CLI 명령 형식 지정
AWS CLI를 사용할 때는 wlm_json_configuration
파라미터에 특정 형식이 필요합니다. 사용하는 형식은 클라이언트 운영 체제에 따라 다릅니다. 운영 체제마다 JSON 구조를 묶는(enclose) 방법이 다르기 때문에 명령줄에서 정확히 입력해야 합니다. Linux, Mac OS X 및 Windows 운영 체제에서 명령을 알맞게 작성하는 방법에 대한 자세한 내용은 이후 단원들을 참조하십시오. 일반적으로 AWS CLI로 JSON 데이터 구조를 묶는 차이점에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서의 인용 문자열을 참조하세요.
예시
다음은 example-parameter-group
이라는 파라미터 그룹에 대해 수동 WLM을 구성하는 명령의 예입니다. 구성을 사용하면 단기 쿼리의 가속의 최대 실행 시간이 0으로 설정된 단기 쿼리 가속이 활성화되어 WLM에서 이 값을 동적으로 설정하도록 지시합니다. ApplyType
설정은 dynamic
입니다. 즉, 다른 정적 속성 변경이 없는 한 파라미터의 동적 속성에 대한 변경 사항이 바로 적용됩니다. 구성은 다음과 같이 대기열 3개를 정의합니다.
-
첫 번째 대기열에서는 쿼리가 대기열로 라우팅될 수 있도록 사용자가
report
를 쿼리 레이블로 지정할 수 있습니다(query_group
속성에서 지정).report*
레이블에는 와일드카드 검색이 활성화되어 있기 때문에 레이블이 정확하지 않더라도 쿼리가 대기열에 라우팅되는 데 아무런 문제가 없습니다.reports
와reporting
이 모두 이 쿼리 그룹과 일치하는 경우를 예로 들어 보겠습니다. 모든 대기열 중에서 이 대기열에 할당되는 메모리는 총 메모리의 25%이며, 동시에 실행할 수 있는 최대 쿼리 수는 4개입니다. 쿼리의 최대 시간은 20000밀리초(ms)로 제한됩니다. 모드는 auto(자동)로 설정되는데, 따라서 대기열의 쿼리 슬롯이 꽉 찬 경우 적합한 쿼리가 확장 클러스터로 전송됩니다. -
두 번째 대기열에서는 데이터베이스의
admin
또는dba
그룹 멤버인 사용자가 처리를 위해 쿼리를 대기열로 라우팅할 수 있습니다. 사용자 그룹에서는 와일드카드 검색이 비활성화되어 있기 때문에 사용자가 데이터베이스의 그룹과 정확히 일치해야만 쿼리가 대기열로 라우팅됩니다. 모든 대기열 중에서 이 대기열에 할당되는 메모리는 총 메모리의 40%이며, 동시에 실행할 수 있는 최대 쿼리 수는 5개입니다. 모드는 off(해제)로 설정되므로 관리자 또는 dba 그룹의 멤버가 보낸 모든 쿼리는 기본 클러스터에서 실행됩니다. -
구성에서 마지막 대기열은 기본 대기열입니다. 모든 대기열 중에서 이 대기열에 할당되는 메모리는 총 메모리의 35%이며, 동시에 처리할 수 있는 최대 쿼리 수는 5개입니다. 모드는 auto(자동)로 설정됩니다.
참고
다음 예에서는 설명을 위해 여러 줄로 표시하였지만 실제 명령에서는 줄 바꿈을 사용하면 안 됩니다.
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
이라는 이름의 규칙을 정의합니다. 이 규칙에는 조건자가query_cpu_time > 10000000
과query_blocks_read > 1000
, 2개입니다. 규칙 작업은log
입니다. 이 대기열의 우선 순위는Normal
입니다. -
두 번째 대기열에서는
rule_2
라는 이름의 규칙을 정의합니다. 이 규칙에는 조건자가query_execution_time > 600000000
과scan_row_count > 1000000000
, 2개입니다. 규칙 작업은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 구성
AWS CLI를 사용하여 wlm_json_configuration
파라미터를 수정하고 parameters
인수 값을 JSON 파일로 전달할 수 있습니다.
aws redshift modify-cluster-parameter-group --parameter-group-name myclusterparaametergroup --parameters file://modify_pg.json
--parameters
의 인수는 modify_pg.json
파일에 저장됩니다. 파일 위치는 해당 운영 체제에 맞는 형식으로 지정됩니다. 자세한 내용은 파일에서 파라미터 로드를 참조하세요. 다음은 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을 구성하는 규칙
다음 규칙에 따라 파라미터가 한 줄에 있는 AWS CLI 명령을 실행합니다.
-
전체 JSON 구조는 작은 따옴표(')와 대괄호([ ])로 묶여야 합니다.
-
모든 파라미터 이름과 파라미터 값은 큰 따옴표(")로 묶여야 합니다.
-
ParameterValue
값에서는 중첩되는 전체 구조를 큰 따옴표(")와 대괄호([ ])로 묶어야 합니다. -
중첩 구조에서는 각 대기열의 속성과 값을 일일이 중괄호({ })로 묶어야 합니다.
-
중첩 구조에서는 큰 따옴표(")가 나올 때마다 그 앞에 백슬래시(\) 이스케이프 문자를 사용해야 합니다.
-
이름/값 페어에서는 콜론(:)을 사용하여 각 속성과 값을 구분합니다.
-
이름/값 페어는 각각 쉼표(,)를 사용해 서로 구분합니다.
-
다수의 대기열을 추가할 때는 앞쪽 대기열의 후행 중괄호(})와 뒤쪽 대기열의 선행 중괄호({) 사이에 쉼표(,)를 찍어 서로 구분합니다.
Microsoft Windows 운영 체제의 Windows PowerShell에서 AWS CLI를 사용하여 WLM을 구성하는 규칙
다음 규칙에 따라 파라미터가 한 줄에 있는 AWS CLI 명령을 실행합니다.
-
전체 JSON 구조는 작은 따옴표(')와 대괄호([ ])로 묶여야 합니다.
-
모든 파라미터 이름과 파라미터 값은 큰 따옴표(")로 묶여야 합니다.
-
ParameterValue
값에서는 중첩되는 전체 구조를 큰 따옴표(")와 대괄호([ ])로 묶어야 합니다. -
중첩 구조에서는 각 대기열의 속성과 값을 일일이 중괄호({ })로 묶어야 합니다.
-
중첩 구조에서는 큰따옴표(")와 백슬래시(\) 이스케이프 문자가 나올 때마다 그 앞에 백슬래시(\) 이스케이프 문자를 사용해야 합니다. 즉, 속성이 올바르게 전달되려면 백슬래시 3개와 큰따옴표 1개를 사용해야 합니다(\\\").
-
이름/값 페어에서는 콜론(:)을 사용하여 각 속성과 값을 구분합니다.
-
이름/값 페어는 각각 쉼표(,)를 사용해 서로 구분합니다.
-
다수의 대기열을 추가할 때는 앞쪽 대기열의 후행 중괄호(})와 뒤쪽 대기열의 선행 중괄호({) 사이에 쉼표(,)를 찍어 서로 구분합니다.
Windows 운영 체제에서 명령 프롬프트를 사용하여 WLM를 구성하는 규칙
다음 규칙에 따라 파라미터가 한 줄에 있는 AWS CLI 명령을 실행합니다.
-
전체 JSON 구조는 큰따옴표(")와 대괄호([ ])로 묶여야 합니다.
-
모든 파라미터 이름과 파라미터 값은 큰 따옴표(")로 묶여야 합니다.
-
ParameterValue
값에서는 중첩되는 전체 구조를 큰 따옴표(")와 대괄호([ ])로 묶어야 합니다. -
중첩 구조에서는 각 대기열의 속성과 값을 일일이 중괄호({ })로 묶어야 합니다.
-
중첩 구조에서는 큰따옴표(")와 백슬래시(\) 이스케이프 문자가 나올 때마다 그 앞에 백슬래시(\) 이스케이프 문자를 사용해야 합니다. 즉, 속성이 올바르게 전달되려면 백슬래시 3개와 큰따옴표 1개를 사용해야 합니다(\\\").
-
이름/값 페어에서는 콜론(:)을 사용하여 각 속성과 값을 구분합니다.
-
이름/값 페어는 각각 쉼표(,)를 사용해 서로 구분합니다.
-
다수의 대기열을 추가할 때는 앞쪽 대기열의 후행 중괄호(})와 뒤쪽 대기열의 선행 중괄호({) 사이에 쉼표(,)를 찍어 서로 구분합니다.