Operatore reduce
Si applica a: ✅Microsoft Fabric✅
Raggruppa un set di stringhe in base alla somiglianza dei valori.
Per ogni gruppo di questo tipo, l'operatore restituisce un pattern
oggetto , count
e representative
. Descrive pattern
meglio il gruppo, in cui il *
carattere rappresenta un carattere jolly.
count
è il numero di valori nel gruppo e representative
è uno dei valori originali nel gruppo.
Sintassi
T|
reduce
[kind
=
ReduceKind] by
Expr [with
threshold
=
Soglia] [ ,
characters
=
Caratteri]]
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
Expr | string |
✔️ | Valore in base al quale ridurre. |
Threshold | real |
Valore compreso tra 0 e 1 che determina la frazione minima di righe necessarie per soddisfare i criteri di raggruppamento per attivare un'operazione di riduzione. Il valore predefinito è 0,1. È consigliabile impostare un valore soglia ridotto per gli input di grandi dimensioni. Con un valore soglia inferiore, i valori più simili vengono raggruppati, con un minor numero di gruppi ma più simili. Un valore soglia maggiore richiede una minore somiglianza, con conseguente minore somiglianza tra gruppi meno simili. Vedere Esempi. |
|
Caratteri | string |
Elenco di caratteri che separano i termini. Il valore predefinito è ogni carattere numerico non ascii. Per esempi, vedere Comportamento del parametro Characters. | |
ReduceKind | string |
L'unico valore valido è source . Se source viene specificato , l'operatore aggiunge la Pattern colonna alle righe esistenti nella tabella anziché aggregare da Pattern . |
Valori restituiti
Tabella con il numero di righe presenti in gruppi e colonne denominate pattern
, count
e representative
. Descrive pattern
meglio il gruppo, in cui il *
carattere rappresenta un carattere jolly o un segnaposto per una stringa di inserimento arbitraria.
count
è il numero di valori nel gruppo e representative
è uno dei valori originali nel gruppo.
Ad esempio, il risultato di reduce by city
può includere:
Modello | Count | Rappresentante |
---|---|---|
San * | 5182 | San Bernard |
Saint * | 2846 | Saint Lucy |
Moscow | 3726 | Moscow |
*-su-* | 2730 | One -on- One |
Parigi | 2716 | Parigi |
Esempi
L'esempio in questa sezione illustra come usare la sintassi per iniziare.
Gli esempi in questo articolo usano tabelle disponibili pubblicamente nel cluster della Guida , ad esempio la tabella
StormEvents
nel database degli esempi.
Gli esempi in questo articolo usano tabelle disponibili pubblicamente, ad esempio la tabella
StormEvents
in Analisi meteo dati di esempio.
Valore soglia ridotto
Questa query genera un intervallo di numeri, crea una nuova colonna con stringhe concatenate e numeri interi casuali e quindi raggruppa le righe in base alla nuova colonna con parametri di riduzione specifici.
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
Modello | Count | Rappresentante |
---|---|---|
MachineLearning* | 1000 | MachineLearningX4 |
Valore soglia elevato
Questa query genera un intervallo di numeri, crea una nuova colonna con stringhe concatenate e numeri interi casuali e quindi raggruppa le righe in base alla nuova colonna con parametri di riduzione specifici.
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
Il risultato include solo i gruppi in cui il valore MyText viene visualizzato in almeno 90% delle righe.
Modello | Count | Rappresentante |
---|---|---|
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 |
Comportamento del parametro di Characters
Se il parametro Characters non è specificato, ogni carattere numerico non ascii diventa un separatore di termini.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Output
Modello | Count | Rappresentante |
---|---|---|
altro: | 10 |
Tuttavia, se si specifica che "Z" è un separatore, è come se ogni valore in str
sia due termini: foo
e tostring(x)
:
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
Output
Modello | Count | Rappresentante |
---|---|---|
Foo* | 10 | fooZ1 |
Applicare reduce
all'input sanificato
Nell'esempio seguente viene illustrato come applicare l'operatore reduce
a un input "sanificato", in cui i GUID nella colonna ridotta vengono sostituiti prima di ridurre:
Iniziare con alcuni record della tabella Trace. Ridurre quindi la colonna Text che include GUID casuali. Poiché i GUID casuali interferiscono con l'operazione di riduzione, sostituirli tutti con la stringa "GUID". Eseguire ora l'operazione di riduzione. Nel caso in cui siano presenti altri identificatori "quasi casuali" con caratteri incorporati "-" o "_", considerano i caratteri come breaker non termini.
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="-_"
Contenuto correlato
Nota
L'implementazione dell'operatore reduce
si basa in gran parte sulla carta A Data Clustering Algorithm for Mining Patterns From Event Logs,di Risto Vaarandi.