Klasifikace úloh pro vyhrazený fond SQL v Azure Synapse Analytics

Tento článek vysvětluje proces klasifikace úloh přiřazení skupiny úloh a důležitost příchozím požadavkům s vyhrazenými fondy SQL v Azure Synapse.

Classification

Klasifikace správy úloh umožňuje aplikovat zásady úloh na požadavky prostřednictvím přiřazení tříd prostředků a důležitosti.

I když existuje mnoho způsobů, jak klasifikovat úlohy datových skladů, nejjednodušší a nejběžnější klasifikací je načítání a dotazování. Data načítáte pomocí příkazů insert, update a delete. Dotazujete se na data pomocí výběrů. Řešení datových skladů má často 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 můžou vztahovat jiné zásady úloh, například nižší důležitost v porovnání s aktivitami načítání.

Úlohy zatížení a dotazů můžete také podtřídět. Podtříděná třída poskytuje větší kontrolu nad úlohami. Úlohy dotazů se můžou skládat například z aktualizací datových krychlí, dotazů na řídicích panelech nebo dotazů ad hoc. Každou z těchto úloh dotazů můžete klasifikovat pomocí různých tříd prostředků nebo nastavení důležitosti. Zatížení 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í toho, aby se klíčová data o prodeji zavaděla před daty o počasí nebo datovým kanálem sociálních sítí.

Ne všechny příkazy jsou klasifikovány, protože nevyžadují prostředky nebo potřebují důležitost pro ovlivnění provádění. Příkazy DBCC, BEGIN, COMMIT a ROLLBACK TRANSACTION 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 s touto schopností omezená. Díky syntaxi CREATE WORKLOAD CLASSIFIER je teď k dispozici bohatší metoda klasifikace. Pomocí této syntaxe 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ážení klasifikace

V rámci procesu klasifikace se používá vážení, které určuje přiřazenou skupinu úloh. Váha je následující:

Parametr klasifikátoru Hmotnost
MEMBERNAME:USER 64
MEMBERNAME: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 místo databázové role, je váha pro 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 spárovanými ve více klasifikátorech, je mu přiděleno nejvyšší přiřazení třídy prostředků. Toto chování je konzistentní s existujícím chováním přiřazování tříd prostředků.

Poznámka

Klasifikace chování spravovaných identit (MI) 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 mi samostatného vyhrazeného fondu SQL udržuje přiřazenou identitu, pro Azure Synapse pracovních prostorů běží mi jako dbo. Toto se nedá změnit. Role dbo je ve výchozím nastavení klasifikována jako smallrc. Vytvoření klasifikátoru pro roli dbo umožňuje přiřazovat požadavky do jiné skupiny úloh než smallrc. Pokud je samotná databáze příliš obecná pro klasifikaci a má širší dopad, zvažte použití klasifikace na základě popisku, relace nebo času ve spojení s klasifikací role dbo.

Klasifikátory systému

Klasifikace úloh obsahuje systémové klasifikátory úloh. Systémové klasifikátory 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 vynechat. Pokud chcete zobrazit systémové klasifikátory, můžete spustit následující dotaz:

SELECT * FROM sys.workload_management_workload_classifiers where classifier_id <= 12

Kombinování přiřazení tříd prostředků s klasifikátory

Klasifikátory systému vytvořené vaším jménem poskytují snadný způsob migrace na klasifikaci úloh. Použití mapování rolí třídy prostředků s prioritou klasifikace může vést k nesprávné klasifikaci, protože začnete vytvářet nové klasifikátory s důležitostí.

Představte si následující scénář:

  • Existující datový sklad má uživatele databáze DBAUser přiřazenou k roli třídy prostředků largerc. Přiřazení třídy zdrojů bylo provedeno pomocí sp_addrolemember.
  • Datový sklad je teď aktualizovaný o správu úloh.
  • Aby bylo možné otestovat novou syntaxi klasifikace, má role databáze DBARole (jehož členem je DBAUser) vytvořený klasifikátor pro ně, který je mapuje na mediumrc a vysokou důležitost.
  • Když se DBAUser přihlásí a spustí dotaz, dotaz se přiřadí službě largerc. Protože uživatel má přednost před členstvím v roli.

Pro zjednodušení řešení potíží s chybnou klasifikací doporučujeme při vytváření klasifikátorů úloh odebrat mapování rolí tříd 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;

Další kroky