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


percentilew(), percentilesw() (aggregációs függvény)

A percentilew() függvény súlyozott becslést számít ki az expr által definiált sokaság megadott legközelebbi rangsorú percentilisére vonatkozóan. percentilesw() ugyanúgy működik, mint a percentilew(). percentilesw() Egyszerre azonban több súlyozott percentilisértéket is ki tud számítani, ami hatékonyabb, mint az egyes súlyozott percentilisértékek külön-külön való kiszámítása.

A súlyozott percentilisek az adathalmaz percentiliseit úgy számítják ki, hogy a bemeneti adathalmaz minden értékét súlyozással adják meg. Ebben a módszerben az egyes értékeket a tömegével egyenlő számú alkalommal kell megismételni, amelyet aztán a percentilis kiszámítására használnak. Azáltal, hogy nagyobb jelentőséget ad bizonyos értékeknek, a súlyozott percentilisek módot biztosítanak a percentilisek "súlyozott" kiszámítására.

A nem súlyozott percentilisek kiszámításához lásd: percentilis().

Megjegyzés

Ezt a függvényt az összegző operátorral együtt használja a rendszer.

Syntax

percentilew(Kifejezés,weightExpr,Percentilis)

percentilesw(Kifejezés,weightExpr,percentilisek)

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
Kifejezés string ✔️ Az összesítés kiszámításához használandó kifejezés.
weightExpr long ✔️ Az egyes értékekhez tartozó súly.
Percentilis int vagy long ✔️ Egy állandó, amely meghatározza a percentilis értékét.
percentilisek int vagy long ✔️ Egy vagy több vesszővel tagolt percentilis.

Válaszok

Egy táblát ad vissza, amely a csoport megadott percentiliseinek kifára vonatkozó becsléseit tartalmazza, mindegyik külön oszlopban található.

Megjegyzés

Ha egyetlen oszlopban szeretné visszaadni a percentiliseket, olvassa el a Percentilisek visszaadása tömbként című témakört.

Példák

Súlyozott percentilisek kiszámítása

Tegyük fel, hogy ismétlődően méri azt az időtartamot (időtartamot), amely egy műveletet végrehajt. A mérés minden értékének rögzítése helyett az Duration értékeket 100 msec-re kerekített és a kerekített érték hányszor jelenik meg (BucketSize).

Az adott percentilisek "súlyozott" módon történő kiszámítására használható summarize percentilesw(Duration, BucketSize, ...) . Az Időtartam minden értékét úgy kell kezelnie, mintha a bemenetben ismételték volna meg a BucketSize-időpontokat, anélkül, hogy ténylegesen kellene ezeket a rekordokat materializálnia.

Az alábbi példa a súlyozott percentiliseket mutatja be. A következő késési értékek használata ezredmásodpercben: { 1, 1, 2, 2, 2, 5, 7, 7, 12, 12, 15, 15, 15, 18, 21, 22, 26, 35 }.

A sávszélesség és a tárolás csökkentése érdekében végezze el a következő gyűjtők előzetes összesítését: { 10, 20, 30, 40, 50, 100 }. Az egyes gyűjtőkben lévő események számának megszámlálása a következő táblázat létrehozásához:

let latencyTable = datatable (ReqCount:long, LatencyBucket:long) 
[ 
    8, 10, 
    6, 20, 
    3, 30, 
    1, 40 
];
latencyTable

A táblázat a következőt jeleníti meg:

  • Nyolc esemény a 10 ms-os gyűjtőben (a részhalmaznak { 1, 1, 2, 2, 2, 5, 7, 7 }felel meg)
  • Hat esemény a 20 ms-os gyűjtőben (a részhalmaznak { 12, 12, 15, 15, 15, 18 }megfelelő)
  • Három esemény a 30 ms-os gyűjtőben (a részhalmaznak { 21, 22, 26 }felel meg)
  • Egy esemény a 40 ms-os gyűjtőben (a részhalmaznak { 35 }felel meg)

Ezen a ponton az eredeti adatok már nem érhetők el. Csak az egyes gyűjtőkben lévő események száma. Az adatokból származó percentilisek kiszámításához használja a függvényt percentilesw() . Az 50, 75 és 99,9 percentilisekhez használja a következő lekérdezést:

let latencyTable = datatable (ReqCount:long, LatencyBucket:long) 
[ 
    8, 10, 
    6, 20, 
    3, 30, 
    1, 40 
];
latencyTable
| summarize percentilesw(LatencyBucket, ReqCount, 50, 75, 99.9)

Kimenet

percentile_LatencyBucket_50 percentile_LatencyBucket_75 percentile_LatencyBucket_99_9
20 20 40

Percentilisek visszaadása tömbként

Az egyes oszlopok értékeinek visszaadása helyett a függvény használatával percentilesw_array() adja vissza a percentiliseket egyetlen dinamikus tömbtípusú oszlopban.

Syntax

percentilesw_array(Kifejezés,weightExpr,percentilisek)

Paraméterek

Név Típus Kötelező Leírás
Kifejezés string ✔️ Az összesítés kiszámításához használandó kifejezés.
percentilisek int, long vagy dynamic ✔️ Egy vagy több vesszővel tagolt percentilis vagy percentilis dinamikus tömbje. Minden percentilis lehet egész vagy hosszú érték.
weightExpr long ✔️ Az egyes értékekhez tartozó súly.

Válaszok

A csoport megadott percentiliseinek expr értékét adja vissza egyetlen dinamikus tömbtípusú oszlopként.

Példák

Vesszővel tagolt percentilisek

let latencyTable = datatable (ReqCount:long, LatencyBucket:long) 
[ 
    8, 10, 
    6, 20, 
    3, 30, 
    1, 40 
];
latencyTable
| summarize percentilesw_array(LatencyBucket, ReqCount, 50, 75, 99.9)

Kimenet

percentile_LatencyBucket
[20, 20, 40]

Percentilisek dinamikus tömbje

let latencyTable = datatable (ReqCount:long, LatencyBucket:long) 
[ 
    8, 10, 
    6, 20, 
    3, 30, 
    1, 40 
];
latencyTable
| summarize percentilesw_array(LatencyBucket, ReqCount, dynamic([50, 75, 99.9]))

Kimenet

percentile_LatencyBucket
[20, 20, 40]