reduce-operator
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Grupperar en uppsättning strängar tillsammans baserat på värdelikhet.
För varje sådan grupp returnerar operatorn en pattern
, count
och representative
.
pattern
beskriver bäst gruppen, där *
-tecknet representerar ett jokertecken.
count
är antalet värden i gruppen och representative
är ett av de ursprungliga värdena i gruppen.
Syntax
T|
reduce
[kind
=
ReduceKind] by
Expr [with
[threshold
=
Threshold] [,
characters
=
Characters]]
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
uttr | string |
✔️ | Värdet som ska minskas. |
tröskelvärde | real |
Ett värde mellan 0 och 1 som avgör den minsta del av raderna som krävs för att matcha grupperingsvillkoren för att utlösa en minskningsåtgärd. Standardvärdet är 0.1. Vi rekommenderar att du anger ett litet tröskelvärde för stora indata. Med ett mindre tröskelvärde grupperas fler liknande värden tillsammans, vilket resulterar i färre men mer liknande grupper. Ett större tröskelvärde kräver mindre likhet, vilket resulterar i fler grupper som är mindre lika. Se exempel. |
|
tecken | string |
En lista med tecken som separerar mellan termer. Standardvärdet är alla icke-ascii numeriska tecken. Exempel finns i parametern Beteende för tecken. | |
ReduceKind | string |
Det enda giltiga värdet är source . Om source anges lägger operatorn till kolumnen Pattern till de befintliga raderna i tabellen i stället för att aggregera efter Pattern . |
Returnerar
En tabell med så många rader som det finns grupper och kolumner med titeln pattern
, count
och representative
.
pattern
beskriver bäst gruppen, där *
-tecknet representerar ett jokertecken eller platshållare för en godtycklig insättningssträng.
count
är antalet värden i gruppen och representative
är ett av de ursprungliga värdena i gruppen.
Resultatet av reduce by city
kan till exempel innehålla:
Mönster | Räkna | Representant |
---|---|---|
San* | 5182 | San Bernard |
Helgon* | 2846 | Sankt Lucy |
Moskva | 3726 | Moskva |
*-på-* | 2730 | En - på - en |
Paris | 2716 | Paris |
Exempel
Exemplet i det här avsnittet visar hur du använder syntaxen för att komma igång.
Exemplen i den här artikeln använder offentligt tillgängliga tabeller i hjälpkluster, till exempel tabellen
StormEvents
i databasen Samples.
Exemplen i den här artikeln använder offentligt tillgängliga tabeller, till exempel tabellen
StormEvents
i Väderanalys exempeldata.
Litet tröskelvärde
Den här frågan genererar ett intervall med tal, skapar en ny kolumn med sammanfogade strängar och slumpmässiga heltal och grupperar sedan raderna efter den nya kolumnen med specifika minskningsparametrar.
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"
utdata
Mönster | Räkna | Representant |
---|---|---|
MachineLearning* | 1000 | MachineLearningX4 |
Stort tröskelvärde
Den här frågan genererar ett intervall med tal, skapar en ny kolumn med sammanfogade strängar och slumpmässiga heltal och grupperar sedan raderna efter den nya kolumnen med specifika minskningsparametrar.
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"
utdata
Resultatet innehåller endast de grupper där värdet MyText visas i minst 90% av raderna.
Mönster | Räkna | Representant |
---|---|---|
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 |
Beteende för Characters
parameter
Om parametern Tecken är ospecificerad blir varje numeriskt tecken som inte är ascii en termavgränsare.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
utdata
Mönster | Räkna | Representant |
---|---|---|
andra | 10 |
Men om du anger att "Z" är en avgränsare är det som om varje värde i str
är två termer: foo
och tostring(x)
:
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
utdata
Mönster | Räkna | Representant |
---|---|---|
Foo* | 10 | fooZ1 |
Använd reduce
för sanerade indata
I följande exempel visas hur man kan tillämpa reduce
-operatorn på en "sanerad" indata, där GUID:er i kolumnen som minskas ersätts innan de minskar:
Börja med några poster från tabellen Trace. Minska sedan kolumnen Text som innehåller slumpmässiga GUID:er. Eftersom slumpmässiga GUID:er stör reduce-åtgärden ersätter du dem alla med strängen "GUID". Utför nu reduce-åtgärden. Om det finns andra "kvasi-slumpmässiga" identifierare med inbäddade '-' eller '_' tecken i dem, behandlar du tecken som icke-termbrytare.
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="-_"
Relaterat innehåll
Not
Implementeringen av reduce
-operatorn baseras till stor del på dokumentet A Data Clustering Algorithm for Mining Patterns From Event Logs, av Risto Vaarandi.