quantilesPrometheusHistogram
Introduzido em: v25.10.0
Calcula vários quantis de um histograma usando interpolação linear em diferentes níveis ao mesmo tempo, levando em consideração o valor cumulativo e os limites superiores de cada bucket do histograma.
Esta função é equivalente a quantilePrometheusHistogram, mas permite calcular vários níveis de quantil em uma única passagem, o que é mais eficiente do que chamar funções de quantil individualmente.
Sintaxe
quantilesPrometheusHistogram(level1, level2, ...)(bucket_upper_bound, cumulative_bucket_value)Parâmetros
level— Níveis dos quantis. Um ou mais números de ponto flutuante constantes de 0 a 1. Recomendamos usar valores delevelno intervalo[0.01, 0.99].Float64
Argumentos
bucket_upper_bound— Limites superiores dos buckets do histograma. O bucket mais alto deve ter um limite superior de+Inf.Float*cumulative_bucket_value— Valores cumulativos dos buckets do histograma. Os valores devem aumentar monotonicamente à medida que o limite superior do bucket aumenta.UInt*ouFloat*
Valor retornado
Array de quantis dos níveis especificados, na mesma ordem em que os níveis foram especificados. O tipo de ponto flutuante do resultado corresponde ao tipo de bucket_upper_bound. Array(Float32) ou Array(Float64)
Exemplos
Exemplo de uso
SELECT quantilesPrometheusHistogram(0.25, 0.5, 0.75)(bucket_upper_bound, cumulative_bucket_value)
FROM VALUES('bucket_upper_bound Float64, cumulative_bucket_value UInt64', (0, 6), (0.5, 11), (1, 14), (inf, 19));┌─quantilesPrometheusHistogram(0.25, 0.5, 0.75)(bucket_upper_bound, cumulative_bucket_value)─┐
│ [0,0.35,1] │
└────────────────────────────────────────────────────────────────────────────────────────────┘