percentilew(), percentilesw() (funzione di aggregazione)
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
La percentilew()
funzione calcola una stima ponderata per il percentile di rango più vicino specificato della popolazione definita da expr. percentilesw()
funziona in modo analogo a percentilew()
. Tuttavia, percentilesw()
può calcolare più valori percentili ponderati contemporaneamente, che è più efficiente del calcolo di ogni valore percentile ponderato separatamente.
I percentili ponderati calcolano i percentili in un set di dati assegnando a ogni valore nel set di dati di input un peso. In questo metodo, ogni valore viene considerato ripetuto un numero di volte uguale al suo peso, che viene quindi usato per calcolare il percentile. Assegnando maggiore importanza a determinati valori, i percentili ponderati consentono di calcolare i percentili in modo "ponderato".
Per calcolare i percentili non ponderati, vedere percentiles().
Sintassi
percentilew(
expr,
weightExpr,
percentile)
percentilesw(
expr,
weightExpr,
percentiles)
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
expr | string |
✔️ | Espressione da utilizzare per il calcolo delle aggregazioni. |
weightExpr | long |
✔️ | Peso da assegnare a ogni valore. |
percentile | int o long | ✔️ | Costante che specifica il percentile. |
Percentili | int o long | ✔️ | Uno o più percentili delimitati da virgole. |
Valori restituiti
Restituisce una tabella con le stime per l'espressione dei percentili specificati nel gruppo, ognuna in una colonna separata.
Nota
Per restituire i percentili in una singola colonna, vedere Restituire percentili come matrice.
Esempi
Calcolare i percentili ponderati
Si supponga di misurare in modo ripetitivo il tempo (durata) necessario per completare un'azione. Invece di registrare ogni valore della misura, registrare ogni valore di Duration, arrotondato a 100 msec e quante volte è apparso il valore arrotondato (BucketSize).
Usare summarize percentilesw(Duration, BucketSize, ...)
per calcolare i percentili specificati in modo "ponderato". Considerare ogni valore di Duration come se fosse stato ripetuto bucketSize volte nell'input, senza dover materializzare effettivamente tali record.
L'esempio seguente mostra i percentili ponderati.
Uso del set di valori di latenza seguente in millisecondi: { 1, 1, 2, 2, 2, 5, 7, 7, 12, 12, 15, 15, 15, 18, 21, 22, 26, 35 }
.
Per ridurre la larghezza di banda e l'archiviazione, eseguire la pre-aggregazione per i bucket seguenti: { 10, 20, 30, 40, 50, 100 }
. Contare il numero di eventi in ogni bucket per produrre la tabella seguente:
let latencyTable = datatable (ReqCount:long, LatencyBucket:long)
[
8, 10,
6, 20,
3, 30,
1, 40
];
latencyTable
La tabella visualizza:
- Otto eventi nel bucket da 10 ms (corrispondente al subset
{ 1, 1, 2, 2, 2, 5, 7, 7 }
) - Sei eventi nel bucket da 20 ms (corrispondente al subset
{ 12, 12, 15, 15, 15, 18 }
) - Tre eventi nel bucket da 30 ms (corrispondente al subset
{ 21, 22, 26 }
) - Un evento nel bucket da 40 ms (corrispondente al subset
{ 35 }
)
A questo punto, i dati originali non sono più disponibili. Solo il numero di eventi in ogni bucket. Per calcolare i percentili da questi dati, usare la percentilesw()
funzione .
Per i percentili 50, 75 e 99,9, usare la query seguente:
let latencyTable = datatable (ReqCount:long, LatencyBucket:long)
[
8, 10,
6, 20,
3, 30,
1, 40
];
latencyTable
| summarize percentilesw(LatencyBucket, ReqCount, 50, 75, 99.9)
Output
percentile_LatencyBucket_50 | percentile_LatencyBucket_75 | percentile_LatencyBucket_99_9 |
---|---|---|
20 | 20 | 40 |
Restituisce percentili come matrice
Anziché restituire i valori in singole colonne, usare la percentilesw_array()
funzione per restituire i percentili in una singola colonna di tipo matrice dinamico.
Sintassi
percentilesw_array(
expr,
weightExpr,
percentiles)
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
expr | string |
✔️ | Espressione da utilizzare per il calcolo delle aggregazioni. |
Percentili | int, long o dynamic | ✔️ | Uno o più percentili delimitati da virgole o una matrice dinamica di percentili. Ogni percentile può essere un valore intero o long. |
weightExpr | long |
✔️ | Peso da assegnare a ogni valore. |
Valori restituiti
Restituisce una stima per l'espressione dei percentili specificati nel gruppo come singola colonna di tipo matrice dinamica.
Esempi
Percentili delimitati da virgole
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)
Output
percentile_LatencyBucket |
---|
[20, 20, 40] |
Matrice dinamica di percentili
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]))
Output
percentile_LatencyBucket |
---|
[20, 20, 40] |