quantilesPrometheusHistogram
Introduite dans : v25.10.0
Calcule simultanément plusieurs quantiles d’un histogramme par interpolation linéaire à différents niveaux, en tenant compte de la valeur cumulée et des limites supérieures de chaque bucket de l’histogramme.
Cette fonction est équivalente à quantilePrometheusHistogram, mais elle permet de calculer plusieurs niveaux de quantile en un seul passage, ce qui est plus efficace que d’appeler des fonctions de quantile séparées.
Syntaxe
quantilesPrometheusHistogram(level1, level2, ...)(bucket_upper_bound, cumulative_bucket_value)Paramètres
level— Niveaux des quantiles. Un ou plusieurs nombres constants à virgule flottante de 0 à 1. Nous recommandons d'utiliser des valeurs deleveldans la plage[0.01, 0.99].Float64
Arguments
bucket_upper_bound— Limites supérieures des buckets de l'histogramme. Le bucket le plus élevé doit avoir une limite supérieure de+Inf.Float*cumulative_bucket_value— Valeurs cumulées des buckets de l'histogramme. Les valeurs doivent être croissantes de façon monotone à mesure que la limite supérieure du bucket augmente.UInt*ouFloat*
Valeur retournée
Array de quantiles pour les niveaux spécifiés, dans le même ordre que celui des niveaux indiqués. Le type à virgule flottante du résultat correspond à celui de bucket_upper_bound. Array(Float32) ou Array(Float64)
Exemples
Exemple d'utilisation
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] │
└────────────────────────────────────────────────────────────────────────────────────────────┘