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] |
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: