Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Grupuje zestaw ciągów na podstawie podobieństwa wartości.
Dla każdej takiej grupy operator zwraca wartość pattern, counti representative. Najlepiej pattern opisuje grupę, w której * znak reprezentuje symbol wieloznaczny. Jest count to liczba wartości w grupie, a representative jest jedną z oryginalnych wartości w grupie.
Składnia
T|reduce [kind= ReduceKind] byExpr [withthreshold= Próg] [ ,characters=Znaki]]
Dowiedz się więcej na temat konwencji składni.
Parametry
| Nazwisko | Typ | Wymagania | opis |
|---|---|---|---|
| Wyrażenie | string |
✔️ | Wartość, o którą należy zmniejszyć. |
| Próg | real |
Wartość z zakresu od 0 do 1, która określa minimalny ułamek wierszy wymaganych do dopasowania kryteriów grupowania w celu wyzwolenia operacji redukcji. Wartość domyślna to 0,1. Parametr progu określa minimalny poziom podobieństwa wymagane do grupowania wartości. Przy mniejszej wartości progowej (bliżej 0) bardziej podobne wartości są grupowane razem, co skutkuje mniejszą liczbą, ale bardziej podobnymi grupami. Większa wartość progowa (bliżej 1) wymaga mniejszej podobieństwa, co powoduje, że więcej grup jest mniej podobnych. Zalecamy ustawienie małej wartości progowej dla dużych danych wejściowych. Zobacz Przykłady. |
|
| Znaki | string |
Lista znaków, które oddzielają się od terminów. Wartość domyślna to każdy znak nienumeryczny ascii. Przykłady można znaleźć w temacie Przykłady. | |
| ReduceKind | string |
Jedyną prawidłową wartością jest source. Jeśli source zostanie określony, operator dołącza kolumnę Pattern do istniejących wierszy w tabeli zamiast agregować według Pattern. |
Zwraca
Tabela zawierająca tyle wierszy, ile zawiera grupy i kolumny patterno nazwie , counti representative. Najlepiej pattern opisuje grupę, w której * znak reprezentuje symbol wieloznaczny lub symbol zastępczy dla dowolnego ciągu wstawiania. Jest count to liczba wartości w grupie, a representative jest jedną z oryginalnych wartości w grupie.
Na przykład wynik reduce by city może obejmować:
| Wzorzec | Liczba | Przedstawiciel |
|---|---|---|
| San* | 5182 | San Bernard |
| Święty* | 2846 | Święty Lucy |
| Moskwa | 3726 | Moskwa |
| *-na-* | 2730 | Jeden -on- Jeden |
| Paryż | 2716 | Paryż |
Przykłady
W przykładzie w tej sekcji pokazano, jak używać składni, aby ułatwić rozpoczęcie pracy.
Przykłady w tym artykule używają publicznie dostępnych tabel w pomocy klastra, takich jak tabela
StormEventsw bazie danych przykładów.
Przykłady w tym artykule używają publicznie dostępnych tabel, takich jak tabela
StormEventsw przykładowej analizie pogody przykładowych danych.
Poniższy przykład generuje zakres liczb, tworzy nową kolumnę z połączonymi ciągami i losowymi liczbami całkowitymi, a następnie grupuje wiersze według nowej kolumny z określonymi parametrami redukcji. Próg jest ustawiony na 0,001, co oznacza, że operator grupuje wartości, które są bardzo podobne do siebie.
range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText with threshold=0.001 , characters = "X"
Wyjście
| Wzorzec | Liczba | Przedstawiciel |
|---|---|---|
| MachineLearning* | 1000 | MachineLearningX4 |
Poniższy przykład generuje zakres liczb, tworzy nową kolumnę z połączonymi ciągami i losowymi liczbami całkowitymi, a następnie grupuje wiersze według nowej kolumny z określonymi parametrami redukcji. Próg jest ustawiony na wartość 0,9, co oznacza, że operator grupuje wartości mniej ściśle i zezwala na większą wariancję.
range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText with threshold=0.9 , characters = "X"
Wyjście
Wynik zawiera tylko te grupy, w których wartość MyText jest wyświetlana w co najmniej 90% wierszy.
| Wzorzec | Liczba | Przedstawiciel |
|---|---|---|
| MachineLearning* | 177 | MachineLearningX9 |
| MachineLearning* | 102 | MachineLearningX0 |
| MachineLearning* | 106 | MachineLearningX1 |
| MachineLearning* | 96 | MachineLearningX6 |
| MachineLearning* | 110 | MachineLearningX4 |
| MachineLearning* | 100 | MachineLearningX3 |
| MachineLearning* | 99 | MachineLearningX8 |
| MachineLearning* | 104 | MachineLearningX7 |
| MachineLearning* | 106 | MachineLearningX2 |
Jeśli parametr Znaki jest nieokreślony, domyślnie operator traktuje wszystkie znaki inne niż alfanumeryczne (w tym spacje i znaki interpunkcyjne) jako separatory terminów.
W poniższym przykładzie pokazano, jak reduce operator zachowuje się, gdy parametr Characters nie jest określony.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Wyjście
| Wzorzec | Liczba | Przedstawiciel |
|---|---|---|
| inni | 10 |
Jeśli jednak określisz, że "Z" jest separatorem, to tak, jakby każda wartość w str to dwa terminy: foo i tostring(x):
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
Wyjście
| Wzorzec | Liczba | Przedstawiciel |
|---|---|---|
| Foo* | 10 | fooZ1 |
W poniższym przykładzie pokazano, jak można zastosować operator reduce do danych wejściowych "oczyszczonych", w których identyfikatory GUID w zmniejszonej kolumnie są zastępowane przed zmniejszeniem:
Zacznij od kilku rekordów z tabeli Trace. Następnie zmniejsz kolumnę Tekst zawierającą losowe identyfikatory GUID. Ponieważ losowe identyfikatory GUID zakłócają operację redukcji, zastąp je wszystkimi ciągami "GUID". Teraz wykonaj operację redukcji. Jeśli istnieją inne identyfikatory "quasi-losowe" z osadzonymi znakami "-" lub "_", traktują znaki jako nieokresowe.
Trace
| take 10000
| extend Text = replace(@"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", "GUID", Text)
| reduce by Text with characters="-_"
Powiązana zawartość
Uwaga
Implementacja reduce operatora jest w dużej mierze oparta na dokumencie A Data Clustering Algorithm for Mining Patterns From Event Logs (Algorytm klastrowania danych dla wzorców wyszukiwania z dzienników zdarzeń) firmy Risto Vaarandi.