Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Applies to: ✅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, countet 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.
Syntax
T|reduce [kind=ReduceKind] byExpr [with [threshold=Threshold] [,characters=Characters]]
Learn more about syntax conventions.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Expr | string |
✔️ | Valeur par laquelle réduire. |
| Threshold | 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. Le paramètre de seuil détermine le niveau minimal de similarité requis pour que les valeurs soient regroupées. Avec une valeur de seuil plus petite (plus proche de 0), des valeurs plus similaires sont regroupées, ce qui entraîne moins de groupes similaires. Une valeur de seuil supérieure (plus proche de 1) nécessite moins de similarité, ce qui entraîne davantage de groupes moins similaires. Nous vous recommandons de définir une petite valeur de seuil pour les entrées volumineuses. See Examples. |
|
| Characters | string |
Liste des caractères qui séparent les termes. La valeur par défaut est chaque caractère numérique non ascii. For examples, see Examples. | |
| 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. |
Returns
Table avec autant de lignes qu’il existe des groupes et des colonnes intitulés pattern, countet 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 :
| Pattern | Count | Representative |
|---|---|---|
| San * | 5182 | San Bernard |
| Saint * | 2846 | Saint Lucy |
| Moscow | 3726 | Moscow |
| *-sur-* | 2730 | Un -on- Un |
| Paris | 2716 | Paris |
Examples
L’exemple de cette section montre comment utiliser la syntaxe pour vous aider à commencer.
The examples in this article use publicly available tables in the help cluster, such as the
StormEventstable in the Samples database.
The examples in this article use publicly available tables, such as the
Weathertable in the Weather analytics sample gallery. Vous devrez peut-être modifier le nom de la table dans l’exemple de requête pour qu’elle corresponde à la table de votre espace de travail.
L’exemple suivant génère une plage de nombres, crée une colonne avec des chaînes concaténées et des entiers aléatoires, puis regroupe les lignes par la nouvelle colonne avec des paramètres de réduction spécifiques. Le seuil est défini sur 0,001, ce qui signifie que les valeurs d’opérateur sont très similaires les unes aux autres.
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"
Output
| Pattern | Count | Representative |
|---|---|---|
| MachineLearning* | 1000 | MachineLearningX4 |
L’exemple suivant génère une plage de nombres, crée une colonne avec des chaînes concaténées et des entiers aléatoires, puis regroupe les lignes par la nouvelle colonne avec des paramètres de réduction spécifiques. Le seuil est défini sur 0,9, ce qui signifie que l’opérateur regroupe les valeurs moins strictement et autorise davantage de variance.
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"
Output
Le résultat inclut uniquement les groupes où la valeur MyText apparaît dans au moins 90% des lignes.
| Pattern | Count | Representative |
|---|---|---|
| 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 |
If the Characters parameter is unspecified, by default the operator treats all non-alphanumeric characters (including spaces and punctuation) as term separators.
The following example shows how the reduce operator behaves when the Characters parameter isn't specified.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Output
| Pattern | Count | Representative |
|---|---|---|
| others | 10 |
Toutefois, si vous spécifiez que « Z » est un séparateur, il est comme si chaque valeur dans str est deux 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"
Output
| Pattern | Count | Representative |
|---|---|---|
| foo* | 10 | fooZ1 |
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 de réduire :
Commencez par quelques enregistrements de la table Trace. Réduisez ensuite la colonne Texte qui inclut des GUID aléatoires. Comme les GUID aléatoires interfèrent avec l’opération de réduction, remplacez-les tous par la chaîne « GUID ». Effectuez maintenant l’opération de réduction. Dans le cas où il existe d’autres identificateurs « quasi aléatoires » avec des caractères incorporés « - » ou « _ », traitez les caractères comme des analyseurs non-termes.
Trace
| take 10000
| extend Text = replace(@"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", "GUID", Text)
| reduce by Text with characters="-_"
Related content
Note
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.