워크로드 분류자 만들기(Transact-SQL)

적용 대상:Azure Synapse Analytics

워크로드 관리에 사용할 분류자 개체를 만듭니다. 분류자는 분류자 문 정의에 지정된 매개 변수에 따라 들어오는 요청을 워크로드 그룹에 할당합니다. 분류자는 제출된 모든 요청마다 평가됩니다. 요청이 분류자와 일치하지 않으면 기본 워크로드 그룹에 할당됩니다. 기본 워크로드 그룹은 리소스 클래스입니다 smallrc .

참고 항목

MI(관리 ID) 동작 분류는 Azure Synapse 작업 영역의 전용 SQL 풀과 독립 실행형 전용 SQL 풀(이전의 SQL DW) 간에 다릅니다. 독립 실행형 전용 SQL 풀 MI는 할당된 ID를 유지하지만 Azure Synapse 작업 영역은 dbo 역할에 MI를 추가합니다. 이 작업은 변경할 수 없습니다. 기본적으로 dbo 역할은 .로 분류smallrc됩니다. dbo 역할에 대한 분류자를 만들면 smallrc. dbo만 분류에 너무 일반적이고 광범위한 영향을 미치는 경우 dbo 역할 분류와 함께 레이블, 세션 또는 시간 기반 분류를 사용하는 것이 좋습니다.

Transact-SQL 구문 표기 규칙

Syntax

CREATE WORKLOAD CLASSIFIER classifier_name
WITH
    ( WORKLOAD_GROUP = 'name'
    , MEMBERNAME = 'security_account'
    [ [ , ] WLM_LABEL = 'label' ]
    [ [ , ] WLM_CONTEXT = 'context' ]
    [ [ , ] START_TIME = 'HH:MM' ]
    [ [ , ] END_TIME = 'HH:MM' ]
    [ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH } ] )
[ ; ]

참고

이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

인수

classifier_name

워크로드 분류자를 식별하는 이름을 지정합니다. classifier_name sysname입니다. 이 매개 변수는 최대 128자까지 가능하며 인스턴스 내에서 고유해야 합니다.

WORKLOAD_GROUP = 'name'

조건이 분류자 규칙으로 충족되면 이름은 요청을 작업 그룹에 매핑합니다. 이름은 sysname입니다. 이 매개 변수는 최대 128자까지 가능하며 분류자를 만들 때 유효한 워크로드 그룹 이름이어야 합니다.

사용 가능한 워크로드 그룹은 sys.workload_management_workload_groups 카탈로그 뷰에서 찾을 수 있습니다.

MEMBERNAME = 'security_account'

분류하는 데 사용되는 보안 계정입니다. security_account 기본값이 없는 sysname입니다. security_account 데이터베이스 사용자, 데이터베이스 역할, Microsoft Entra 로그인 또는 Microsoft Entra 그룹일 수 있습니다.

참고 항목

user_name() 시스템에 연결된 경우 함수를 사용하여 분류 프로세스가 요청을 분류하는 데 사용할 것인지 확인 MEMBERNAME 합니다. 함수를 MEMBERNAMEuser_name() 사용하여 확인하면 Microsoft Entra ID 또는 서비스 주체 분류 문제를 해결하는 데 도움이 될 수 있습니다. 반환되는 경우 user_name() dboMEMBERNAME 요청 분류로 사용할 dbo있습니다. dbo 역할의 모든 멤버는 분류됩니다. dbo 역할에 매핑하는 여러 Microsoft Entra 계정의 요청을 구체적으로 분류하는 데 사용하거나 WLM_CONTEXT 이와 같은 WLM_LABEL 추가 분류 매개 변수를 사용할 수도 있습니다.

WLM_LABEL

요청을 분류하는 데 사용할 수 있는 레이블 값을 지정합니다. 레이블은 nvarchar(255) 형식의 선택적 매개 변수입니다. 요청에 OPTION (LABEL)을 사용하여 분류자 구성과 일치시킵니다.

예시:

CREATE WORKLOAD CLASSIFIER wcELTLoads
WITH (
    WORKLOAD_GROUP = 'wgDataLoad',
    MEMBERNAME = 'ELTRole',
    WLM_LABEL = 'dimension_loads'
);
    
SELECT COUNT(*) FROM DimCustomer
OPTION (LABEL = 'dimension_loads');

WLM_CONTEXT

요청을 분류할 수 있는 세션 컨텍스트 값을 지정합니다. WLM_CONTEXT는 nvarchar(255) 형식의 선택적 매개 변수입니다. 세션 컨텍스트를 설정하는 요청을 제출하기 전에 변수 이름이 같은 wlm_context sys.sp_set_session_context 사용합니다.

