quantilesTimingWeighted
quantilesTimingWeighted
Введено в: v1.1
Вычисляет несколько квантилей числовой последовательности данных на разных уровнях одновременно с заданной точностью, с учётом веса каждого элемента последовательности.
Эта функция эквивалентна quantileTimingWeighted, но позволяет вычислять несколько уровней квантилей за один проход, что эффективнее, чем отдельные вызовы функций квантилей.
Результат детерминирован (не зависит от порядка обработки запроса). Функция оптимизирована для работы с последовательностями, описывающими распределения, такие как время загрузки веб‑страниц или время отклика бэкенда.
Точность
Вычисление является точным, если:
- Общее количество значений не превышает 5670.
- Общее количество значений превышает 5670, но время загрузки страницы меньше 1024 мс.
В противном случае результат вычисления округляется до ближайшего значения, кратного 16 мс.
Для вычисления квантилей времени загрузки страниц эта функция более эффективна и точна, чем quantiles.
Синтаксис
Параметры
level— уровни квантилей. Одно или несколько константных чисел с плавающей запятой от 0 до 1. Рекомендуется использовать значенияlevelв диапазоне[0.01, 0.99].Float*
Аргументы
expr— выражение над значениями столбца, которое возвращает число типа Float*. Если функции передаются отрицательные значения, поведение не определено. Если значение больше 30 000 (время загрузки страницы более 30 секунд), оно принимается равным 30 000.Float*weight— столбец с весами элементов последовательности. Вес — это количество вхождений значения.UInt*
Возвращаемое значение
Массив квантилей указанных уровней в том же порядке, в котором были заданы уровни. Array(Float32)
Примеры
Вычисление нескольких взвешенных квантилей таймингов
См. также