opérateur reduce
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Regroupe un ensemble de chaînes en fonction de la similarité des valeurs.
Pour chaque groupe de ce type, l’opérateur retourne un pattern
, count
et representative
. Le pattern
meilleur décrit le groupe dans lequel le *
caractère représente un caractère générique. Il count
s’agit du nombre de valeurs dans le groupe, et il representative
s’agit de l’une des valeurs d’origine du groupe.
Syntaxe
T reduce
|
[kind
=
ReduceKind] by
Expr [with
[threshold
=
Threshold] [,
=
characters
Characters]]
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
Expr | string |
✔️ | Valeur par laquelle réduire. |
Seuil | real |
Valeur comprise entre 0 et 1 qui détermine la fraction minimale des lignes requise pour correspondre aux critères de regroupement afin de déclencher une opération de réduction. La valeur par défaut est 0,1. Nous vous recommandons de définir une petite valeur de seuil pour les entrées volumineuses. Avec une valeur de seuil plus petite, des valeurs plus similaires sont regroupées, ce qui entraîne moins de groupes mais plus similaires. Une valeur de seuil supérieure nécessite moins de similarité, ce qui entraîne davantage de groupes moins similaires. Voir Exemples. |
|
Caractères | string |
Liste des caractères qui séparent les termes. La valeur par défaut est chaque caractère numérique non ascii. Pour obtenir des exemples, consultez Le paramètre Comportement des caractères. | |
ReduceKind | string |
La seule valeur valide est source . Si source elle est spécifiée, l’opérateur ajoute la Pattern colonne aux lignes existantes de la table au lieu d’agréger par Pattern . |
Retours
Table avec autant de lignes qu’il existe des groupes et des colonnes intitulés pattern
, count
et representative
. Le pattern
meilleur décrit le groupe dans lequel le *
caractère représente un caractère générique ou un espace réservé pour une chaîne d’insertion arbitraire. Il count
s’agit du nombre de valeurs dans le groupe, et il representative
s’agit de l’une des valeurs d’origine du groupe.
Par exemple, le résultat de reduce by city
peut inclure :
Modèle | Count | Représentant |
---|---|---|
San * | 5,182 | San Bernard |
Saint * | 2,846 | Saint Lucy |
Moscow | 3726 | Moscow |
*-sur-* | 2730 | Un -on- Un |
Paris | 2716 | Paris |
Exemples
Petite valeur de seuil
range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText with threshold=0.001 , characters = "X"
Sortie
Modèle | Count | Représentant |
---|---|---|
MachineLearning* | 1 000 | MachineLearningX4 |
Valeur de seuil élevée
range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText with threshold=0.9 , characters = "X"
Sortie
Modèle | Count | Représentant |
---|---|---|
MachineLearning* | 177 | MachineLearningX9 |
MachineLearning* | 102 | MachineLearningX0 |
MachineLearning* | 106 | MachineLearningX1 |
MachineLearning* | 96 | MachineLearningX6 |
MachineLearning* | 110 | MachineLearningX4 |
MachineLearning* | 100 | MachineLearningX3 |
MachineLearning* | 99 | MachineLearningX8 |
MachineLearning* | 104 | MachineLearningX7 |
MachineLearning* | 106 | MachineLearningX2 |
Comportement du paramètre Characters
Si le paramètre Characters n’est pas spécifié, chaque caractère numérique non ascii devient un séparateur de termes.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Sortie
Modèle | Count | Représentant |
---|---|---|
autres | 10 |
Toutefois, si vous spécifiez que « Z » est un séparateur, il est comme si chaque valeur str
est de 2 termes : foo
et tostring(x)
:
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
Sortie
Modèle | Count | Représentant |
---|---|---|
Foo* | 10 | fooZ1 |
Appliquer reduce
à une entrée désinfectée
L’exemple suivant montre comment appliquer l’opérateur reduce
à une entrée « nettoyée », dans laquelle les GUID de la colonne en cours de réduction sont remplacés avant la réduction
// Start with a few records from the Trace table.
Trace | take 10000
// We will reduce the Text column which includes random GUIDs.
// As random GUIDs interfere with the reduce operation, replace them all
// by the string "GUID".
| extend Text=replace_regex(Text, @"[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}", @"GUID")
// Now perform the reduce. In case there are other "quasi-random" identifiers with embedded '-'
// or '_' characters in them, treat these as non-term-breakers.
| reduce by Text with characters="-_"
Contenu connexe
Remarque
L’implémentation de l’opérateur reduce
est largement basée sur le document A Data Clustering Algorithm for Mining Patterns From Event Logs, par Risto Vaarandi.