reduce-Operator
Gilt für: ✅Microsoft Fabric✅✅
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] by
Expr [with
[Threshold=
Characters]]
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
Expr | string |
✔️ | Der Wert, um den reduziert werden soll. |
Schwellenwert | 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. Es wird empfohlen, einen kleinen Schwellenwert für große Eingaben festzulegen. Bei einem kleineren Schwellenwert werden ähnliche Werte gruppiert, was zu weniger, aber ähnlicheren Gruppen führt. Ein größerer Schwellenwert erfordert weniger Ähnlichkeit, was zu mehr Gruppen führt, die weniger ähnlich sind. Vgl. Beispiele. |
|
Zeichen | string |
Eine Liste von Zeichen, die zwischen Ausdrücken getrennt sind. Der Standardwert ist jedes nicht ascii-numerische Zeichen. Beispiele finden Sie unter "Behavior of Characters"-Parameter. | |
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 |
Gibt zurück
Eine Tabelle mit so vielen Zeilen wie Gruppen und Spalten mit dem Titel pattern
, count
und 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:
Muster | Anzahl | Verkäufer |
---|---|---|
San * | 5,182 | San Bernard |
Saint * | 2,846 | Saint Lucy |
Moskau | 3726 | Moskau |
*-auf-* | 2730 | Eins - eins |
Paris | 2716 | Paris |
Beispiele
Das Beispiel in diesem Abschnitt zeigt, wie Sie die Syntax verwenden, um Ihnen bei den ersten Schritten zu helfen.
In den Beispielen in diesem Artikel werden öffentlich verfügbare Tabellen in der Hilfecluster-verwendet, z. B. die tabelle
StormEvents
in der datenbank Beispiele.
In den Beispielen in diesem Artikel werden öffentlich verfügbare Tabellen verwendet, z. B. die Tabelle
StormEvents
in der Wetteranalyse Beispieldaten.
Kleiner Schwellenwert
Diese Abfrage generiert einen Zahlenbereich, erstellt eine neue Spalte mit verketteten Zeichenfolgen und zufälligen Ganzzahlen und gruppiert dann die Zeilen nach der neuen Spalte mit bestimmten Reduzierungsparametern.
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
Muster | Anzahl | Verkäufer |
---|---|---|
MachineLearning* | 1.000 | MachineLearningX4 |
Großer Schwellenwert
Diese Abfrage generiert einen Zahlenbereich, erstellt eine neue Spalte mit verketteten Zeichenfolgen und zufälligen Ganzzahlen und gruppiert dann die Zeilen nach der neuen Spalte mit bestimmten Reduzierungsparametern.
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.
Muster | Anzahl | Verkäufer |
---|---|---|
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 |
Verhalten des Characters
-Parameters
Wenn der Parameter "Characters " nicht angegeben ist, wird jedes nicht ascii-numerische Zeichen zu einem Ausdruckstrennzeichen.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Output
Muster | Anzahl | Verkäufer |
---|---|---|
Sonstige | 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
Muster | Anzahl | Verkäufer |
---|---|---|
Foo* | 10 | fooZ1 |
Anwenden reduce
auf bereinigungsisierte Eingaben
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="-_"
Zugehöriger Inhalt
Hinweis
Die Implementierung des reduce
Operators basiert weitgehend auf dem Papier A Data Clustering Algorithm for Mining Patterns From Event Logs, von Risto Vaarandi.