diffpatterns, wtyczka
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
Porównuje dwa zestawy danych tej samej struktury i znajduje wzorce dyskretnych atrybutów (wymiarów), które scharakteryzują różnice między dwoma zestawami danych. Wtyczka jest wywoływana z operatorem evaluate
.
diffpatterns
został opracowany w celu ułatwienia analizowania błędów (na przykład przez porównanie niepowodzeń z niepowodzeń w danym przedziale czasu), ale może potencjalnie znaleźć różnice między dwoma zestawami danych tej samej struktury.
Uwaga
diffpatterns
ma na celu znalezienie znaczących wzorców (które przechwytują części różnicy danych między zestawami) i nie są przeznaczone dla różnic wierszy po wierszach.
Składnia
T | evaluate diffpatterns(
SplitColumn SplitValueA,
SplitValueB [,
WeightColumn,
Threshold,
MaxDimensions,
CustomWildcard,
...],
)
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
Podział kolumny | string |
✔️ | Nazwa kolumny, która informuje algorytm o tym, jak podzielić zapytanie na zestawy danych. Zgodnie z określonymi wartościami argumentów SplitValueA i SplitValueB algorytm dzieli zapytanie na dwa zestawy danych, "A" i "B" i analizuje różnice między nimi. W związku z tym kolumna podziału musi mieć co najmniej dwie odrębne wartości. |
SplitValueA | string |
✔️ | Ciąg reprezentujący jedną z wartości w określonej kolumnie SplitColumn . Wszystkie wiersze, które mają tę wartość w kolumnie SplitColumn traktowane jako zestaw danych "A". |
SplitValueB | string |
✔️ | Ciąg reprezentujący jedną z wartości w określonej kolumnie SplitColumn . Wszystkie wiersze, które mają tę wartość w kolumnie SplitColumn traktowane jako zestaw danych "B". |
Kolumna wagowa | string |
Kolumna używana do rozważenia każdego wiersza w danych wejściowych zgodnie z określoną wagą. Musi być nazwą kolumny liczbowej, takiej jak int , long , real . Domyślnie każdy wiersz ma wagę "1". Aby użyć wartości domyślnej, wprowadź tyldę: ~ . Typowym użyciem kolumny wagi jest uwzględnienie próbkowania lub zasobnika/agregacji danych, które są już osadzone w każdym wierszu.Przykład: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count) |
|
Threshold | real |
Real w zakresie od 0,015 do 1. Ta wartość określa minimalną różnicę współczynnika wzorca między dwoma zestawami. Wartość domyślna to 0,05. Aby użyć wartości domyślnej, wprowadź tyldę: ~ .Przykład: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", 0.04) |
|
MaxDimensions | int |
Ustawia maksymalną liczbę niekorrelowanych wymiarów na wzorzec wyniku. Określając limit, należy zmniejszyć środowisko uruchomieniowe zapytania. Wartość domyślna to nieograniczona. Aby użyć wartości domyślnej, wprowadź tyldę: ~ .Przykład: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", 3) |
|
CustomWildcard | string |
Ustawia wartość symboli wieloznacznych dla określonego typu w tabeli wyników, która będzie wskazywać, że bieżący wzorzec nie ma ograniczenia dla tej kolumny. Wartość domyślna to null, z wyjątkiem kolumn ciągów, dla których wartość domyślna to pusty ciąg. Jeśli wartość domyślna to realna wartość w danych, należy użyć innej wartości wieloznacznych. Na przykład * . Aby użyć wartości domyślnej, wprowadź tyldę: ~ .Przykład: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", "~", int(-1), double(-1), long(0), datetime(1900-1-1)) |
Zwraca
diffpatterns
Zwraca niewielki zestaw wzorców, które przechwytują różne części danych w dwóch zestawach (czyli wzorzec przechwytujący duży procent wierszy w pierwszym zestawie danych i niski procent wierszy w drugim zestawie). Każdy wzorzec jest reprezentowany przez wiersz w wynikach.
Wynik diffpatterns
zwraca następujące kolumny:
SegmentId: tożsamość przypisana do wzorca w bieżącym zapytaniu (uwaga: identyfikatory nie mają gwarancji, że są takie same w powtarzających się zapytaniach).
CountA: liczba wierszy przechwyconych przez wzorzec w zestawie A (zestaw A jest odpowiednikiem ).
where tostring(splitColumn) == SplitValueA
CountB: liczba wierszy przechwyconych przez wzorzec w zestawie B (zestaw B jest odpowiednikiem ).
where tostring(splitColumn) == SplitValueB
PercentA: procent wierszy w ustawieniu A przechwycony przez wzorzec (100,0 * CountA / count(SetA)).
PercentB: procent wierszy w zestawie B przechwycony przez wzorzec (100,0 * CountB / count(SetB)).
PercentDiffAB: bezwzględna różnica punktów procentowych między A i B (|PercentA — PercentB|) jest główną miarą istotności wzorców opisujących różnicę między dwoma zestawami.
Pozostałe kolumny: są oryginalnym schematem danych wejściowych i opisują wzorzec, każdy wiersz (wzorzec) reprezentuje przecięcie wartości innych niż wieloznaczne kolumn (odpowiednik
where col1==val1 and col2==val2 and ... colN=valN
dla każdej wartości nieznajdujących symboli wieloznacznych w wierszu).
Dla każdego wzorca kolumny, które nie są ustawione we wzorcu (czyli bez ograniczeń dla określonej wartości), będą zawierać wartość wieloznaczną, która domyślnie ma wartość null. Zobacz w sekcji Argumenty poniżej, jak można ręcznie zmienić symbole wieloznaczne.
- Uwaga: wzorce często nie są odrębne. Mogą się nakładać i zwykle nie obejmują wszystkich oryginalnych wierszy. Niektóre wiersze mogą nie należeć do żadnego wzorca.
Napiwek
Przykład
StormEvents
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , 1 , 0)
| project State , EventType , Source , Damage, DamageCrops
| evaluate diffpatterns(Damage, "0", "1" )
Wyjście
Identyfikator segmentu | CountA | LiczbaB | PercentA | Procent | PercentDiffAB | Stan | EventType | Źródło | DamageCrops |
---|---|---|---|---|---|---|---|---|---|
0 | 2278 | 93 | 49,8 | 7.1 | 42.7 | Grad | 0 | ||
1 | 779 | 512 | 17.03 | 39.08 | 22.05 | Wiatr i burza | |||
2 | 1098 | 118 | 24.01 | 9.01 | 15 | Wytrenowany spotter | 0 | ||
3 | 136 | 158 | 2,97 | 12.06 | 9.09 | Gazeta | |||
100 | 359 | 214 | 7.85 | 16.34 | 8.49 | Powodzia błyskawiczna | |||
5 | 50 | 122 | 1.09 | 9.31 | 8.22 | IOWA | |||
6 | 655 | 279 | 14.32 | 21,3 | 6.98 | Ścigania | |||
7 | 150 | 117 | 3.28 | 8.93 | 5.65 | Powódź | |||
8 | 362 | 176 | 7.91 | 13.44 | 5.52 | Menedżer awaryjny |