Udostępnij za pośrednictwem


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

  • Użyj miejsca i projektu w potoku wejściowym, aby zmniejszyć dane do tego, co cię interesuje.
  • Jeśli znajdziesz interesujący wiersz, możesz przejść do szczegółów, dodając jego określone wartości do filtru where .

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