Plug-in diffpatterns
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati
Confronta due set di dati della stessa struttura e trova modelli di attributi discreti (dimensioni) che caratterizzano le differenze tra i due set di dati. Il plug-in viene richiamato con l'operatore evaluate
.
diffpatterns
è stato sviluppato per facilitare l'analisi degli errori(ad esempio, confrontando gli errori con gli errori in un determinato intervallo di tempo), ma può potenzialmente trovare differenze tra due set di dati della stessa struttura.
Nota
diffpatterns
mira a trovare modelli significativi (che acquisisce parti della differenza di dati tra i set) e non è progettato per le differenze di riga per riga.
Sintassi
T | evaluate diffpatterns(
SplitColumn SplitValueA,
SplitValueB [,
WeightColumn,
Threshold,
MaxDimensions,
CustomWildcard,
...],
)
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
SplitColumn | string |
✔️ | Nome della colonna che indica all'algoritmo come suddividere la query in set di dati. In base ai valori specificati per gli argomenti SplitValueA e SplitValueB , l'algoritmo suddivide la query in due set di dati, "A" e "B" e analizza le differenze tra di esse. Di conseguenza, la colonna di divisione deve avere almeno due valori distinti. |
SplitValueA | string |
✔️ | Rappresentazione di stringa di uno dei valori in SplitColumn specificato. Tutte le righe con questo valore in SplitColumn considerate come set di dati "A". |
SplitValueB | string |
✔️ | Rappresentazione di stringa di uno dei valori in SplitColumn specificato. Tutte le righe con questo valore in SplitColumn considerate come set di dati "B". |
WeightColumn | string |
Colonna utilizzata per considerare ogni riga nell'input in base al peso specificato. Deve essere un nome di una colonna numerica, ad esempio int , long , real . Per impostazione predefinita il peso di ogni riga è pari a "1". Per usare il valore predefinito, immettere la tilde: ~ . Una colonna di ponderazione viene in genere usata per tenere in considerazione il campionamento o il bucket/aggregazione dei dati già incorporati in ogni riga.Esempio: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count) |
|
Threshold | real |
Reale nell'intervallo da 0,015 a 1. Questo valore imposta la differenza minima tra i due set. Il valore predefinito è 0,05. Per usare il valore predefinito, immettere la tilde: ~ .Esempio: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", 0.04) |
|
MaxDimensions | int |
Imposta il numero massimo di dimensioni non correlate per ogni criterio di risultato. Specificando un limite, si riduce il runtime di query. Il valore predefinito è illimitato. Per usare il valore predefinito, immettere la tilde: ~ .Esempio: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", 3) |
|
CustomWildcard | string |
Imposta il valore del carattere jolly per un tipo specifico nella tabella dei risultati, che indica che il criterio corrente non prevede una restrizione su questa colonna. Il valore predefinito è Null, ad eccezione delle colonne stringa per le quali il valore predefinito è una stringa vuota. Se il valore predefinito è un valore valido nei dati, deve essere usato un valore jolly diverso. Ad esempio: * . Per usare il valore predefinito, immettere la tilde: ~ .Esempio: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", "~", int(-1), double(-1), long(0), datetime(1900-1-1)) |
Valori restituiti
diffpatterns
restituisce un piccolo set di modelli che acquisisce parti diverse dei dati nei due set, ovvero un criterio che acquisisce una percentuale elevata delle righe nel primo set di dati e una bassa percentuale delle righe nel secondo set. Ogni modello è rappresentato da una riga nei risultati.
Il risultato di diffpatterns
restituisce le colonne seguenti:
SegmentId: l'identità assegnata al modello nella query corrente (nota: gli ID non sono necessariamente uguali nelle query ripetute).
CountA: il numero di righe acquisite dal modello in Set A (Set A è l'equivalente di
where tostring(splitColumn) == SplitValueA
).CountB: il numero di righe acquisite dal modello in Set B (Set B è l'equivalente di
where tostring(splitColumn) == SplitValueB
).PercentA: percentuale di righe in Set A acquisita dal modello (100,0 * CountA/count(SetA)).
PercentB: percentuale di righe in Set B acquisite dal modello (100,0 * CountB/count(SetB)).
PercentDiffAB: differenza del punto percentuale assoluto tra A e B (|PercentA - PercentB|) è la misura principale del significato dei modelli nella descrizione della differenza tra i due set.
Resto delle colonne: sono lo schema originale dell'input e descrivono il criterio, ogni riga (criterio) rappresenta l'intersezione dei valori non jolly delle colonne (equivalente di
where col1==val1 and col2==val2 and ... colN=valN
per ogni valore non con caratteri jolly nella riga).
Per ogni criterio, le colonne che non sono impostate nel criterio ,ovvero senza restrizioni per un valore specifico, conterranno un valore con caratteri jolly, che è Null per impostazione predefinita. Vedere nella sezione Argomenti sotto il modo in cui i caratteri jolly possono essere modificati manualmente.
- Nota: i modelli spesso non sono distinti. Possono sovrapporsi e in genere non coprono tutte le righe originali. È possibile che alcune righe non rientrino in alcun modello.
Suggerimento
- Usare dove e proiettare nella pipe di input per ridurre i dati solo a ciò che si è interessati.
- Quando si trova una riga interessante, è possibile che si voglia visualizzarne i dettagli, aggiungendo i rispettivi valori specifici al filtro
where
.
Esempio
StormEvents
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , 1 , 0)
| project State , EventType , Source , Damage, DamageCrops
| evaluate diffpatterns(Damage, "0", "1" )
Output
SegmentId | CountA | CountB | PercentA | PercentB | PercentDiffAB | Provincia | EventType | Origine | DamageCrops |
---|---|---|---|---|---|---|---|---|---|
0 | 2278 | 93 | 49.8 | 7.1 | 42.7 | Grandine | 0 | ||
1 | 779 | 512 | 17.03 | 39.08 | 22.05 | Vento di tempesta | |||
2 | 1098 | 118 | 24.01 | 9.01 | 15 | Trained Spotter | 0 | ||
3 | 136 | 158 | 2.97 | 12.06 | 9.09 | Giornale | |||
4 | 359 | 214 | 7.85 | 16.34 | 8.49 | Piena improvvisa | |||
5 | 50 | 122 | 1.09 | 9.31 | 8.22 | IOWA | |||
6 | 655 | 279 | 14.32 | 21.3 | 6.98 | Applicazione della legge | |||
7 | 150 | 117 | 3.28 | 8.93 | 5.65 | Alluvione | |||
8 | 362 | 176 | 7.91 | 13.44 | 5.52 | Responsabile della gestione emergenze |