Partilhar via


Plug-in rolling_percentile()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer

Retorna uma estimativa para o percentil especificado da população ValueColumn em uma janela de tamanho BinsPerWindow sem interrupção (deslizante) por BinSize.

O plug-in é invocado com o evaluate operador.

Sintaxe

Trolling_percentile(| evaluate ValueColumn, Percentil , IndexColumn, BinSize, BinsPerWindow [ , dim1, dim2, ...])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
T string ✔️ A expressão tabular de entrada.
ValueColumn string ✔️ O nome da coluna usada para calcular os percentis.
Percentil int, long ou real ✔️ Escalar com o percentil a ser calculado.
Coluna de índice string ✔️ O nome da coluna sobre a qual a janela sem interrupção será executada.
Tamanho do compartimento int, long, real, datetime ou timespan ✔️ Escalar com o tamanho dos compartimentos a serem aplicados sobre o IndexColumn.
BinsPerWindow int ✔️ O número de compartimentos incluídos em cada janela.
dim1, dim2, ... string Uma lista das colunas de dimensões a serem divididas.

Devoluções

Retorna uma tabela com uma linha por cada compartimento (e combinação de dimensões, se especificada) que tem o percentil contínuo de valores na janela que termina no compartimento (inclusive). O esquema da tabela de saída é:

Coluna de índice dim1 ... dim_n rolling_BinsPerWindow_percentile_ValueColumn_Pct

Exemplos

Valor médio contínuo de 3 dias por dia

A próxima consulta calcula um valor mediano de 3 dias na granularidade diária. Cada linha na saída representa o valor mediano para os últimos 3 compartimentos (dias), incluindo o próprio compartimento.

let T = 
    range idx from 0 to 24 * 10 - 1 step 1
    | project Timestamp = datetime(2018-01-01) + 1h * idx, val=idx + 1
    | extend EvenOrOdd = iff(val % 2 == 0, "Even", "Odd");
T  
| evaluate rolling_percentile(val, 50, Timestamp, 1d, 3)

Saída

Timestamp rolling_3_percentile_val_50
2018-01-01 00:00:00.0000000 12
2018-01-02 00:00:00.0000000 24
2018-01-03 00:00:00.0000000 36
2018-01-04 00:00:00.0000000 60
2018-01-05 00:00:00.0000000 84
2018-01-06 00:00:00.0000000 108
2018-01-07 00:00:00.0000000 132
2018-01-08 00:00:00.0000000 156
2018-01-09 00:00:00.0000000 180
2018-01-10 00:00:00.0000000 204

Valor mediano contínuo de 3 dias por dia por dimensão

Mesmo exemplo acima, mas agora também calcula a janela de rolagem particionada para cada valor da dimensão.

let T = 
    range idx from 0 to 24 * 10 - 1 step 1
    | project Timestamp = datetime(2018-01-01) + 1h * idx, val=idx + 1
    | extend EvenOrOdd = iff(val % 2 == 0, "Even", "Odd");
T  
| evaluate rolling_percentile(val, 50, Timestamp, 1d, 3, EvenOrOdd)

Saída

Timestamp Par ou Ímpar rolling_3_percentile_val_50
2018-01-01 00:00:00.0000000 Even 12
2018-01-02 00:00:00.0000000 Even 24
2018-01-03 00:00:00.0000000 Even 36
2018-01-04 00:00:00.0000000 Even 60
2018-01-05 00:00:00.0000000 Even 84
2018-01-06 00:00:00.0000000 Even 108
2018-01-07 00:00:00.0000000 Even 132
2018-01-08 00:00:00.0000000 Even 156
2018-01-09 00:00:00.0000000 Even 180
2018-01-10 00:00:00.0000000 Even 204
2018-01-01 00:00:00.0000000 Ímpar 11
2018-01-02 00:00:00.0000000 Ímpar 23
2018-01-03 00:00:00.0000000 Ímpar 35
2018-01-04 00:00:00.0000000 Ímpar 59
2018-01-05 00:00:00.0000000 Ímpar 83
2018-01-06 00:00:00.0000000 Ímpar 107
2018-01-07 00:00:00.0000000 Ímpar 131
2018-01-08 00:00:00.0000000 Ímpar 155
2018-01-09 00:00:00.0000000 Ímpar 179
2018-01-10 00:00:00.0000000 Ímpar 203