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]