Skip to main content

timeSeriesBottomKMasks

Добавлена в: v26.8.0 Выбирает временные серии с k наименьшими значениями на каждом шаге временной сетки. Каждая входная строка представляет одну временную серию: key идентифицирует серию, а values содержит её значения, выровненные по общей временной сетке, поэтому массивы values во всех строках должны быть одинакового размера. На каждом шаге выбираются серии с k наименьшими значениями, отличными от NULL (NaN считается больше любого другого значения). При равенстве значений предпочтение отдаётся серии с меньшим key. Эта функция реализует оператор агрегации bottomk() языка PromQL и хранит лишь одну ограниченную кучу размера k на каждый шаг по времени, поэтому размер её состояния не зависит от количества агрегируемых серий.
Эта функция доступна в закрытой предварительной версии. Чтобы включить её, установите enable_time_series_aggregate_functions = 1.
Синтаксис
Аргументы
  • k — Количество серий, выбираемых на каждом временном шаге: либо одно значение для всех временных шагов, либо массив с отдельным значением для каждого шага. Должно быть одинаковым для всех строк. UInt* или Array(UInt*)
  • key — Идентификатор временной серии. UInt64
  • values — Значения временной серии, выровненные по временной сетке, по одному элементу на каждый временной шаг. Array(Nullable(Float32)) или Array(Nullable(Float64)) или Array(Float32) или Array(Float64)
Возвращаемое значение Возвращает выбранные серии, упорядоченные по возрастанию key, каждую вместе с её маской шагов: steps_mask[t] = 1, если серия выбрана на временном шаге t. Серии, не выбранные ни на одном временном шаге, не возвращаются. Array(Tuple(key UInt64, steps_mask Array(UInt8))) Примеры Выбор 2 наименьших серий на каждом временном шаге
Query
Response
Последнее изменение 14 октября 2026 г.