Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Växla tjänster genom att använda listrutan Version. Läs mer om navigering.
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, countoch 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] byUttr [with [threshold=Tröskelvärde] [,characters=Tecken]]
Läs mer om syntaxkonventioner.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Expr | string |
✔️ | Värdet som ska minskas. |
| Threshold | 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. Tröskelvärdesparametern avgör den minsta likhetsnivå som krävs för att värden ska grupperas tillsammans. Med ett mindre tröskelvärde (närmare 0) grupperas fler liknande värden tillsammans, vilket resulterar i färre men mer liknande grupper. Ett större tröskelvärde (närmare 1) kräver mindre likhet, vilket resulterar i fler grupper som är mindre lika. Vi rekommenderar att du anger ett litet tröskelvärde för stora indata. Se Exempel. |
|
| Characters | string |
En lista med tecken som separerar mellan termer. Standardvärdet är alla icke-ascii numeriska tecken. Exempel finns i Exempel. | |
| 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. |
Returns
En tabell med så många rader som det finns grupper och kolumner med titeln pattern, countoch 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:
| Pattern | Count | Representative |
|---|---|---|
| San* | 5182 | San Bernard |
| Saint* | 2846 | Sankt Lucy |
| Moscow | 3726 | Moscow |
| *-på-* | 2730 | En - på - en |
| Paris | 2716 | Paris |
Examples
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älpklustret, till exempel
StormEventstabellen i exempeldatabasen .
Exemplen i den här artikeln använder offentligt tillgängliga tabeller, till exempel
Weathertabellen i exempelgalleriet Väderanalys. Du kan behöva ändra tabellnamnet i exempelfrågan för att matcha tabellen på din arbetsyta.
Följande exempel 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. Tröskelvärdet är inställt på 0,001, vilket innebär att operatorn grupperar värden som är mycket lika varandra.
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 |
Följande exempel 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. Tröskelvärdet är inställt på 0,9, vilket innebär att operatorn grupperar värden mindre strikt och tillåter mer varians.
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
Resultatet innehåller endast de grupper där värdet MyText visas i minst 90% av raderna.
| 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 |
Om parametern Tecken är ospecificerad behandlar operatorn som standard alla icke-alfanumeriska tecken (inklusive blanksteg och skiljetecken) som termavgränsare.
I följande exempel visas hur operatorn reduce beter sig när parametern Tecken inte har angetts.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Output
| Pattern | Count | Representative |
|---|---|---|
| others | 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"
Output
| Pattern | Count | Representative |
|---|---|---|
| foo* | 10 | fooZ1 |
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
Note
Implementeringen av reduce-operatorn baseras till stor del på dokumentet A Data Clustering Algorithm for Mining Patterns From Event Logs, av Risto Vaarandi.