percentilew(), percentilesw() (toplama işlevi)
işlevi, percentilew()
expr tarafından tanımlanan popülasyonun belirtilen en yakın sıralama yüzdebirliği için ağırlıklı bir tahmin hesaplar. percentilesw()
ile benzer şekilde percentilew()
çalışır. Ancak, percentilesw()
birden çok ağırlıklı yüzdebirlik değeri aynı anda hesaplayabilir ve bu da her bir ağırlıklı yüzde birlik değeri ayrı ayrı hesaplamaktan daha verimlidir.
Ağırlıklı yüzdebirlik değerler, giriş veri kümesindeki her bir değere ağırlık vererek bir veri kümesindeki yüzdebirlik dilimleri hesaplar. Bu yöntemde, her değerin ağırlığına eşit birkaç kez yinelendiği kabul edilir ve bu da yüzde birlik değeri hesaplamak için kullanılır. Belirli değerlere daha fazla önem vererek, ağırlıklı yüzdebirlik dilimler yüzde birlik değerleri "ağırlıklı" bir şekilde hesaplamanın bir yolunu sağlar.
Sıklıksız yüzdebirlik dilimleri hesaplamak için bkz. yüzdebirlik dilimler().
Not
Bu işlev summarize işleciyle birlikte kullanılır.
Syntax
percentilew(
ifade,
weightExpr,
Yüzdebirlik)
percentilesw(
ifade,
weightExpr,
yüzdebirlik dilimler)
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
ifade | string |
✔️ | Toplama hesaplaması için kullanılacak ifade. |
weightExpr | long |
✔️ | Her değere verebilmek için gereken ağırlık. |
Yüzdebirlik | int veya long | ✔️ | Yüzde birlik değeri belirten bir sabit. |
yüzdebirlik dilimler | int veya long | ✔️ | Bir veya daha fazla virgülle ayrılmış yüzdebirlik. |
Döndürülenler
Her biri ayrı bir sütunda olmak üzere grupta belirtilen yüzdebirlik değerlerin ifade tahminlerini içeren bir tablo döndürür.
Not
Tek bir sütundaki yüzde birlik değerleri döndürmek için bkz . Yüzdebirlik değerleri dizi olarak döndürme.
Örnekler
Ağırlıklı yüzdebirlik değerleri hesaplama
Tamamlanması için bir eylem gerçekleştirilen süreyi (Süre) tekrar tekrar ölçt olduğunuzu varsayalım. Ölçümün her değerini kaydetmek yerine, 100 milisaniyeye yuvarlanmış süre değerlerini ve yuvarlanmış değerin kaç kez göründüğünü (BucketSize) kaydedersiniz.
Verilen yüzde birlik değerleri "ağırlıklı" bir şekilde hesaplamak için kullanın summarize percentilesw(Duration, BucketSize, ...)
. Her Süre değerini girişte yinelenen BucketSize süreleri gibi, bu kayıtları gerçekleştirmeye gerek kalmadan değerlendirin.
Aşağıdaki örnekte ağırlıklı yüzdebirlik dilimler gösterilmektedir.
Milisaniye cinsinden aşağıdaki gecikme değerleri kümesini kullanarak: { 1, 1, 2, 2, 2, 5, 7, 7, 12, 12, 15, 15, 15, 18, 21, 22, 26, 35 }
.
Bant genişliğini ve depolamayı azaltmak için aşağıdaki demetlere önceden toplama yapın: { 10, 20, 30, 40, 50, 100 }
. Aşağıdaki tabloyu oluşturmak için her demetteki olay sayısını sayın:
let latencyTable = datatable (ReqCount:long, LatencyBucket:long)
[
8, 10,
6, 20,
3, 30,
1, 40
];
latencyTable
Tabloda şu görüntüler:
- 10 ms demetinde sekiz olay (alt kümeye
{ 1, 1, 2, 2, 2, 5, 7, 7 }
karşılık gelen ) - 20 ms demetinde altı olay (alt kümeye
{ 12, 12, 15, 15, 15, 18 }
karşılık gelir) - 30 ms demetindeki üç olay (alt kümeye
{ 21, 22, 26 }
karşılık gelen ) - 40 ms demetindeki bir olay (alt kümeye
{ 35 }
karşılık gelen )
Bu noktada, özgün veriler artık kullanılamaz. Yalnızca her demetteki olay sayısı. Bu verilerden yüzdebirlik dilimleri hesaplamak için işlevini kullanın percentilesw()
.
50, 75 ve 99,9 yüzdebirlik dilimler için aşağıdaki sorguyu kullanın:
let latencyTable = datatable (ReqCount:long, LatencyBucket:long)
[
8, 10,
6, 20,
3, 30,
1, 40
];
latencyTable
| summarize percentilesw(LatencyBucket, ReqCount, 50, 75, 99.9)
Çıkış
percentile_LatencyBucket_50 | percentile_LatencyBucket_75 | percentile_LatencyBucket_99_9 |
---|---|---|
20 | 20 | 40 |
Yüzdebirlik değerleri dizi olarak döndürme
Değerleri tek tek sütunlarda döndürmek yerine işlevini kullanarak percentilesw_array()
dinamik dizi türünde tek bir sütundaki yüzde birlik değerleri döndürebilirsiniz.
Syntax
percentilesw_array(
ifade,
weightExpr,
yüzdebirlik dilimler)
Parametreler
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
ifade | string |
✔️ | Toplama hesaplaması için kullanılacak ifade. |
yüzdebirlik dilimler | int, long veya dinamik | ✔️ | Bir veya daha fazla virgülle ayrılmış yüzdebirlik dilim veya dinamik bir yüzdebirlik dizisi. Her yüzdebirlik değer bir tamsayı veya uzun değer olabilir. |
weightExpr | long |
✔️ | Her değere verebilmek için gereken ağırlık. |
Döndürülenler
Dinamik dizi türünün tek bir sütunu olarak grupta belirtilen yüzde birlik değerlerin ifadeleri için bir tahmin döndürür.
Örnekler
Virgülle ayrılmış yüzdebirlik dilimler
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)
Çıkış
percentile_LatencyBucket |
---|
[20, 20, 40] |
Yüzdebirlik değerlerin dinamik dizisi
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]))
Çıkış
percentile_LatencyBucket |
---|
[20, 20, 40] |
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin