Megosztás a következőn keresztül:


csökkentési operátor

A következőkre vonatkozik: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Sztringkészletek csoportosítása az érték-hasonlóság alapján.

Az operátor minden ilyen csoporthoz egy pattern, countés representativead 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] byExpr [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 representativenevű 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="-_"

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.