operator zmniejszania
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Grupuje zestaw ciągów na podstawie podobieństwa wartości.
Dla każdej takiej grupy operator zwraca wartość pattern
, count
i 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] by
Expr [with
=
threshold
Próg] [ characters
=
,
Znaki]]
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
Wyrażenie | string |
✔️ | Wartość, o którą należy zmniejszyć. |
Threshold | 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. Zalecamy ustawienie małej wartości progowej dla dużych danych wejściowych. Przy mniejszej wartości progowej pogrupowane są bardziej podobne wartości, co skutkuje mniejszą liczbą, ale bardziej podobnymi grupami. Większa wartość progowa wymaga mniejszej podobieństwa, co powoduje, że więcej grup jest mniej podobnych. Zobacz Przykłady. |
|
Znaki | string |
Lista znaków, które oddzielają się od terminów. Wartość domyślna to każdy znak nienumeryczny ascii. Aby zapoznać się z przykładami, zobacz Zachowanie parametru Znaków. | |
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 pattern
o nazwie , count
i 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 | Count | Przedstawiciel |
---|---|---|
San* | 5182 | San Bernard |
Święty* | 2846 | Saint Lucy |
Moskwa | 3726 | Moskwa |
*-na-* | 2730 | Jeden -on- Jeden |
Paryż | 2716 | Paryż |
Przykłady
Mała wartość progowa
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 | Count | Przedstawiciel |
---|---|---|
MachineLearning* | 1000 | MachineLearningX4 |
Duża wartość progowa
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
Wzorzec | Count | 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 |
Zachowanie parametru Znaki
Jeśli parametr Characters jest nieokreślony, każdy znak liczbowy spoza ascii staje się separatorem terminów.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Wyjście
Wzorzec | Count | Przedstawiciel |
---|---|---|
inni | 10 |
Jeśli jednak określisz, że "Z" jest separatorem, to tak, jakby każda wartość w str
parametrze ma 2 terminy: i tostring(x)
: foo
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
Wyjście
Wzorzec | Count | Przedstawiciel |
---|---|---|
Foo* | 10 | fooZ1 |
Zastosuj reduce
do oczyszczonych danych wejściowych
W poniższym przykładzie pokazano, jak można zastosować reduce
operator do danych wejściowych "oczyszczonych", w których identyfikatory GUID w kolumnie są zastępowane przed zmniejszeniem
// Start with a few records from the Trace table.
Trace | take 10000
// We will reduce the Text column which includes random GUIDs.
// As random GUIDs interfere with the reduce operation, replace them all
// by the string "GUID".
| extend Text=replace_regex(Text, @"[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}", @"GUID")
// Now perform the reduce. In case there are other "quasi-random" identifiers with embedded '-'
// or '_' characters in them, treat these as non-term-breakers.
| 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.