CREATE WORKLOAD CLASSIFIER (Transact-SQL)
Si applica a: Azure Synapse Analytics
Crea un oggetto classificatore da usare nella gestione del carico di lavoro. Il classificatore assegna le richieste in ingresso a un gruppo di carico di lavoro in base ai parametri specificati nella definizione dell'istruzione del classificatore stesso. I classificatori vengono valutati con ogni richiesta inviata. Se una richiesta non corrisponde a un classificatore, viene assegnata al gruppo di carico di lavoro predefinito. Il gruppo di carico di lavoro predefinito è la smallrc
classe di risorse.
Nota
La classificazione dei comportamenti delle identità gestite differisce tra il pool SQL dedicato nelle aree di lavoro di Azure Synapse e il pool SQL dedicato autonomo (in precedenza SQL Data Warehouse). Mentre le identità gestite del pool SQL dedicato autonomo mantengono l'identità assegnata, le aree di lavoro di Azure Synapse aggiungono le identità gestite al ruolo dbo. Tali dimensioni non possono essere modificate. Il ruolo dbo , per impostazione predefinita, è classificato in smallrc
. La creazione di un classificatore per il ruolo dbo consente di assegnare richieste a un gruppo di carico di lavoro diverso da smallrc
. Se dbo da solo è troppo generico per la classificazione e ha un impatto più ampio, prendere in considerazione l'uso di etichetta, sessione o classificazione basata sul tempo insieme alla classificazione dei ruoli dbo .
Convenzioni relative alla sintassi Transact-SQL
Sintassi
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 } ] )
[ ; ]
Nota
Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.
Argomenti
classifier_name
Specifica il nome con cui viene identificato il classificatore del carico di lavoro. classifier_name è sysname. Questo parametro può contenere fino a 128 caratteri e deve essere univoco all'interno dell'istanza.
WORKLOAD_GROUP = 'name'
Quando le regole del classificatore soddisfano le condizioni, name esegue il mapping della richiesta a un gruppo di carico di lavoro. name è sysname. Questo parametro può contenere fino a 128 caratteri e deve essere un nome di gruppo di carico di lavoro valido al momento della creazione del classificatore.
I gruppi del carico di lavoro disponibili sono reperibili nella vista del catalogo sys.workload_management_workload_groups.
MEMBERNAME = 'security_account'
Account di sicurezza usato per classificare in base a . security_account è sysname, senza impostazione predefinita. security_account può essere un utente del database, un ruolo del database, un account di accesso Microsoft Entra o un gruppo Microsoft Entra.
Nota
Usare la user_name()
funzione, quando si è connessi al sistema, per verificare MEMBERNAME
che il processo di classificazione userà per classificare la richiesta. La verifica di MEMBERNAME
con la user_name()
funzione può essere utile per la risoluzione dei problemi di classificazione dell'entità servizio o dell'ID Entra di Microsoft. Se user_name()
restituisce dbo
, è possibile usare dbo come per MEMBERNAME
classificare le richieste. Tutti i membri del ruolo dbo verranno classificati. È anche possibile usare parametri di classificazione aggiuntivi, WLM_LABEL
ad esempio o , WLM_CONTEXT
per classificare in modo specifico le richieste da più account Microsoft Entra per eseguire il mapping al ruolo dbo .
WLM_LABEL
Specifica il valore dell'etichetta rispetto al quale è possibile classificare una richiesta. Label è un parametro facoltativo di tipo nvarchar(255). Usare OPTION (LABEL) nella richiesta per associare la configurazione del classificatore.
Ad esempio:
CREATE WORKLOAD CLASSIFIER wcELTLoads
WITH (
WORKLOAD_GROUP = 'wgDataLoad',
MEMBERNAME = 'ELTRole',
WLM_LABEL = 'dimension_loads'
);
SELECT COUNT(*) FROM DimCustomer
OPTION (LABEL = 'dimension_loads');
WLM_CONTEXT
Specifica il valore del contesto della sessione rispetto al quale è possibile classificare una richiesta. WLM_CONTEXT
è un parametro facoltativo di tipo nvarchar(255). Usare il sys.sp_set_session_context con il nome della variabile uguale a wlm_context
prima di inviare una richiesta per impostare il contesto della sessione.
Ad esempio:
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 ed END_TIME
Specifica l'ora di inizio e l'ora di fine rispetto a cui una richiesta può essere classificata. Sia START_TIME
che END_TIME
sono del HH:mm
formato nel fuso orario UTC. START_TIME
e END_TIME
devono essere specificati insieme.
Ad esempio:
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 }
Specifica l'importanza relativa di una richiesta. IMPORTANCE
è una delle opzioni seguenti:
LOW
BELOW_NORMAL
NORMAL
(predefinito)ABOVE_NORMAL
HIGH
Se IMPORTANCE
non viene specificato, viene usata l'impostazione dell'importanza del gruppo di carico di lavoro. L'importanza predefinita del gruppo di carico di lavoro è NORMAL
. L'importanza ha effetti sull'ordine in cui le richieste vengono pianificate, offrendo quindi un accesso prioritario a risorse e blocchi.
Osservazioni:
Il numero massimo di classificatori definiti dall'utente è 100
. Le configurazioni aggiuntive oltre questo limite non sono supportate. È consigliabile raggruppare i classificatori in una categoria comune per un'applicazione efficiente di un'unica impostazione, in più carichi di lavoro o utenti.
Ponderazione dei parametri di classificazione
Una richiesta può essere confrontata con più classificatori. Esiste un peso per i parametri del classificatore. Per assegnare un gruppo del carico di lavoro e una priorità, viene usato il classificatore con il valore di corrispondenza ponderata più alto. La ponderazione è basata sui criteri seguenti:
Parametro del classificatore | Peso |
---|---|
USER |
64 |
ROLE |
32 |
WLM_LABEL |
16 |
WLM_CONTEXT |
8 |
START_TIME /END_TIME |
4 |
Considerare le configurazioni dei classificatori seguenti.
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'
);
L'utente userloginA
è configurato per entrambi i classificatori. Se userloginA
esegue una query con un'etichetta uguale a salesreport
tra le 16:00 e le 7:00 UTC, la richiesta viene classificata nel gruppo di wgDashboards
carico di lavoro con HIGH
importanza. L'aspettativa potrebbe essere classificare la richiesta a wgUserQueries
con importanza per la creazione di report fuori orario, ma la ponderazione di WLM_LABEL
è superiore aEND_TIME
START_TIME
/ .LOW
Il peso di è ( per l'utente, più 16
per WLM_LABEL
).64
80
classifierA
Il peso di è ( per l'utente, 4
per START_TIME
END_TIME
/).64
68
classifierB
In questo caso, è possibile aggiungere WLM_LABEL
a classifierB
.
Per altre informazioni, vedere Ponderazione del carico di lavoro.
Autorizzazioni
È richiesta l'autorizzazione CONTROL DATABASE
.
Esempi
Nell'esempio riportato di seguito viene illustrato come creare un classificatore del carico di lavoro denominato wgcELTRole
. Usa il staticrc20
gruppo di carico di lavoro, l'utente ELTRole
e imposta l'elemento IMPORTANCE su ABOVE_NORMAL
.
CREATE WORKLOAD CLASSIFIER wgcELTRole
WITH (
WORKLOAD_GROUP = 'staticrc20',
MEMBERNAME = 'ELTRole',
IMPORTANCE = ABOVE_NORMAL
);