Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Applies to: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Gruppiert eine Gruppe von Zeichenfolgen basierend auf der Wertgleichheit.
Für jede solche Gruppe gibt der Operator ein pattern, count, und representative. Am pattern besten wird die Gruppe beschrieben, in der das * Zeichen einen Wildcard darstellt. Dies count ist die Anzahl der Werte in der Gruppe, und dies representative ist einer der ursprünglichen Werte in der Gruppe.
Syntax
T|reduce [kind=ReduceKind] byExpr [with [threshold=Threshold] [,characters=Characters]]
Learn more about syntax conventions.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Expr | string |
✔️ | Der Wert, um den reduziert werden soll. |
| Threshold | real |
Ein Wert zwischen 0 und 1, der den minimalen Bruchteil der Zeilen bestimmt, die zum Abgleichen der Gruppierungskriterien erforderlich sind, um einen Reduzierungsvorgang auszulösen. Der Standardwert ist 0,1. Der Schwellenwertparameter bestimmt die mindeste Ähnlichkeitsstufe, die für die Gruppierungen von Werten erforderlich ist. Bei einem kleineren Schwellenwert (näher bei 0) werden ähnliche Werte gruppiert, was zu weniger, aber ähnlicheren Gruppen führt. Ein größerer Schwellenwert (näher an 1) erfordert weniger Ähnlichkeit, was zu mehr Gruppen führt, die weniger ähnlich sind. Es wird empfohlen, einen kleinen Schwellenwert für große Eingaben festzulegen. See Examples. |
|
| Characters | string |
Eine Liste von Zeichen, die zwischen Ausdrücken getrennt sind. Der Standardwert ist jedes nicht ascii-numerische Zeichen. For examples, see Examples. | |
| ReduceKind | string |
Der einzige gültige Wert ist source. Wenn source angegeben, fügt der Operator die Pattern Spalte an die vorhandenen Zeilen in der Tabelle an, anstatt nach zu aggregieren.Pattern |
Returns
Eine Tabelle mit so vielen Zeilen wie Gruppen und Spalten mit dem Titel pattern, countund representative. Am pattern besten wird die Gruppe beschrieben, in der das * Zeichen einen Platzhalter oder Platzhalter für eine beliebige Einfügezeichenfolge darstellt. Dies count ist die Anzahl der Werte in der Gruppe, und dies representative ist einer der ursprünglichen Werte in der Gruppe.
Das Ergebnis von reduce by city kann z.B. Folgendes enthalten:
| Pattern | Count | Representative |
|---|---|---|
| San * | 5182 | San Bernard |
| Saint * | 2846 | Saint Lucy |
| Moscow | 3726 | Moscow |
| *-auf-* | 2730 | Eins - eins |
| Paris | 2716 | Paris |
Examples
Das Beispiel in diesem Abschnitt zeigt, wie Sie die Syntax verwenden, um Ihnen bei den ersten Schritten zu helfen.
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. Möglicherweise müssen Sie den Tabellennamen in der Beispielabfrage so ändern, dass er der Tabelle in Ihrem Arbeitsbereich entspricht.
Im folgenden Beispiel wird ein Zahlenbereich generiert, eine neue Spalte mit verketteten Zeichenfolgen und zufälligen Ganzzahlen erstellt und dann die Zeilen nach der neuen Spalte mit bestimmten Reduzierungsparametern gruppiert. Der Schwellenwert wird auf 0,001 festgelegt, was bedeutet, dass die Operatorwerte gruppiert, die einander sehr ähnlich sind.
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 |
Im folgenden Beispiel wird ein Zahlenbereich generiert, eine neue Spalte mit verketteten Zeichenfolgen und zufälligen Ganzzahlen erstellt und dann die Zeilen nach der neuen Spalte mit bestimmten Reduzierungsparametern gruppiert. Der Schwellenwert ist auf 0,9 festgelegt, d. h., dass der Operator Werte weniger streng gruppiert und mehr Varianz zulässt.
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
Das Ergebnis enthält nur die Gruppen, in denen der Wert "MyText" in mindestens 90% der Zeilen angezeigt wird.
| 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 |
Wenn Sie jedoch angeben, dass "Z" ein Trennzeichen ist, ist es so, als wäre jeder Wert in str zwei Begriffe: foo und 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 |
Das folgende Beispiel zeigt, wie der reduce-Operator auf eine "sanitisierte" Eingabe angewendet werden kann, in der GUIDs in der Spalte, die reduziert werden, ersetzt werden, bevor sie reduziert werden:
Beginnen Sie mit einigen Datensätzen aus der Trace-Tabelle. Reduzieren Sie dann die Textspalte, die zufällige GUIDs enthält. Da zufällige GUIDs den Reduzierungsvorgang beeinträchtigen, ersetzen Sie sie alle durch die Zeichenfolge "GUID". Führen Sie nun den Reduzierten Vorgang aus. Falls es andere "quasi-random"-Bezeichner mit eingebetteten '-' oder '_' Zeichen in ihnen gibt, behandeln Sie Zeichen als Nicht-Begriffstrennzeichen.
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
Die Implementierung des reduce Operators basiert weitgehend auf dem Papier A Data Clustering Algorithm for Mining Patterns From Event Logs, von Risto Vaarandi.