Skip to main content

timeSeriesTopKMasks

Добавлена в: v26.8.0 Выбирает временные серии с k наибольшими значениями на каждом шаге временной сетки. Каждая входная строка соответствует одной временной серии: key идентифицирует серию, а values содержит её значения, выровненные по общей временной сетке, поэтому массивы values во всех строках должны иметь одинаковый размер. На каждом шаге выбираются серии с k наибольшими значениями, отличными от NULL (NaN считается меньше любого другого значения). При равенстве значений предпочтение отдаётся серии с меньшим key. Эта функция реализует оператор агрегации topk() языка 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 г.