Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
A função percentilew() calcula uma estimativa ponderada para o percentil especificado mais próximo da população definida por expr.
percentilesw() funciona de forma semelhante a percentilew(). No entanto, percentilesw() pode calcular vários valores de percentil ponderado de uma só vez, o que é mais eficiente do que calcular cada valor de percentil ponderado separadamente.
Os percentis ponderados calculam percentis em um conjunto de dados atribuindo um peso a cada valor no conjunto de dados de entrada. Neste método, considera-se que cada valor é repetido um número de vezes igual ao seu peso, que é então utilizado para calcular o percentil. Ao dar mais importância a certos valores, os percentis ponderados fornecem uma maneira de calcular percentis de forma "ponderada".
Para calcular percentis não ponderados, ver percentis ().
Observação
Esta função é usada em conjunto com o operador resumo.
Sintaxe
percentilew(
expr,weightExpr,percentil)
percentilesw(
expr,weightExpr,percentis)
Saiba mais sobre convenções de sintaxe.
Parâmetros
| Designação | Tipo | Necessário | Descrição |
|---|---|---|---|
| expr | string |
✔️ | A expressão a ser usada para o cálculo de agregação. |
| weightExpr | long |
✔️ | O peso para dar a cada valor. |
| percentil | real | ✔️ | Uma constante que especifica o percentil. |
| percentis | real | ✔️ | Um ou mais percentis separados por vírgula. |
Devoluções
Retorna uma tabela com as estimativas para de expiração dos percentis especificados no grupo, cada um em uma coluna separada.
Observação
Para retornar os percentis em uma única coluna, consulte Retornar percentis como uma matriz.
Exemplos
Os exemplos nesta seção mostram como usar a sintaxe para ajudá-lo a começar.
Calcular percentis ponderados
Suponha que você meça repetidamente o tempo (Duração) que uma ação leva para ser concluída. Em vez de registrar cada valor da medição, você registra cada valor de Duração, arredondado para 100 mseg, e quantas vezes o valor arredondado apareceu (BucketSize).
Use summarize percentilesw(Duration, BucketSize, ...) para calcular os percentis dados de forma "ponderada". Trate cada valor de Duration como se fosse repetido vezes BucketSize na entrada, sem realmente precisar materializar esses registros.
O exemplo a seguir mostra percentis ponderados.
Usando o seguinte conjunto de valores de latência em milissegundos: { 1, 1, 2, 2, 2, 5, 7, 7, 12, 12, 15, 15, 15, 18, 21, 22, 26, 35 }.
Para reduzir a largura de banda e o armazenamento, faça a pré-agregação para os seguintes buckets: { 10, 20, 30, 40, 50, 100 }. Conte o número de eventos em cada bucket para produzir a tabela a seguir:
let latencyTable = datatable (ReqCount:long, LatencyBucket:long)
[
8, 10,
6, 20,
3, 30,
1, 40
];
latencyTable
A tabela apresenta:
- Oito eventos no bucket de 10 ms (correspondente ao subconjunto
{ 1, 1, 2, 2, 2, 5, 7, 7 }) - Seis eventos no bucket de 20 ms (correspondente ao subconjunto
{ 12, 12, 15, 15, 15, 18 }) - Três eventos no bucket de 30 ms (correspondente ao subconjunto
{ 21, 22, 26 }) - Um evento no bucket de 40 ms (correspondente ao subconjunto
{ 35 })
Neste momento, os dados originais já não estão disponíveis. Apenas o número de eventos em cada bucket. Para calcular percentis a partir desses dados, use a função percentilesw().
Para os percentis 50, 75 e 99,9, use a seguinte consulta:
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 |
Percentis de retorno como uma matriz
Em vez de retornar os valores em colunas individuais, use a função percentilesw_array() para retornar os percentis em uma única coluna do tipo de matriz dinâmica.
Sintaxe
percentilesw_array(
expr,weightExpr,percentis)
Parâmetros
| Designação | Tipo | Necessário | Descrição |
|---|---|---|---|
| expr | string |
✔️ | A expressão a ser usada para o cálculo de agregação. |
| percentis | real ou dinâmico | ✔️ | Um ou mais percentis separados por vírgulas ou uma matriz dinâmica de percentis. Cada percentil deve ser um valor real. |
| weightExpr | long |
✔️ | O peso para dar a cada valor. |
Devoluções
Retorna uma estimativa para expr dos percentis especificados no grupo como uma única coluna do tipo de matriz dinâmica.
Exemplos
Os exemplos nesta seção mostram como usar a sintaxe para ajudá-lo a começar.
Percentis separados por vírgulas
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] |
Matriz dinâmica de percentis
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] |