Saltar al contenido principal

timeSeriesResetsToGrid

Introducido en: v25.6.0 Función de agregación que toma series temporales como pares de marcas de tiempo y valores, y calcula reinicios similares a PromQL a partir de estos datos sobre una cuadrícula temporal regular definida por la marca de tiempo de inicio, la marca de tiempo de fin y el paso. Para cada punto de la cuadrícula, las muestras para calcular resets se toman dentro de la ventana temporal especificada.
Esta función es experimental; actívala estableciendo allow_experimental_ts_to_grid_aggregate_function=true.
Sintaxis
timeSeriesResetsToGrid(start_timestamp, end_timestamp, grid_step, staleness)(timestamp, value)
Parámetros
  • start_timestamp — Especifica el inicio de la cuadrícula. - end_timestamp — Especifica el final de la cuadrícula. - grid_step — Especifica el paso de la cuadrícula en segundos. - staleness — Especifica la “antigüedad” máxima, en segundos, de las muestras consideradas.
Argumentos
  • timestamp — Marca temporal de la muestra. Puede ser un valor individual o un array. - value — Valor de la serie temporal correspondiente a la marca temporal. Puede ser un valor individual o un array.
Valor devuelto Valores de resets en la cuadrícula especificada como un Array(Nullable(Float64)). El array devuelto contiene un valor para cada punto de la cuadrícula temporal. El valor es NULL si no hay muestras dentro del intervalo para calcular el valor de resets de un punto concreto de la cuadrícula. Ejemplos Calcular valores de resets en la cuadrícula [90, 105, 120, 135, 150, 165, 180, 195, 210, 225]
Query
WITH
    -- NOTA: el intervalo entre 130 y 190 muestra cómo se rellenan los valores para ts = 180 según el parámetro window
    [110, 120, 130, 190, 200, 210, 220, 230]::Array(DateTime) AS timestamps,
    [1, 3, 2, 6, 6, 4, 2, 0]::Array(Float32) AS values, -- array de valores correspondientes a los timestamps anteriores
    90 AS start_ts,       -- inicio de la cuadrícula de timestamps
    90 + 135 AS end_ts,   -- fin de la cuadrícula de timestamps
    15 AS step_seconds,   -- paso de la cuadrícula de timestamps
    45 AS window_seconds  -- ventana de "staleness"
SELECT timeSeriesResetsToGrid(start_ts, end_ts, step_seconds, window_seconds)(timestamp, value)
FROM
(
    -- Esta subconsulta convierte arrays de timestamps y valores en filas de `timestamp`, `value`
    SELECT
        arrayJoin(arrayZip(timestamps, values)) AS ts_and_val,
        ts_and_val.1 AS timestamp,
        ts_and_val.2 AS value
);
Response
┌─timeSeriesResetsToGrid(start_ts, end_ts, step_seconds, window_seconds)(timestamp, value)─┐
│ [NULL,NULL,0,1,1,1,NULL,0,1,2]                                                           │
└──────────────────────────────────────────────────────────────────────────────────────────┘
La misma consulta con argumentos de tipo Array
Query
WITH
    [110, 120, 130, 190, 200, 210, 220, 230]::Array(DateTime) AS timestamps,
    [1, 3, 2, 6, 6, 4, 2, 0]::Array(Float32) AS values,
    90 AS start_ts,
    90 + 135 AS end_ts,
    15 AS step_seconds,
    45 AS window_seconds
SELECT timeSeriesResetsToGrid(start_ts, end_ts, step_seconds, window_seconds)(timestamps, values);
Response
┌─timeSeriesResetsToGrid(start_ts, end_ts, step_seconds, window_seconds)(timestamp, value)─┐
│ [NULL,NULL,0,1,1,0,NULL,0,1,2]                                                           │
└──────────────────────────────────────────────────────────────────────────────────────────┘
Última modificación el 10 de junio de 2026