Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku
Applies to: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Seskupí sadu řetězců na základě podobnosti hodnot.
Pro každou takovou skupinu vrátí pattern
operátor hodnotu , count
a representative
. Nejlépe pattern
popisuje skupinu, ve které *
znak představuje zástupný znak. Jedná se count
o počet hodnot ve skupině a representative
jedná se o jednu z původních hodnot ve skupině.
T|
reduce
[kind
=
ReduceKind] by
Expr [with
[threshold
=
Threshold] [,
characters
=
Characters]]
Learn more about syntax conventions.
Name | Typ | Required | Description |
---|---|---|---|
Expr | string |
✔️ | Hodnota, o kterou chcete snížit. |
Threshold | real |
Hodnota mezi 0 a 1, která určuje minimální zlomek řádků potřebných ke splnění kritérií seskupení, aby se mohla aktivovat operace redukce. Výchozí hodnota je 0,1. Parametr prahové hodnoty určuje minimální úroveň podobnosti vyžadovanou pro seskupení hodnot. S menší prahovou hodnotou (blíže k 0) se seskupí více podobných hodnot, což vede k menšímu počtu, ale více podobných skupin. Větší prahová hodnota (blíže k 1) vyžaduje menší podobnost, což vede k menšímu počtu skupin, které jsou méně podobné. Doporučujeme nastavit malou prahovou hodnotu pro velké vstupy. See Examples. |
|
Characters | string |
Seznam znaků, které se oddělují mezi termíny. Výchozí hodnota je každý číselný znak, který není ascii. For examples, see Examples. | |
ReduceKind | string |
Jediná platná hodnota je source . Pokud source je zadán, operátor připojí Pattern sloupec k existujícím řádkům v tabulce místo agregace Pattern . |
Tabulka s tolika řádky, kolik jsou skupiny a sloupce s názvem pattern
, count
a representative
. Nejlépe pattern
popisuje skupinu, ve které *
znak představuje zástupný znak nebo zástupný symbol pro libovolný řetězec vložení. Jedná se count
o počet hodnot ve skupině a representative
jedná se o jednu z původních hodnot ve skupině.
Například výsledek reduce by city
může zahrnovat:
Pattern | Count | Representative |
---|---|---|
San * | 5182 | San Bernard |
Saint * | 2846 | Saint Lucy |
Moscow | 3726 | Moscow |
*-na-* | 2730 | Jeden -on- Jeden |
Paris | 2716 | Paris |
Příklad v této části ukazuje, jak použít syntaxi, která vám pomůže začít.
The examples in this article use publicly available tables in the help cluster, such as the
StormEvents
table in the Samples database.
The examples in this article use publicly available tables, such as the
Weather
table in the Weather analytics sample gallery. Možná budete muset změnit název tabulky v ukázkovém dotazu tak, aby odpovídal tabulce v pracovním prostoru.
Následující příklad vygeneruje rozsah čísel, vytvoří nový sloupec se zřetězenými řetězci a náhodnými celými čísly a potom seskupí řádky podle nového sloupce s konkrétními parametry redukce. Prahová hodnota je nastavená na hodnotu 0,001, což znamená, že operátor seskupí hodnoty, které jsou velmi podobné sobě.
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"
Output
Pattern | Count | Representative |
---|---|---|
MachineLearning* | 1000 | MachineLearningX4 |
Následující příklad vygeneruje rozsah čísel, vytvoří nový sloupec se zřetězenými řetězci a náhodnými celými čísly a potom seskupí řádky podle nového sloupce s konkrétními parametry redukce. Prahová hodnota je nastavená na hodnotu 0,9, což znamená, že operátor seskupí hodnoty méně přísně a umožňuje větší odchylku.
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"
Output
Výsledek zahrnuje pouze ty skupiny, ve kterých se hodnota MyText zobrazí nejméně v 90% řádků.
Pattern | Count | Representative |
---|---|---|
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 |
If the Characters parameter is unspecified, by default the operator treats all non-alphanumeric characters (including spaces and punctuation) as term separators.
The following example shows how the reduce
operator behaves when the Characters parameter isn't specified.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
Output
Pattern | Count | Representative |
---|---|---|
others | 10 |
Pokud ale zadáte, že "Z" je oddělovač, je to, jako by každá hodnota v str
je dva termíny: foo
a tostring(x)
:
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
Output
Pattern | Count | Representative |
---|---|---|
foo* | 10 | fooZ1 |
Následující příklad ukazuje, jak jeden může použít operátor reduce
na "sanitized" vstup, ve kterém identifikátory GUID ve sloupci jsou nahrazeny před snížením:
Začněte několika záznamy z tabulky Trasování. Potom zmenšete sloupec Text, který obsahuje náhodné identifikátory GUID. Vzhledem k tomu, že náhodné identifikátory GUID interferují s operací redukce, nahraďte je všechny řetězcem "GUID". Teď proveďte operaci redukce. V případě, že existují další identifikátory "quasi-random" s vloženými znaky -, nebo '_' v nich, považují se za znaky bez termínů.
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="-_"
Poznámka
Implementace operátoru reduce
je z velké části založena na papíru A Data Clustering Algorithm for Mining Patterns From Event Logs, autor Risto Vaarandi.