Partage via


Stratégie de classification des demandes

S’applique à : ✅Microsoft FabricAzure Data Explorer

Le processus de classification affecte des requêtes entrantes à un groupe de charge de travail, en fonction des caractéristiques des requêtes. Personnalisez la logique de classification en écrivant une fonction définie par l’utilisateur, dans le cadre d’une stratégie de classification des requêtes au niveau du cluster.

Le processus de classification affecte des requêtes entrantes à un groupe de charge de travail, en fonction des caractéristiques des requêtes. Personnalisez la logique de classification en écrivant une fonction définie par l’utilisateur, dans le cadre d’une stratégie de classification de requête au niveau d’Eventhouse.

En l’absence d’une stratégie de classification des demandes activée, toutes les requêtes sont classées dans le groupe de charge de travail default.

Objet de stratégie

La stratégie a les propriétés suivantes :

  • IsEnabled: bool : indique si la stratégie est activée ou non.
  • ClassificationFunction: string - Corps de la fonction à utiliser pour classifier les demandes.

Fonction de classification

La classification des requêtes entrantes est basée sur une fonction définie par l’utilisateur. Les résultats de la fonction sont utilisés pour classifier les requêtes dans des groupes de charges de travail existants.

La fonction définie par l’utilisateur présente les caractéristiques et comportements suivants :

  • Si IsEnabled est défini sur true dans la stratégie, la fonction définie par l’utilisateur est évaluée pour chaque nouvelle requête.
  • La fonction définie par l’utilisateur fournit un contexte de groupe de charge de travail pour la demande pendant toute la durée de vie de la requête.
  • La demande reçoit le contexte de groupe de charge de travail default dans les situations suivantes :
    • La fonction définie par l’utilisateur retourne une chaîne vide, defaultou le nom du groupe de charge de travail inexistant.
    • La fonction échoue pour une raison quelconque.
  • Une seule fonction définie par l’utilisateur peut être désignée à tout moment.

Important

La fonction de classification des requêtes est évaluée pour chaque requête qui s’exécute sur le cluster. Il est recommandé de le conserver aussi léger que possible et de ne pas y inclure de calculs lourds. Par exemple, évitez d’avoir à évaluer de nombreuses expressions régulières dans le cadre de son exécution.

Important

La fonction de classification des requêtes est évaluée pour chaque requête qui s’exécute sur Eventhouse. Il est recommandé de le conserver aussi léger que possible et de ne pas y inclure de calculs lourds. Par exemple, évitez d’avoir à évaluer de nombreuses expressions régulières dans le cadre de son exécution.

Exigences et limitations

Fonction de classification :

  • Doit retourner une valeur scalaire unique de type string. Il s’agit du nom du groupe de charge de travail auquel attribuer la demande.
  • Ne doit référencer aucune autre entité (base de données, table ou fonction).
    • Plus précisément , il peut ne pas utiliser les fonctions et opérateurs suivants :
      • cluster()
      • database()
      • table()
      • external_table()
      • externaldata
  • A accès à un symbole de dynamic spécial, un conteneur de propriétés nommé request_properties, avec les propriétés suivantes :
Nom Type Description Exemples
current_database string Nom de la base de données de requête. "MyDatabase"
current_application string Nom de l’application qui a envoyé la requête. "Kusto.Explorer", "KusWeb"
current_principal string Nom complet de l’identité du principal qui a envoyé la demande. "aaduser=1793eb1f-4a18-418c-be4c-728e310c86d3;83af1c0e-8c6d-4f09-b249-c67a2e8fda65"
query_consistency string Pour les requêtes : cohérence de la requête - strongconsistency ou weakconsistency. Cette propriété est définie par l’appelant dans le cadre des propriétés de requête de la requête: la propriété de demande client à définir est : queryconsistency. "strongconsistency", "weakconsistency"
request_description string Texte personnalisé que l’auteur de la demande peut inclure. Le texte est défini par l’appelant dans le cadre des propriétés de la requête client: la propriété de requête du client à définir est : request_description. "Some custom description"; renseigné automatiquement pour les tableaux de bord : "dashboard:{dashboard_id};version:{version};sourceId:{source_id};sourceType:{tile/parameter}"
request_text string Texte obfusqué de la demande. Les littéraux de chaîne obfusqués inclus dans le texte de la requête sont remplacés par plusieurs caractères d’étoile (*). Remarque : seuls les 65 536 caractères principaux du texte de la requête sont évalués. ".show version"
request_type string Type de la requête - Command ou Query. "Command", "Query"

Note

La définition des options de requête à l’aide d’instructions set n’autorise pas la classification par eux. Les options doivent être définies dans l’objet de propriétés de requête du client.

Exemples

Un seul groupe de charge de travail

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

Plusieurs groupes de charges de travail

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

Commandes de gestion

Utilisez les commandes de gestion suivantes pour gérer la stratégie de classification des demandes d’un cluster.

Commander Description
.alter cluster request classification policy Modifie la stratégie de classification des demandes du cluster
.alter-merge cluster request classification policy Active ou désactive la stratégie de classification des demandes d’un cluster
.delete cluster request classification policy Supprime la stratégie de classification des demandes du cluster
.show cluster request classification policy Affiche la stratégie de classification des demandes du cluster

Utilisez les commandes de gestion suivantes pour gérer la stratégie de classification des demandes d’Eventhouse.

Commander Description
.alter cluster request classification policy Modifier la stratégie de classification des demandes d’Eventhouse
.alter-merge cluster request classification policy Active ou désactive la stratégie de classification des demandes d’Eventhouse
.delete cluster request classification policy Supprime la stratégie de classification des demandes d’Eventhouse
.show cluster request classification policy Affiche la stratégie de classification des demandes d’Eventhouse