Share via


Begärandeklassificeringsprincip

Klassificeringsprocessen tilldelar inkommande begäranden till en arbetsbelastningsgrupp baserat på egenskaperna för begäranden. Anpassa klassificeringslogik genom att skriva en användardefinierad funktion som en del av en klassificeringsprincip för begäranden på klusternivå.

Om det inte finns någon aktiverad klassificeringsprincip för begäranden klassificeras alla begäranden i default arbetsbelastningsgruppen.

Principobjekt

Principen har följande egenskaper:

  • IsEnabled: bool – Anger om principen är aktiverad eller inte.
  • ClassificationFunction: string - Brödtexten i funktionen som ska användas för att klassificera begäranden.

Klassificeringsfunktion

Klassificeringen av inkommande begäranden baseras på en användardefinierad funktion. Resultatet av funktionen används för att klassificera begäranden i befintliga arbetsbelastningsgrupper.

Den användardefinierade funktionen har följande egenskaper och beteenden:

  • Om IsEnabled anges till true i principen utvärderas den användardefinierade funktionen för varje ny begäran.
  • Den användardefinierade funktionen ger arbetsbelastningsgruppkontext för begäran för hela begärans livslängd.
  • Begäran ges kontexten för default arbetsbelastningsgruppen i följande situationer:
    • Den användardefinierade funktionen returnerar en tom sträng, defaulteller namnet på en obefintlig arbetsbelastningsgrupp.
    • Funktionen misslyckas av någon anledning.
  • Endast en användardefinierad funktion kan anges när som helst.

Viktigt

Funktionen för klassificering av begäran utvärderas för varje begäran som körs i klustret. Vi rekommenderar att du håller den så lätt som möjligt och inte inkluderar tunga beräkningar i den. Undvik till exempel att behöva utvärdera många reguljära uttryck som en del av körningen.

Krav och begränsningar

En klassificeringsfunktion:

  • Måste returnera ett enskilt skalärt värde av typen string, som är namnet på den arbetsbelastningsgrupp som begäran ska tilldelas till.

  • Får inte referera till någon annan entitet (databas, tabell eller funktion).

    • Mer specifikt – den kanske inte använder följande funktioner och operatorer:
      • cluster()
      • database()
      • table()
      • external_table()
      • externaldata
  • Har åtkomst till en särskild dynamic symbol, en egenskapsuppsättning med namnet request_properties, med följande egenskaper:

    Namn Typ Beskrivning Exempel
    current_database string Namnet på begärandedatabasen. "MyDatabase"
    current_application string Namnet på programmet som skickade begäran. "Kusto.Explorer", "KusWeb"
    current_principal string Det fullständigt kvalificerade namnet på den huvudidentitet som skickade begäran. "aaduser=1793eb1f-4a18-418c-be4c-728e310c86d3;83af1c0e-8c6d-4f09-b249-c67a2e8fda65"
    query_consistency string För frågor: frågans konsekvens – strongconsistency eller weakconsistency. Den här egenskapen kan anges av anroparen som en del av begärans egenskaper: Egenskapen för klientbegäran som ska anges är: queryconsistency. "strongconsistency", "weakconsistency"
    request_description string Anpassad text som frågeförfattaren kan inkludera. Texten kan anges av anroparen som en del av begärans egenskaper för klientbegäran: Egenskapen för klientbegäran som ska anges är: request_description. "Some custom description"; fylls i automatiskt för instrumentpaneler: "dashboard:{dashboard_id};version:{version};sourceId:{source_id};sourceType:{tile/parameter}"
    request_text string Den dolda texten i begäran. Dolda strängliteraler som ingår i frågetexten ersätts av flera star (*) tecken. Obs! Endast de inledande 65 536 tecknen i begärandetexten utvärderas. ".show version"
    request_type string Typen av begäran – Command eller Query. "Command", "Query"

Anteckning

Om du anger ovanstående alternativ för begäran med hjälp set av instruktioner tillåts inte klassificering av dem. Alternativen måste anges i objektet egenskaper för klientbegäran.

Exempel

En enskild arbetsbelastningsgrupp

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

Flera arbetsbelastningsgrupper

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")

Kommandon för hantering

Använd följande hanteringskommandon för att hantera ett klusters klassificeringsprincip för begäranden.

Kommando Beskrivning
.alter cluster request classification policy Ändrar klustrets policy för klassificering av begäranden
.alter-merge cluster request classification policy Aktiverar eller inaktiverar ett klusters policy för klassificering av begäranden
.delete cluster request classification policy Tar bort klustrets policy för klassificering av begäranden
.show cluster request classification policy Visar klustrets policy för klassificering av begäranden