Zásady klasifikace žádostí

Proces klasifikace přiřadí příchozí požadavky skupině úloh na základě charakteristik požadavků. Přizpůsobte logiku klasifikace napsáním uživatelem definované funkce v rámci zásad klasifikace požadavků na úrovni clusteru.

Při absenci povolených zásad klasifikace požadavků se všechny požadavky klasifikují do default skupiny úloh.

Objekt zásad

Zásada má následující vlastnosti:

  • IsEnabled: bool – Označuje, jestli je zásada povolená, nebo ne.
  • ClassificationFunction: string – Tělo funkce, která se má použít ke klasifikaci požadavků.

Klasifikační funkce

Klasifikace příchozích požadavků je založená na uživatelem definované funkci. Výsledky funkce slouží ke klasifikaci požadavků do existujících skupin úloh.

Uživatelem definovaná funkce má následující charakteristiky a chování:

  • Pokud IsEnabled je v zásadách nastavená na true , vyhodnocuje se uživatelsky definovaná funkce pro každý nový požadavek.
  • Uživatelem definovaná funkce poskytuje kontext skupiny úloh pro požadavek po celou dobu životnosti požadavku.
  • Požadavek dostane default kontext skupiny úloh v následujících situacích:
    • Uživatelem definovaná funkce vrátí prázdný řetězec default, nebo název neexistující skupiny úloh.
    • Funkce z jakéhokoli důvodu selže.
  • V daném okamžiku lze určit pouze jednu uživatelem definovanou funkci.

Důležité

Funkce klasifikace požadavků se vyhodnotí pro každý požadavek, který běží v clusteru. Doporučuje se udržovat ho co nejlehčí a nezahrnovat do něj těžké výpočty. Například nemusíte při provádění vyhodnocovat mnoho regulárních výrazů.

Požadavky a omezení

Klasifikační funkce:

  • Musí vrátit jednu skalární hodnotu typu string, to je název skupiny úloh, ke které se má požadavek přiřadit.

  • Nesmí odkazovat na žádnou jinou entitu (databázi, tabulku nebo funkci).

    • Konkrétně – nemusí používat následující funkce a operátory:
      • cluster()
      • database()
      • table()
      • external_table()
      • externaldata
  • Má přístup ke speciálnímu dynamic symbolu, kontejneru vlastností s názvem request_properties, s následujícími vlastnostmi:

    Název Typ Popis Příklady
    current_database string Název databáze požadavků. "MyDatabase"
    current_application string Název aplikace, která žádost odeslala. "Kusto.Explorer", "KusWeb"
    current_principal string Plně kvalifikovaný název identity objektu zabezpečení, která požadavek odeslala. "aaduser=1793eb1f-4a18-418c-be4c-728e310c86d3;83af1c0e-8c6d-4f09-b249-c67a2e8fda65"
    query_consistency string Pro dotazy: konzistence dotazu – strongconsistency nebo weakconsistency. Tuto vlastnost může volající nastavit jako součást vlastností požadavku: Vlastnost požadavku klienta, která se má nastavit, je: queryconsistency. "strongconsistency", "weakconsistency"
    request_description string Vlastní text, který může zahrnout autor požadavku. Text může volající nastavit jako součást vlastností požadavku Klienta: Vlastnost požadavku klienta, která se má nastavit, je: request_description. "Some custom description"; automaticky vyplněné řídicí panely: "dashboard:{dashboard_id};version:{version};sourceId:{source_id};sourceType:{tile/parameter}"
    request_text string Obfuskovaný text požadavku. Obfuskované řetězcové literály zahrnuté v textu dotazu jsou nahrazeny několika star (*). Poznámka: Vyhodnocuje se pouze úvodních 65 536 znaků textu požadavku. ".show version"
    request_type string Typ požadavku – Command nebo Query. "Command", "Query"

Poznámka

Nastavení výše uvedených možností požadavků pomocí set příkazů neumožňuje klasifikaci podle nich. Možnosti je potřeba nastavit v objektu vlastností požadavku klienta.

Příklady

Jedna skupina úloh

iff(request_properties.current_application == "Kusto.Explorer" and request_properties.request_type == "Query",
    "Ad-hoc queries",
    "default")

Více skupin úloh

case(current_principal_is_member_of('aadgroup=somesecuritygroup@contoso.com'), "First workload group",
     request_properties.current_database == "MyDatabase" and request_properties.current_principal has 'aadapp=', "Second workload group",
     request_properties.current_application == "Kusto.Explorer" and request_properties.request_type == "Query", "Third workload group",
     request_properties.current_application == "Kusto.Explorer", "Third workload group",
     request_properties.current_application == "KustoQueryRunner", "Fourth workload group",
     request_properties.request_description == "this is a test", "Fifth workload group",
     hourofday(now()) between (17 .. 23), "Sixth workload group",
     "default")

Příkazy pro správu

Ke správě zásad klasifikace požadavků clusteru použijte následující příkazy pro správu.

Příkaz Popis
.alter cluster request classification policy Změní zásady klasifikace požadavků clusteru.
.alter-merge cluster request classification policy Povolí nebo zakáže zásady klasifikace požadavků clusteru.
.delete cluster request classification policy Odstraní zásadu klasifikace požadavků clusteru.
.show cluster request classification policy Zobrazuje zásady klasifikace požadavků clusteru.