reductieoperator
Van toepassing op: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel-
Hiermee wordt een set tekenreeksen gegroepeerd op basis van waarde-gelijkenis.
Voor elke dergelijke groep retourneert de operator een pattern
, count
en representative
. De pattern
beschrijft de groep het beste, waarin het *
teken een jokerteken vertegenwoordigt. De count
is het aantal waarden in de groep en de representative
is een van de oorspronkelijke waarden in de groep.
Syntaxis
T|
reduce
[kind
=
ReduceKind] by
Expr [with
[threshold
=
Drempelwaarde] [,
characters
=
tekens]]
Meer informatie over syntaxisconventies.
Parameters
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
Expr- | string |
✔️ | De waarde waarmee moet worden verminderd. |
drempelwaarde | real |
Een waarde tussen 0 en 1 die bepaalt het minimumaantal rijen dat is vereist om te voldoen aan de groeperingscriteria om een reductiebewerking te activeren. De standaardwaarde is 0,1. U wordt aangeraden een kleine drempelwaarde in te stellen voor grote invoer. Met een kleinere drempelwaarde worden meer vergelijkbare waarden gegroepeerd, wat resulteert in minder maar meer vergelijkbare groepen. Een hogere drempelwaarde vereist minder gelijkenis, wat resulteert in meer groepen die minder vergelijkbaar zijn. Zie Voorbeelden. |
|
tekens | string |
Een lijst met tekens die tussen termen scheiden. De standaardwaarde is elk niet-ascii-numeriek teken. Zie Gedrag van de parameter Tekensvoor voorbeelden. | |
ReduceKind- | string |
De enige geldige waarde is source . Als source is opgegeven, voegt de operator de kolom Pattern toe aan de bestaande rijen in de tabel in plaats van te aggregeren door Pattern . |
Retourneert
Een tabel met zoveel rijen als groepen en kolommen met de titel pattern
, count
en representative
. De pattern
beschrijft de groep het beste, waarin het *
teken een jokerteken of tijdelijke aanduiding voor een willekeurige invoegtekenreeks vertegenwoordigt. De count
is het aantal waarden in de groep en de representative
is een van de oorspronkelijke waarden in de groep.
Het resultaat van reduce by city
kan bijvoorbeeld het volgende omvatten:
Patroon | Tellen | Vertegenwoordiger |
---|---|---|
San* | 5182 | San Bernard |
Sint* | 2846 | Saint Lucy |
Moskou | 3726 | Moskou |
*-op-* | 2730 | Eén -op- Een |
Parijs | 2716 | Parijs |
Voorbeelden
In het voorbeeld in deze sectie ziet u hoe u de syntaxis gebruikt om aan de slag te gaan.
In de voorbeelden in dit artikel worden openbaar beschikbare tabellen gebruikt in de Help-cluster, zoals de
StormEvents
tabel in de Voorbeelden database.
In de voorbeelden in dit artikel worden openbaar beschikbare tabellen gebruikt, zoals de tabel
StormEvents
in de weather analytics voorbeeldgegevens.
Kleine drempelwaarde
Deze query genereert een bereik met getallen, maakt een nieuwe kolom met samengevoegde tekenreeksen en willekeurige gehele getallen en groepeert vervolgens de rijen op de nieuwe kolom met specifieke reductieparameters.
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"
uitvoer
Patroon | Tellen | Vertegenwoordiger |
---|---|---|
MachineLearning* | 1000 | MachineLearningX4 |
Hoge drempelwaarde
Deze query genereert een bereik met getallen, maakt een nieuwe kolom met samengevoegde tekenreeksen en willekeurige gehele getallen en groepeert vervolgens de rijen op de nieuwe kolom met specifieke reductieparameters.
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"
uitvoer
Het resultaat bevat alleen de groepen waarin de MyText-waarde wordt weergegeven in ten minste 90% van de rijen.
Patroon | Tellen | Vertegenwoordiger |
---|---|---|
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 |
Gedrag van Characters
parameter
Als de parameter tekens niet is opgegeven, wordt elk niet-ascii-numeriek teken een scheidingsteken voor termen.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
uitvoer
Patroon | Tellen | Vertegenwoordiger |
---|---|---|
anderen | 10 |
Als u echter opgeeft dat Z een scheidingsteken is, is het alsof elke waarde in str
twee termen is: foo
en tostring(x)
:
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
uitvoer
Patroon | Tellen | Vertegenwoordiger |
---|---|---|
Foo* | 10 | fooZ1 |
reduce
toepassen op opgeschoonde invoer
In het volgende voorbeeld ziet u hoe u de reduce
-operator kunt toepassen op een 'opgeschoonde' invoer, waarin GUID's in de kolom die worden verminderd, worden vervangen voordat u deze vermindert:
Begin met een paar records uit de tabel Trace. Verminder vervolgens de kolom Tekst die willekeurige GUID's bevat. Omdat willekeurige GUID's de reductiebewerking verstoren, vervangt u deze allemaal door de tekenreeks 'GUID'. Voer nu de reductiebewerking uit. Als er andere 'quasi-willekeurige' id's zijn met ingesloten '-' of '_'-tekens, behandelt u tekens als niet-termonderbrekers.
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="-_"
Verwante inhoud
Notitie
De implementatie van reduce
operator is grotendeels gebaseerd op het paper A Data Clustering Algorithm for Mining Patterns From Event Logs, door Risto Vaaralgoritmen.