CREATE WORKLOAD CLASSIFIER (Transact-SQL)

A következőkre vonatkozik:Azure Synapse Analytics

Létrehoz egy osztályozó objektumot a munkaterhelés kezeléséhez való használatra. A bejövő kéréseket a bejövő munkaterhelési csoporthoz rendeli a klasifikátor utasítás definíciójában megadott paraméterek alapján. A benyújtott kérelmekhez igazítják a benyújtott bevallást. Ha egy kérés nincs egy osztályozóhoz igazítva, akkor az alapértelmezett munkaterhelési csoporthoz van rendelve. Az alapértelmezett munkaterhelési csoport az smallrc erőforrás osztály.

Note

A kezelt identitások (MI) osztályozása eltér az Azure Synapse munkaterületek dedikált SQL poolja és az önálló dedikált SQL pool (korábban SQL DW) között. Míg az önálló dedikált SQL pool MI fenntartja a kijelölt identitást, az Azure Synapse workspaces hozzáadja az MI-t a dbo szerepkörhöz. Ez nem módosítható. A dbo szerep alapértelmezetten a következő kategóriába smallrctartozik. A dbo szerep osztályozó létrehozása lehetővé teszi, hogy kéréseket rendeljenek más munkaterhelési csoporthoz is, nem smallrc. Ha önmagában a dbo túl általános a besoroláshoz, és szélesebb körű hatása van, fontold meg a címkézés, session vagy időalapú osztályozás használatát a dbo szereposztályozással együtt.

Transact-SQL szintaxis konvenciók

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 } ] )
[ ; ]

Note

Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Arguments

classifier_name

Megadja a munkaterhelés osztályozó nevét. classifier_namea sysname. Ez a paraméter akár 128 karakter is lehet, és egyedi kell lennie az instance-on belül.

WORKLOAD_GROUP = 'név'

Ha a feltételek teljesülnek a klasifikátor szabályaival, a név a kérést egy munkaterhelési csoporthoz rendeli. A néva sysname. Ez a paraméter akár 128 karakter is lehet, és érvényes munkaterhelési csoport névnek kell lennie a osztályozó létrehozásakor.

Elérhető munkaterhelési csoportok megtalálhatók sys.workload_management_workload_groups katalógusnézetben.

MEMBERNAME = 'security_account'

A biztonsági fiók, amelyet a titkosításhoz használtak. security_accounta sysname, alapértelmezett nélkül. security_account lehet adatbázis-felhasználó, adatbázis-szerep, Microsoft Entra bejelentkezés vagy Microsoft Entra csoport.

Note

Használd a user_name() funkciót, amikor csatlakozik a rendszerhez, hogy ellenőrizd, hogy a besorolási folyamat milyen MEMBERNAME besorolást fog használni a kérés besorolásához. A funkcióval való ellenőrzés MEMBERNAMEuser_name() hasznos lehet a Microsoft Entra ID vagy szolgáltatásfő osztályozási problémák elhárításában. Ha user_name() visszatér dbo, akkor a dbo-tMEMBERNAME használhatod a kérések osztályozására. A DBO szerepének minden tagja titkosításra kerül. További besorolási paraméterek, például WLM_LABEL vagy WLM_CONTEXT használhatók arra, hogy specifikus osztályozzák a több Microsoft Entra fiók kéréseit, amelyek a dbo szerephez kötöttek.

WLM_LABEL

Megadja a címkés értéket, amelyhez egy kérés besorolható. A címke opcionális paraméter, a nvarchar(255) típusú. Használd a OPCIÓT (LABEL ) a kérésben, hogy egyeztess a klasifikátor konfigurációjával.

Például:

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

WLM_CONTEXT

Megadja a session kontextusértéket, amelyhez egy kérés besorolható. WLM_CONTEXT opcionális paraméter nvarchar(255) típusú. Használd a sys.sp_set_session_context a változó neve megegyezik a wlm_context kérés benyújtása előtt, hogy beállítsd a session kontextusát.

Például:

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 és END_TIME

Megadja a kezdési és végi időt, amelyhez egy kérés besorolható. Mindkettő START_TIMEEND_TIMEHH:mm az UTC időzónában található formátumú. START_TIME és END_TIME együtt kell meghatározni.

Például:

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

FONTOSSÁG = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | MAGAS }

Megadja a kérés relatív fontosságát. IMPORTANCE az alábbi lehetőségek egyike:

  • LOW
  • BELOW_NORMAL
  • NORMAL (alapértelmezett)
  • ABOVE_NORMAL
  • HIGH

Ha IMPORTANCE nincs megadva, akkor a munkaterhelési csoport fontossági beállítását használják. Az alapértelmezett munkaterhelés csoportjának fontossága .NORMAL A fontosság befolyásolja, hogy milyen sorrendben vannak ütemezve a kéréseket, így első hozzáférést biztosít az erőforrásokhoz és zárokhoz.

Remarks

A felhasználó által definiált osztályozók maximális száma .100 Az ezen a határon túli további konfigurációk nem támogatottak. Azt ajánljuk, hogy az osztályozókat egy közös kategória alá csoportosítani, hogy egyetlen beállítást több munkaterhelés vagy felhasználó esetében is hatékonyan lehessen alkalmazni.

Osztályozási paraméter súlyozása

Egy kérés több osztályozó ellen is egyezhet. Van súlyozás a osztályozó paraméterekhez. A magasabb súlyozott párosítási osztályozó a munkaterhelési csoport és fontosság meghatározására szolgál. A súlyozás a következő:

Osztályozó paraméter Weight
USER 64
ROLE 32
WLM_LABEL 16
WLM_CONTEXT 8
START_TIME/END_TIME 4

Vegyük figyelembe a következő osztályozó konfigurációkat.

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'
);

A felhasználó userloginA mindkét osztályozó számára be van állítva. Ha userloginA olyan lekérdezést futtatnak, amelynek címkéje salesreport 18:00 és 7:00 UTC között van, akkor a kérés a fontos munkaterhelési csoporthoz HIGH sorolódikwgDashboards. Az elvárás az lehet, hogy a kérést besorolják a munkaidőn kívüli jelentések fontosságával, de a súly WLM_LABEL magasabb, mint START_TIMEEND_TIME/.LOWwgUserQueries A súlyozása classifierA ( 8064 a használónak, plusz 16 a ).WLM_LABEL A súlyozása classifierB (6468 a használó számára, 4 for START_TIME/END_TIME). Ebben az esetben hozzáadhatod WLM_LABEL a classifierB.

További információért lásd: Workload súlyozás.

Permissions

CONTROL DATABASE engedélyre van szükség.

Examples

Az alábbi példa bemutatja, hogyan hozhatunk létre egy munkaterhelés osztályozót , amelynek neve wgcELTRole. A staticrc20 munkaterhelés csoportját, a felhasználót ELTRolehasználja, és beállítja a IMPORTANCE értéket.ABOVE_NORMAL

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