operator reduce
Groepeert een set tekenreeksen op basis van waarde-gelijkenis.
Voor elke dergelijke groep retourneert de operator een pattern
, count
en representative
. De pattern
beste beschrijving van de groep, 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.
Syntax
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. |
Drempel | real |
Een waarde tussen 0 en 1 die de minimale fractie van rijen bepaalt die moet overeenkomen met de groeperingscriteria om een reductiebewerking te activeren. De standaardwaarde is 0,1. U wordt aangeraden een kleine drempelwaarde in te stellen voor grote invoerwaarden. Bij een kleinere drempelwaarde worden meer vergelijkbare waarden gegroepeerd, wat resulteert in minder maar meer vergelijkbare groepen. Een grotere drempelwaarde vereist minder overeenkomsten, wat resulteert in meer groepen die minder op elkaar lijken. Zie Voorbeelden. |
|
Tekens | string |
Een lijst met tekens die tussen termen worden gescheiden. De standaardwaarde is elk niet-ascii numeriek teken. Zie De parameter Gedrag van tekens voor voorbeelden. | |
ReduceKind | string |
De enige geldige waarde is source . Als source is opgegeven, voegt de operator de Pattern kolom toe aan de bestaande rijen in de tabel in plaats van te aggregeren met Pattern . |
Retouren
Een tabel met net zoveel rijen als er groepen en kolommen zijn met de naam pattern
, count
en representative
. De pattern
beste beschrijving van de groep, 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 bevatten:
Patroon | Count | Vertegenwoordiger |
---|---|---|
San* | 5182 | San Bernard |
Saint* | 2846 | Saint Lucy |
Moskou | 3726 | Moskou |
*-Op-* | 2730 | One -on- One |
Parijs | 2716 | Parijs |
Voorbeelden
Kleine drempelwaarde
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 | Count | Vertegenwoordiger |
---|---|---|
MachineLearning* | 1000 | MachineLearningX4 |
Grote drempelwaarde
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
Patroon | Count | 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 |
Parameter Gedrag van tekens
Als de parameter Tekens niet is opgegeven, wordt elk niet-ascii numeriek teken een termenscheidingsteken.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Uitvoer
Patroon | Count | Vertegenwoordiger |
---|---|---|
Anderen | 10 |
Als u echter opgeeft dat 'Z' een scheidingsteken is, is het alsof elke waarde in str
2 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 | Count | Vertegenwoordiger |
---|---|---|
Foo* | 10 | fooZ1 |
Toepassen reduce
op opgeschoonde invoer
In het volgende voorbeeld ziet u hoe u de reduce
operator kunt toepassen op een 'opgeschoonde' invoer, waarbij GUID's in de kolom die wordt verkleind, worden vervangen voordat ze worden verkleind
// 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="-_"
Gerelateerde inhoud
Notitie
De implementatie van reduce
operator is grotendeels gebaseerd op het document A Data Clustering Algorithm for Mining Patterns From Event Logs van Risto Vaarandi.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor