Freigeben über


Anforderungsklassifizierungsrichtlinie

Gilt für: ✅Microsoft FabricAzure Data Explorer

Der Klassifizierungsprozess weist eingehende Anforderungen einer Workloadgruppe basierend auf den Merkmalen der Anforderungen zu. Passen Sie die Klassifizierungslogik an, indem Sie eine benutzerdefinierte Funktion als Teil einer Anforderungsklassifizierungsrichtlinie auf Clusterebene schreiben.

Der Klassifizierungsprozess weist eingehende Anforderungen einer Workloadgruppe basierend auf den Merkmalen der Anforderungen zu. Passen Sie die Klassifizierungslogik an, indem Sie eine benutzerdefinierte Funktion als Teil einer Anforderungsklassifizierungsrichtlinie auf Eventhouse-Ebene schreiben.

Ohne eine aktivierte Anforderungsklassifizierungsrichtlinie werden alle Anforderungen in die default Workloadgruppe eingeteilt.

Policy-Objekt

Die Richtlinie weist die folgenden Eigenschaften auf:

  • IsEnabled: bool – Gibt an, ob die Richtlinie aktiviert ist oder nicht.
  • ClassificationFunction: string - Der Textkörper der Funktion, die zum Klassifizieren von Anforderungen verwendet werden soll.

Klassifizierungsfunktion

Die Klassifizierung eingehender Anforderungen basiert auf einer benutzerdefinierten Funktion. Die Ergebnisse der Funktion werden verwendet, um Anforderungen in vorhandene Workloadgruppen zu klassifizieren.

Die benutzerdefinierte Funktion weist die folgenden Merkmale und Verhaltensweisen auf:

  • Wenn IsEnabled in der Richtlinie auf true festgelegt ist, wird die benutzerdefinierte Funktion für jede neue Anforderung ausgewertet.
  • Die benutzerdefinierte Funktion bietet Workloadgruppenkontext für die Anforderung für die vollständige Lebensdauer der Anforderung.
  • Die Anforderung erhält in den folgenden Situationen den default Workloadgruppenkontext:
    • Die benutzerdefinierte Funktion gibt eine leere Zeichenfolge, defaultoder den Namen der nicht vorhandenen Workloadgruppe zurück.
    • Die Funktion schlägt aus irgendeinem Grund fehl.
  • Es kann jeweils nur eine benutzerdefinierte Funktion festgelegt werden.

Wichtig

Die Anforderungsklassifizierungsfunktion wird für jede Anforderung ausgewertet, die auf dem Cluster ausgeführt wird. Es wird empfohlen, es so leicht wie möglich zu halten und keine schweren Berechnungen darin einzuschließen. Vermeiden Sie beispielsweise, viele reguläre Ausdrücke als Teil der Ausführung auszuwerten.

Wichtig

Die Anforderungsklassifizierungsfunktion wird für jede Anforderung ausgewertet, die im Eventhouse ausgeführt wird. Es wird empfohlen, es so leicht wie möglich zu halten und keine schweren Berechnungen darin einzuschließen. Vermeiden Sie beispielsweise, viele reguläre Ausdrücke als Teil der Ausführung auszuwerten.

Anforderungen und Einschränkungen

Eine Klassifizierungsfunktion:

  • Muss einen einzelnen skalaren Wert vom Typ stringzurückgeben. Dies ist der Name der Workloadgruppe, der die Anforderung zugewiesen werden soll.
  • Darf nicht auf eine andere Entität (Datenbank, Tabelle oder Funktion) verweisen.
    • Insbesondere - sie verwendet möglicherweise nicht die folgenden Funktionen und Operatoren:
      • cluster()
      • database()
      • table()
      • external_table()
      • externaldata
  • Hat Zugriff auf ein spezielles dynamic-Symbol, einen Eigenschaftenbehälter mit dem Namen request_properties, mit den folgenden Eigenschaften:
Name Art Beschreibung Beispiele
current_database string Der Name der Anforderungsdatenbank. "MyDatabase"
current_application string Der Name der Anwendung, die die Anforderung gesendet hat. "Kusto.Explorer", "KusWeb"
current_principal string Der vollqualifizierte Name der Prinzipalidentität, die die Anforderung gesendet hat. "aaduser=1793eb1f-4a18-418c-be4c-728e310c86d3;83af1c0e-8c6d-4f09-b249-c67a2e8fda65"
query_consistency string Für Abfragen: die Konsistenz der Abfrage - strongconsistency oder weakconsistency. Diese Eigenschaft wird vom Aufrufer als Teil der Anforderungseigenschaften der Anforderungfestgelegt: Die festzulegende Clientanforderungseigenschaft lautet: queryconsistency. "strongconsistency", "weakconsistency"
request_description string Benutzerdefinierter Text, den der Autor der Anforderung enthalten kann. Der Text wird vom Aufrufer als Teil der Clientanforderungseigenschaften der Anforderungfestgelegt: Die festzulegende Clientanforderungseigenschaft lautet: request_description. "Some custom description"; automatisch für Dashboards aufgefüllt: "dashboard:{dashboard_id};version:{version};sourceId:{source_id};sourceType:{tile/parameter}"
request_text string Der verschleierte Text der Anforderung. Verschleierte Zeichenfolgenliterale, die im Abfragetext enthalten sind, werden durch mehrere Sternzeichen (*) ersetzt. Hinweis: werden nur die führenden 65.536 Zeichen des Anforderungstexts ausgewertet. ".show version"
request_type string Der Typ der Anforderung - Command oder Query. "Command", "Query"

Anmerkung

Das Festlegen der Anforderungsoptionen mithilfe von set Anweisungen lässt keine Klassifizierung durch sie zu. Die Optionen müssen im Clientanforderungseigenschaftenobjekt festgelegt werden.

Beispiele

Eine einzelne Workloadgruppe

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

Mehrere Workloadgruppen

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

Verwaltungsbefehle

Verwenden Sie die folgenden Verwaltungsbefehle, um die Anforderungsklassifizierungsrichtlinie eines Clusters zu verwalten.

Befehl Beschreibung
.alter cluster request classification policy Ändert die Anforderungsklassifizierungsrichtlinie des Clusters
.alter-merge cluster request classification policy Aktiviert oder deaktiviert die Anforderungsklassifizierungsrichtlinie eines Clusters
.delete cluster request classification policy Löscht die Anforderungsklassifizierungsrichtlinie des Clusters.
.show cluster request classification policy Zeigt die Anforderungsklassifizierungsrichtlinie des Clusters an.

Verwenden Sie die folgenden Verwaltungsbefehle, um die Anforderungsklassifizierungsrichtlinie eines Eventhouse zu verwalten.

Befehl Beschreibung
.alter cluster request classification policy Alter Eventhouses Anforderungsklassifizierungsrichtlinie
.alter-merge cluster request classification policy Aktiviert oder deaktiviert die Anforderungsklassifizierungsrichtlinie eines Eventhouses
.delete cluster request classification policy Löscht die Anforderungsklassifizierungsrichtlinie von Eventhouse.
.show cluster request classification policy Zeigt die Anforderungsklassifizierungsrichtlinie des Eventhouse an.