Klasifikace úloh pro vyhrazený fond SQL ve službě Azure Synapse Analytics
Tento článek vysvětluje proces klasifikace úloh přiřazení skupiny úloh a důležitosti příchozím požadavkům s vyhrazenými fondy SQL ve službě Azure Synapse.
Klasifikace
Klasifikace správy úloh umožňuje aplikovat zásady úloh na požadavky prostřednictvím přiřazování tříd prostředků a důležitosti.
I když existuje mnoho způsobů klasifikace úloh datových skladů, nejjednodušší a nejběžnější klasifikací je načtení a dotazování. Data načtete pomocí příkazů vložení, aktualizace a odstranění. Dotazujete se na data pomocí výběrů. Řešení datových skladů bude často mít zásady úloh pro zátěžovou aktivitu, například přiřazení vyšší třídy prostředků s více prostředky. Na dotazy, jako je například nižší důležitost v porovnání s aktivitami načítání, se můžou použít jiné zásady úloh.
Můžete také podtřídět zatížení a úlohy dotazů. Podtřídění vám dává větší kontrolu nad úlohami. Úlohy dotazů se můžou například skládat z aktualizací datové krychle, dotazů na řídicích panelů nebo dotazů ad hoc. Každou z těchto úloh dotazů můžete klasifikovat s různými třídami prostředků nebo nastavením důležitosti. Načtení může také těžit z podtřídy. Velké transformace je možné přiřadit k větším třídám prostředků. Vyšší důležitost je možné použít k zajištění načtení klíčových prodejních dat před daty o počasí nebo informačním kanálem sociálních dat.
Ne všechny příkazy jsou klasifikovány, protože nevyžadují prostředky nebo potřebují význam pro ovlivnění provádění. DBCC
příkazy, , BEGIN
COMMIT
a ROLLBACK TRANSACTION
příkazy nejsou klasifikovány.
Proces klasifikace
Klasifikace vyhrazeného fondu SQL se dnes dosahuje přiřazením uživatelů k roli, která má přiřazenou odpovídající třídu prostředků pomocí sp_addrolemember. Schopnost charakterizovat požadavky nad rámec přihlášení ke třídě prostředků je omezená s touto schopností. Rozsáhlejší metoda klasifikace je nyní k dispozici se syntaxí CREATE WORKLOAD CLASSIFIER . Díky této syntaxi můžou uživatelé vyhrazeného fondu SQL přiřadit důležitost a množství systémových prostředků přiřazených k požadavku prostřednictvím parametru workload_group
.
Váhy klasifikace
V rámci procesu klasifikace je potřeba určit, která skupina úloh je přiřazena, vážení. Váhy platí takto:
Parametr klasifikátoru | Hmotnost |
---|---|
MEMBERNAME:USER | 64 |
NÁZEV ČLENA:ROLE | 32 |
WLM_LABEL | 16 |
WLM_CONTEXT | 8 |
START_TIME/END_TIME | 4 |
Parametr MEMBERNAME
je povinný. Pokud je však zadaným názvem člena uživatel databáze namísto databázové role, je váha uživatele vyšší a proto je zvolen klasifikátor.
Pokud je uživatel členem více rolí s různými třídami prostředků přiřazenými nebo shodnými v několika klasifikátorech, přiřadí se uživateli nejvyšší přiřazení třídy zdrojů. Toto chování je konzistentní s existujícím chováním přiřazení třídy prostředků.
Poznámka:
Klasifikace chování spravovaných identit se liší mezi vyhrazeným fondem SQL v pracovních prostorech Azure Synapse a samostatným vyhrazeným fondem SQL (dříve SQL DW). Zatímco samostatná spravovaná identita vyhrazeného fondu SQL udržuje přiřazenou identitu, pro pracovní prostory Azure Synapse se spravovaná identita spouští jako dbo
. Toto chování nelze změnit. Ve výchozím nastavení je role dbo klasifikovaná na smallrc. Vytvoření klasifikátoru pro roli dbo umožňuje přiřazování požadavků jiné skupině úloh než smallrc. Pokud je dbo příliš obecný pro klasifikaci a má širší dopady, zvažte použití popisku, relace nebo klasifikace založené na čase ve spojení s klasifikací role dbo.
S výjimkou smallrc se dynamické třídy prostředků implementují jako předdefinované databázové role. Smallrc se nezobrazuje jako role databáze, ale je výchozí třída prostředků.
Klasifikátory systému
Klasifikace úloh má klasifikátory systémových úloh. Klasifikátory systému mapují existující členství v rolích třídy prostředků na přidělení prostředků třídy prostředků s normální důležitostí. Klasifikátory systému nelze vyhodit. Pokud chcete zobrazit klasifikátory systému, můžete spustit následující dotaz:
SELECT * FROM sys.workload_management_workload_classifiers where classifier_id <= 12
Kombinace přiřazení tříd prostředků s klasifikátory
Klasifikátory systému vytvořené vaším jménem poskytují snadnou cestu k migraci na klasifikaci úloh. Použití mapování rolí třídy prostředků s prioritou klasifikace může vést k chybné klasifikaci při vytváření nových klasifikátorů s důležitostí.
Zvažte následující scénář:
- Existující datový sklad má uživatele databáze DBAUser přiřazenou k roli větší třídy prostředků. Přiřazení třídy zdrojů bylo provedeno pomocí
sp_addrolemember.
- Datový sklad se teď aktualizuje o správu úloh.
- Pro otestování nové syntaxe klasifikace má role databáze DBARole (kterého dbAUser je členem) vytvořený klasifikátor, který je pro ně namapovat na střední a vysokou důležitost.
- Když se DBAUser přihlásí a spustí dotaz, dotaz se přiřadí většímu. Vzhledem k tomu, že uživatel má přednost před členstvím v roli.
Pokud chcete zjednodušit řešení potíží s chybnou klasifikací, doporučujeme při vytváření klasifikátorů tříd úloh odebrat mapování rolí třídy prostředků. Následující kód vrátí existující členství v rolích třídy prostředků. Spusťte sp_droprolemember pro každý název člena vrácený z odpovídající třídy prostředků.
SELECT r.name AS [Resource Class]
, m.name AS membername
FROM sys.database_role_members rm
JOIN sys.database_principals AS r ON rm.role_principal_id = r.principal_id
JOIN sys.database_principals AS m ON rm.member_principal_id = m.principal_id
WHERE r.name IN ('mediumrc','largerc','xlargerc','staticrc10','staticrc20','staticrc30','staticrc40','staticrc50','staticrc60','staticrc70','staticrc80');
--for each row returned run in the previous query
EXEC sp_droprolemember '[Resource Class]', membername;
Související obsah
- Další informace o vytvoření klasifikátoru najdete v tématu CREATE WORKLOAD CLASSIFIER (Transact-SQL).
- Podívejte se na rychlý start, jak vytvořit klasifikátor úloh – Vytvoření klasifikátoru úloh.
- Přečtěte si články s návody ke konfiguraci důležitosti úloh a postupu při správě a monitorování správy úloh.
- Pokud chcete zobrazit dotazy a přiřazenou důležitost, podívejte se na sys.dm_pdw_exec_requests .