csökkentési operátor
A következőkre vonatkozik: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Sztringkészletek csoportosítása az érték-hasonlóság alapján.
Az operátor minden ilyen csoporthoz egy pattern
, count
és representative
ad vissza . A pattern
legjobban azt a csoportot írja le, amelyben a *
karakter helyettesítő karaktert jelöl. A count
a csoport értékeinek száma, a representative
pedig a csoport egyik eredeti értéke.
Szintaxis
T|
reduce
[kind
=
ReduceKind] by
Expr [with
[threshold
=
Küszöbérték] [,
characters
=
Karakterek]]
További információ szintaxiskonvenciákról.
Paraméterek
Név | Típus | Szükséges | Leírás |
---|---|---|---|
Expr | string |
✔️ | Az az érték, amellyel csökkenteni kell. |
küszöbérték | real |
0 és 1 közötti érték, amely meghatározza a csoportosítási feltételeknek megfelelő sorok minimális törtrészét a csökkentési művelet elindításához. Az alapértelmezett érték 0,1. Javasoljuk, hogy kis küszöbértéket adjon meg a nagy bemenetekhez. Kisebb küszöbérték esetén több hasonló érték van csoportosítva, ami kevesebb, de több hasonló csoportot eredményez. A nagyobb küszöbértékek kisebb hasonlóságot igényelnek, ami több, kevésbé hasonló csoportot eredményez. Lásd példákat. |
|
karakterek | string |
A kifejezések között elválasztó karakterek listája. Az alapértelmezett érték minden nem ascii numerikus karakter. Példák: Karakterek viselkedése paraméter. | |
ReduceKind | string |
Az egyetlen érvényes érték a source . Ha source van megadva, az operátor hozzáfűzi a Pattern oszlopot a tábla meglévő soraihoz ahelyett, hogy Pattern összesítést ad. |
Visszatér
Olyan táblázat, amely annyi sort tartalmaz, amennyit a pattern
, count
és representative
nevű csoportok és oszlopok tartalmaznak. A pattern
legjobban azt a csoportot írja le, amelyben a *
karakter egy helyettesítő karaktert vagy egy tetszőleges beszúrási sztring helyőrzője. A count
a csoport értékeinek száma, a representative
pedig a csoport egyik eredeti értéke.
A reduce by city
eredménye például a következők lehetnek:
Minta | Gróf | Képviselő |
---|---|---|
San* | 5182 | San Bernard |
Szent* | 2846 | Szent Lucy |
Moszkva | 3726 | Moszkva |
*-ra-* | 2730 | One -on- One |
Párizs | 2716 | Párizs |
Példák
Az ebben a szakaszban szereplő példa bemutatja, hogyan használható a szintaxis az első lépésekhez.
A cikkben szereplő példák a nyilvánosan elérhető tábláit használják a fürt, például a Minták adatbázis
StormEvents
tábláját.
A cikkben szereplő példák nyilvánosan elérhető táblákat használnak, például a Weather Analytics
StormEvents
táblát, mintaadatokat.
Kis küszöbérték
Ez a lekérdezés számtartományt hoz létre, létrehoz egy új oszlopot összefűzött sztringekkel és véletlenszerű egész számokkal, majd csoportosítja a sorokat az új oszlop szerint meghatározott csökkentési paraméterekkel.
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"
kimeneti
Minta | Gróf | Képviselő |
---|---|---|
MachineLearning* | 1000 | MachineLearningX4 |
Nagy küszöbérték
Ez a lekérdezés számtartományt hoz létre, létrehoz egy új oszlopot összefűzött sztringekkel és véletlenszerű egész számokkal, majd csoportosítja a sorokat az új oszlop szerint meghatározott csökkentési paraméterekkel.
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"
kimeneti
Az eredmény csak azokat a csoportokat tartalmazza, amelyekben a MyText érték a sorok legalább 90% jelenik meg.
Minta | Gróf | Képviselő |
---|---|---|
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 |
Characters
paraméter viselkedése
Ha a Karakterek paraméter nincs meghatározva, akkor minden nem ascii numerikus karakter kifejezéselválasztóvá válik.
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str
kimeneti
Minta | Gróf | Képviselő |
---|---|---|
Mások | 10 |
Ha azonban azt adja meg, hogy a "Z" elválasztó, akkor az olyan, mintha a str
minden értéke két kifejezésből áll: foo
és tostring(x)
:
range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"
kimeneti
Minta | Gróf | Képviselő |
---|---|---|
Foo* | 10 | fooZ1 |
reduce
alkalmazása a fertőtlenített bemenetre
Az alábbi példa bemutatja, hogyan alkalmazhatja a reduce
operátort egy "megtisztított" bemenetre, amelyben a csökkentett oszlopban lévő GRAFIKUS AZONOSÍTÓk a csökkentés előtt lecserélődnek:
Kezdje a Nyomkövetés tábla néhány rekordjával. Ezután csökkentse a Szöveg oszlopot, amely véletlenszerű GRAFIKUS GUID-ket tartalmaz. Amikor a véletlenszerű grafikus felhasználói felületi azonosítók zavarják a csökkentési műveletet, cserélje le őket a "GUID" sztringre. Most hajtsa végre a csökkentési műveletet. Ha más "kvázi véletlenszerű" azonosítók is vannak bennük beágyazott "-" vagy "_" karakterekkel, a karaktereket ne kell félbeszakítóként kezelni.
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="-_"
Kapcsolódó tartalom
Jegyzet
A reduce
operátor implementálása nagyrészt a Risto Vaarandi által bányászati mintákhoz készült adatfürtös algoritmus.