Skip to main content

timeSeriesLimitKMasks

Introduzido em: v26.8.0 Seleciona até k séries temporais em cada passo de uma grade temporal, de forma pseudoaleatória e determinística. Cada linha de entrada corresponde a uma série temporal: key identifica a série, sampling_key é um hash por série usado como ordem de seleção e values contém os valores da série alinhados a uma grade temporal comum (portanto, os arrays values de todas as linhas devem ter o mesmo tamanho). Em cada passo de tempo, são selecionadas as séries com as k menores chaves de amostragem dentre aquelas com valores não NULL naquele passo. Empates entre chaves de amostragem são resolvidos dando preferência à série com o menor key. Esta função implementa o operador de agregação limitk() do PromQL e mantém apenas um heap limitado de tamanho k por passo de tempo, de modo que o tamanho do seu estado não depende do número de séries agregadas.
Esta função está em prévia privada; para habilitá-la, defina enable_time_series_aggregate_functions = 1.
Sintaxe
Argumentos
  • k — Quantas séries selecionar em cada passo de tempo: um único valor para todos os passos de tempo ou um array com um valor por passo de tempo. Deve ser o mesmo para todas as linhas. UInt* ou Array(UInt*)
  • key — Identificador da série temporal. UInt64
  • sampling_key — Um hash por série que define a ordem de seleção, por exemplo, timeSeriesGroupToSamplingKey(key). UInt64
  • values — Valores da série temporal alinhados à grade temporal, um elemento por passo de tempo. Array(Nullable(Float32)) ou Array(Nullable(Float64)) ou Array(Float32) ou Array(Float64)
Valor retornado Retorna as séries selecionadas em ordem crescente de key, cada uma acompanhada de sua máscara por passo: steps_mask[t] = 1 se a série for selecionada no passo de tempo t. Séries que não forem selecionadas em nenhum passo de tempo não são retornadas. Array(Tuple(key UInt64, steps_mask Array(UInt8))) Exemplos Seleção de 2 séries por passo de tempo com base nas menores chaves de amostragem
Query
Response
Última modificação em 14 de outubro de 2026