Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przełącz usługi przy użyciu rozwijanej listy Wersja. Dowiedz się więcej o nawigacji.
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(
,
Dowiedz się więcej na temat konwencji składni.
Parametry
| Nazwisko | Typ | 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) |
|
| Próg | 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) == SplitValueACountB: liczba wierszy przechwyconych przez wzorzec w zestawie B (zestaw B jest odpowiednikiem ).
where tostring(splitColumn) == SplitValueBPercentA: 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=valNdla 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łady
W poniższym przykładzie pokazano, jak używać diffpatterns wtyczki do analizowania zestawu danych StormEvents. Porównuje zdarzenia, które miały miejsce w maju, koncentrując się na różnicach między zdarzeniami i bez uszkodzeń. Zapytanie używa diffpatterns wtyczki do identyfikowania wzorców, które rozróżniają te dwie grupy na podstawie kolumn State, EventType, Source i DamageCrops.
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 | RóżnicaProcentowaAB | Stan | Typ Wydarzenia | Ź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 |