Stratégie de classification des demandes
S’applique à : ✅Microsoft Fabric✅Azure 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 surtrue
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,
default
ou le nom du groupe de charge de travail inexistant. - La fonction échoue pour une raison quelconque.
- La fonction définie par l’utilisateur retourne une chaîne vide,
- 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
- Plus précisément , il peut ne pas utiliser les fonctions et opérateurs suivants :
- 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 |
Contenu connexe
- groupes de charge de travail
- propriétés de requête