예시:

CREATE WORKLOAD CLASSIFIER wcDataLoad
WITH (
    WORKLOAD_GROUP = 'wgDataLoad',
    MEMBERNAME = 'ELTRole',
    WLM_CONTEXT = 'dim_load'
);

--set session context
EXEC sys.sp_set_session_context @key = 'wlm_context', @value = 'dim_load';

--run multiple statements using the wlm_context setting
SELECT COUNT(*) FROM stg.daily_customer_load;
SELECT COUNT(*) FROM stg.daily_sales_load;

--turn off the wlm_context session setting
EXEC sys.sp_set_session_context @key = 'wlm_context', @value = NULL;

START_TIME 및 END_TIME

요청을 분류할 수 있는 시작 시간 및 종료 시간을 지정합니다. END_TIME 둘 다 START_TIME UTC 표준 시간대의 형식입니다HH:mm. START_TIME 를 함께 END_TIME 지정해야 합니다.

예시:

CREATE WORKLOAD CLASSIFIER wcELTLoads
WITH (
    WORKLOAD_GROUP = 'wgDataLoads',
    MEMBERNAME = 'ELTRole',
    START_TIME = '22:00',
    END_TIME = '02:00'
);

IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }

요청의 상대적 중요도를 지정합니다. IMPORTANCE 는 다음 옵션 중 하나입니다.

  • LOW
  • BELOW_NORMAL
  • NORMAL (기본값)
  • ABOVE_NORMAL
  • HIGH

지정하지 않으면 IMPORTANCE 워크로드 그룹의 중요도 설정이 사용됩니다. 기본 워크로드 그룹 중요도는 .입니다 NORMAL. 중요도는 요청이 예약된 순서에 영향을 미치므로 리소스 및 잠금에 첫 번째 액세스 권한을 부여합니다.

설명

사용자 정의 분류자의 최대 수는 .입니다 100. 이 제한을 초과하는 추가 구성은 지원되지 않습니다. 여러 워크로드 또는 사용자 간에 단일 설정을 효율적으로 적용하기 위해 공통 범주에 따라 분류자를 그룹화하는 것이 좋습니다.

분류 매개 변수 가중치

요청을 여러 분류자와 일치시킬 수 있습니다. 분류자 매개 변수에 대한 가중치가 있습니다. 가중치가 높은 일치 분류자는 작업 그룹 및 중요도를 할당하는 데 사용됩니다. 가중치는 다음과 같습니다.

분류자 매개 변수 무게
USER 64
ROLE 32
WLM_LABEL 16
WLM_CONTEXT 8
START_TIME/END_TIME 4

다음 분류자 구성을 고려하세요.

CREATE WORKLOAD CLASSIFIER classifierA
WITH (
    WORKLOAD_GROUP = 'wgDashboards',
    MEMBERNAME = 'userloginA',
    IMPORTANCE = HIGH,
    WLM_LABEL = 'salereport'
);

CREATE WORKLOAD CLASSIFIER classifierB
WITH (
    WORKLOAD_GROUP = 'wgUserQueries',
    MEMBERNAME = 'userloginA',
    IMPORTANCE = LOW,
    START_TIME = '18:00',
    END_TIME = '07:00'
);

사용자 userloginA는 두 분류자에 대해 구성됩니다. 오후 6시에서 오전 7시 UTC 사이에 레이블이 같은 salesreport 쿼리를 실행하는 경우 userloginA 요청은 중요도를 가진 wgDashboardsHIGH 워크로드 그룹으로 분류됩니다. 근무 시간 외 보고에 대한 중요도로 요청을 분류하는 wgUserQueries 것이 예상될 수 있지만 가중치는 WLM_LABEL 1보다 START_TIME/END_TIME높습니다.LOW 가중 classifierA 치는 (64사용자에 대해 더하기16)WLM_LABEL입니다 80 . 가중 classifierB 치는 (64사용자의 4END_TIME/START_TIME경우)입니다.68 이 경우 에 추가할 WLM_LABELclassifierB수 있습니다.

자세한 내용은 워크로드 가중치를 참조 하세요.

사용 권한

CONTROL DATABASE 권한이 필요합니다.

예제

다음 예제에서는 wgcELTRole라는 작업 분류자를 만드는 방법을 보여줍니다. 워크로드 그룹, 사용자를 ELTRole사용하고 staticrc20 IMPORTANCEABOVE_NORMAL를 .로 설정합니다.

CREATE WORKLOAD CLASSIFIER wgcELTRole
WITH (
    WORKLOAD_GROUP = 'staticrc20',
    MEMBERNAME = 'ELTRole',
    IMPORTANCE = ABOVE_NORMAL
);