timeSeriesBottomKMasks
Introducido en: v26.8.0 Selecciona las series temporales con los k valores más pequeños en cada paso de una cuadrícula temporal. Cada fila de entrada es una serie temporal:key identifica la serie y values contiene sus valores alineados con una cuadrícula
temporal común, por lo que los arrays values de todas las filas deben tener el mismo tamaño. En cada paso temporal, se seleccionan las series con los k valores
no NULL más pequeños en ese paso (NaN se considera mayor que cualquier otro valor). En caso de empate, se da preferencia
a la serie con el valor de key más pequeño.
Esta función implementa el operador de agregación bottomk() de PromQL y mantiene un único heap acotado de tamaño k por
paso temporal, de modo que el tamaño de su estado no depende del número de series agregadas.
Esta función está en vista previa privada; para habilitarla, establezca
enable_time_series_aggregate_functions = 1.k— Número de series que se seleccionan en cada paso de tiempo: un único valor para todos los pasos de tiempo o un array con un valor por paso de tiempo. Debe ser el mismo para todas las filas.UInt*oArray(UInt*)key— Identificador de la serie temporal.UInt64values— Valores de la serie temporal alineados con la cuadrícula temporal, con un elemento por paso de tiempo.Array(Nullable(Float32))oArray(Nullable(Float64))oArray(Float32)oArray(Float64)
key, cada una con su máscara por paso: steps_mask[t] = 1 si la serie se selecciona en el paso de tiempo t. No se devuelven las series que no se seleccionan en ningún paso de tiempo. Array(Tuple(key UInt64, steps_mask Array(UInt8)))
Ejemplos
Selección de las 2 series más pequeñas en cada paso de tiempo
Query
Response