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— Идентификатор временной серии.UInt64values— Значения временной серии, выровненные по временной сетке, — по одному элементу на каждый временной шаг.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