Freigeben über


reduce-Operator

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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] by Expr [with [Threshold] [, =threshold characters = 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, 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:

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

Kleiner Schwellenwert

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

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

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 Ausdrücken: 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, vor der Reduzierung ersetzt werden.

// 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="-_"

Autocluster

Hinweis

Die Implementierung des reduce Operators basiert weitgehend auf dem Papier A Data Clustering Algorithm for Mining Patterns From Event Logs, von Risto Vaarandi.