Dela via


diffpatterns-plugin-program

Jämför två datauppsättningar med samma struktur och hittar mönster med diskreta attribut (dimensioner) som kännetecknar skillnader mellan de två datauppsättningarna. Plugin-programmet anropas med operatorn evaluate .

diffpatterns har utvecklats för att analysera fel (till exempel genom att jämföra fel med icke-fel inom en viss tidsram), men kan potentiellt hitta skillnader mellan två datauppsättningar i samma struktur.

Anteckning

diffpatterns syftar till att hitta betydande mönster (som samlar in delar av dataskillnaden mellan uppsättningarna) och inte är avsedda för skillnader rad för rad.

Syntax

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

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
SplitColumn string ✔️ Kolumnnamnet som talar om för algoritmen hur frågan ska delas upp i datauppsättningar. Enligt de angivna värdena för argumenten SplitValueA och SplitValueB delar algoritmen upp frågan i två datauppsättningar, "A" och "B", och analyserar skillnaderna mellan dem. Därför måste den delade kolumnen ha minst två distinkta värden.
SplitValueA string ✔️ En strängrepresentation av ett av värdena i SplitColumn som angavs. Alla rader som har det här värdet i SplitColumn anses vara datauppsättningen "A".
SplitValueB string ✔️ En strängrepresentation av ett av värdena i SplitColumn som angavs. Alla rader som har det här värdet i SplitColumn anses vara datauppsättningen "B".
WeightColumn string Kolumnen som används för att beakta varje rad i indata enligt den angivna vikten. Måste vara ett namn på en numerisk kolumn, till exempel int, long, real. Som standard har varje rad vikten "1". Om du vill använda standardvärdet anger du tilde: ~. En vanlig användning av en viktkolumn är att ta hänsyn till sampling eller bucketing/aggregering av data som redan är inbäddade i varje rad.

Exempel: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count)
Tröskelvärde long En lång i intervallet 0,015 till 1. Det här värdet anger den minimala mönsterförhållandeskillnaden mellan de två uppsättningarna. Standardvärdet är 0,05. Om du vill använda standardvärdet anger du tilde: ~.

Exempel: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", 0.04)
MaxDimensions int Anger det maximala antalet okorrelerade dimensioner per resultatmönster. Genom att ange en gräns minskar du frågekörningen. Standardvärdet är obegränsat. Om du vill använda standardvärdet anger du tilde: ~.

Exempel: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", 3)
CustomWildcard string Anger jokerteckenvärdet för en viss typ i resultattabellen som anger att det aktuella mönstret inte har någon begränsning för den här kolumnen. Standardvärdet är null, förutom strängkolumner där standardvärdet är en tom sträng. Om standardvärdet är ett livskraftigt värde i data bör ett annat jokerteckenvärde användas. Till exempel *. Om du vill använda standardvärdet anger du tilde: ~.

Exempel: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", "~", int(-1), double(-1), long(0), datetime(1900-1-1))

Returer

diffpatterns returnerar en liten uppsättning mönster som samlar in olika delar av data i de två uppsättningarna (det vill: ett mönster som samlar in en stor procentandel av raderna i den första datauppsättningen och låg procentandel av raderna i den andra uppsättningen). Varje mönster representeras av en rad i resultatet.

Resultatet av diffpatterns returnerar följande kolumner:

  • SegmentId: identiteten som tilldelats mönstret i den aktuella frågan (obs! ID:er är inte garanterade att vara desamma i upprepade frågor).

  • CountA: antalet rader som avbildas av mönstret i Ange A (ange A motsvarar where tostring(splitColumn) == SplitValueA).

  • CountB: antalet rader som avbildas av mönstret i Set B (Set B är motsvarande where tostring(splitColumn) == SplitValueB).

  • PercentA: procentandelen rader i Ange A som avbildats av mönstret (100,0 * CountA/count(SetA)).

  • PercentB: procentandelen rader i Set B som avbildats av mönstret (100,0 * CountB/count(SetB)).

  • PercentDiffAB: den absoluta procentuella skillnaden mellan A och B (|PercentA – PercentB|) är det viktigaste måttet på betydelsen av mönster när det gäller att beskriva skillnaden mellan de två uppsättningarna.

  • Resten av kolumnerna: är det ursprungliga schemat för indata och beskriver mönstret, varje rad (mönster) representerar skärningspunkten mellan kolumnernas värden som inte är jokertecken (motsvarande where col1==val1 and col2==val2 and ... colN=valN för varje värde som inte är jokertecken på raden).

För varje mönster innehåller kolumner som inte anges i mönstret (dvs. utan begränsning för ett visst värde) ett jokerteckenvärde, vilket är null som standard. Se i avsnittet Argument nedan hur jokertecken kan ändras manuellt.

  • Obs! Mönstren är ofta inte distinkta. De kan vara överlappande och täcker vanligtvis inte alla ursprungliga rader. Vissa rader kanske inte omfattas av något mönster.

Tips

  • Använd var och projekt i indatapipan för att minska data till precis det du är intresserad av.
  • När du hittar en intressant rad kanske du vill öka detaljnivån ytterligare genom att lägga till dess specifika värden i where filtret.

Exempel

StormEvents 
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , 1 , 0)
| project State , EventType , Source , Damage, DamageCrops
| evaluate diffpatterns(Damage, "0", "1" )

Resultat

SegmentId CountA AntalB PercentA PercentB PercentDiffAB Tillstånd Eventtype Källa DamageCrops
0 2278 93 49.8 7.1 42.7 Hagel 0
1 779 512 17.03 39.08 22.05 Åska vind
2 1098 118 24.01 9.01 15 Tränad spotter 0
3 136 158 2,97 12.06 9.09 Tidningen
4 359 214 7.85 16.34 8.49 Flash Flood
5 50 122 1.09 9.31 8.22 IOWA
6 655 279 14.32 21,3 6.98 Brottsbekämpande
7 150 117 3.28 8.93 5.65 Översvämning
8 362 176 7.91 13.44 5.52 Emergency Manager