Plug-in diffpatterns

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 analizzare gli errori ,ad esempio confrontando gli errori con 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 è destinato alle differenze di riga per riga.

Sintassi

T | evaluate diffpatterns(SplitColumn,SplitValueA,SplitValueB [,WeightColumn,Threshold,MaxDimensions,CustomWildcard, ...])

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria 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 stringa di uno dei valori in SplitColumn specificato. Tutte le righe con questo valore nella proprietà SplitColumn considerate come set di dati "A".
SplitValueB string ✔️ Rappresentazione stringa di uno dei valori in SplitColumn specificato. Tutte le righe che hanno questo valore nella proprietà 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)
Soglia long Un lungo intervallo compreso tra 0,015 e 1. Questo valore imposta la differenza minima del rapporto di pattern 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 modello 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 cui 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))

Restituisce

diffpatterns restituisce un piccolo set di modelli che acquisisce parti diverse dei dati nei due set, ovvero un modello che acquisisce una percentuale elevata delle righe nel primo set e una percentuale bassa 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 garantiti come 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: 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 acquisita dal modello (100.0 * CountB/count(SetB)).

  • PercentDiffAB: differenza assoluta del punto percentuale 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 modello, ogni riga (modello) rappresenta l'intersezione dei valori non jolly delle colonne (equivalente per where col1==val1 and col2==val2 and ... colN=valN ogni valore non jolly nella riga).

Per ogni modello, le colonne che non sono impostate nel modello ,ovvero senza restrizioni per un valore specifico, conterrà un valore jolly, ovvero Null per impostazione predefinita. Vedere la sezione Argomenti sotto il modo in cui è possibile modificare manualmente i caratteri jolly.

  • Nota: i modelli spesso non sono distinti. Possono essere sovrapposti e in genere non coprono tutte le righe originali. È possibile che alcune righe non rientrino in alcun modello.

Suggerimento

  • Usare dove e progetto nella pipe di input per ridurre i dati 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 State EventType Source 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