Klasifikace úloh pro vyhrazený fond SQL ve službě Azure Synapse Analytics

Tip

Microsoft Fabric Data Warehouse je relační sklad v podnikovém měřítku na základu datového jezera s architekturou připravenou pro budoucnost, integrovanou AI a novými funkcemi. Pokud s datovými sklady začínáte, začněte pracovat s Fabric Data Warehouse. Stávající úlohy fondu dedikované SQL můžou upgradovat na Fabric a získat tak přístup k novým funkcím napříč datovou vědou, analýzou v reálném čase a reportováním.

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í příkazů SELECT. Ř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 se mohou vztahovat jiné zásady úloh, které jim dávají nižší důležitost ve srovnání s aktivitami načítání.

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. Zátěž může také těžit z podklasifikace. Velké transformace je možné přiřadit k větším třídám prostředků. Vyšší důležitost lze použít k zajištění, že klíčová prodejní data budou načtena před daty o počasí nebo před informačním kanálem sociálních dat.

Ne všechna prohlášení jsou klasifikována, protože nevyžadují prostředky ani význam ke zvýšení vlivu na provádění. DBCCpříkazy, , BEGINCOMMITa 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. Možnost charakterizovat požadavky, které přesahují pouhé přihlášení ke třídě prostředků, je touto funkcionalitou omezená. 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 se používá vážení, které určuje, která skupina úloh je přiřazena. Hodnocení je následující:

Parametr klasifikátoru Hmotnost
MEMBERNAME:UŽIVATEL 64
NÁZEV ČLENA:ROLE 32
Štítek_WLM 16
WLM_CONTEXT 8
ČAS_ZAČÁTKU/ČAS_KONCE 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 klasifikována jako smallrc. Vytvoření klasifikátoru pro roli dbo umožňuje přiřazování požadavků jiné skupině úloh než smallrc. Pokud je samo dbo příliš obecné pro klasifikaci a má širší dopady, zvažte použití popisu, 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í stávající členství v rolích třídy zdrojů na přidělení zdrojů třídy 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

Míchejte přiřazení tříd zdrojů 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á databázového uživatele DBAUser, který je přiřazen k roli třídy prostředků s vyšší kapacitou. 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é DBAUser je členem) vytvořený klasifikátor, který je mapuje na střední a vysokou důležitost.
  • Když se DBAUser přihlásí a spustí dotaz, dotaz bude přiřazen k largerc. 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 zdrojové třídy. Spusťte sp_droprolemember pro každý název člena vrácený odpovídající třídou zdrojů.

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;