Saltar al contenido principal
Las funciones siguientes están diseñadas para usarse con funciones de agregación timeSeries*(), como timeSeriesInstantRateToGrid, timeSeriesLastToGrid, entre otras.

seriesDecomposeSTL

Introducido en: v24.1.0 Descompone una serie temporal mediante STL (procedimiento de descomposición estacional-tendencia basado en Loess) en un componente estacional, una tendencia y un componente residual. Sintaxis
seriesDecomposeSTL(series, period)
Argumentos Valor devuelto Devuelve un array de cuatro arrays, donde el primero incluye los componentes estacionales, el segundo la tendencia, el tercero el componente residual y el cuarto el componente base (estacional + tendencia). Array(Array(Float32), Array(Float32), Array(Float32), Array(Float32)) Ejemplos Descomposición de datos de series temporales con STL
Query
SELECT seriesDecomposeSTL([10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34], 3) AS print_0
Response
┌───────────print_0──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [[
        -13.529999, -3.1799996, 16.71,      -13.53,     -3.1799996, 16.71,      -13.53,     -3.1799996,
        16.71,      -13.530001, -3.18,      16.710001,  -13.530001, -3.1800003, 16.710001,  -13.530001,
        -3.1800003, 16.710001,  -13.530001, -3.1799994, 16.71,      -13.529999, -3.1799994, 16.709997
    ],
    [
        23.63,     23.63,     23.630003, 23.630001, 23.630001, 23.630001, 23.630001, 23.630001,
        23.630001, 23.630001, 23.630001, 23.63,     23.630001, 23.630001, 23.63,     23.630001,
        23.630001, 23.63,     23.630001, 23.630001, 23.630001, 23.630001, 23.630001, 23.630003
    ],
    [
        0, 0.0000019073486, -0.0000019073486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0000019073486, 0,
        0
    ],
    [
        10.1, 20.449999, 40.340004, 10.100001, 20.45, 40.34, 10.100001, 20.45, 40.34, 10.1, 20.45, 40.34,
        10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.100002, 20.45, 40.34
    ]]                                                                                                                   │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

seriesOutliersDetectTukey

Introducido en: v24.2.0 Detecta valores atípicos en datos de series mediante Tukey Fences. Sintaxis
seriesOutliersDetectTukey(series[, min_percentile, max_percentile, K])
Argumentos
  • series — Un array de valores numéricos. Array((UInt8/16/32/64)) o Array(Float*)
  • min_percentile — Opcional. El percentil mínimo que se usará para calcular el rango intercuartílico (IQR). El valor debe estar en el intervalo [0.02,0.98]. El valor predeterminado es 0.25. Float*
  • max_percentile — Opcional. El percentil máximo que se usará para calcular el rango intercuartílico (IQR). El valor debe estar en el intervalo [0.02,0.98]. El valor predeterminado es 0.75. Float*
  • K — Opcional. Valor constante no negativo para detectar valores atípicos leves o más extremos. El valor predeterminado es 1.5. Float*
Valor devuelto Devuelve un array de la misma longitud que el array de entrada, donde cada valor representa la puntuación de posible anomalía del elemento correspondiente de la serie. Una puntuación distinta de cero indica una posible anomalía. Array(Float32) Ejemplos Detección básica de valores atípicos
Query
SELECT seriesOutliersDetectTukey([-3, 2, 15, 3, 5, 6, 4, 5, 12, 45, 12, 3, 3, 4, 5, 6]) AS print_0
Response
┌───────────print_0─────────────────┐
│[0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0] │
└───────────────────────────────────┘
Detección de anomalías con parámetros personalizados
Query
SELECT seriesOutliersDetectTukey([-3, 2, 15, 3, 5, 6, 4.50, 5, 12, 45, 12, 3.40, 3, 4, 5, 6], 0.2, 0.8, 1.5) AS print_0
Response
┌─print_0──────────────────────────────┐
│ [0,0,0,0,0,0,0,0,0,19.5,0,0,0,0,0,0] │
└──────────────────────────────────────┘

seriesPeriodDetectFFT

Introducido en: v23.12.0 Encuentra el período de los datos de la serie dada mediante FFT: transformada rápida de Fourier Sintaxis
seriesPeriodDetectFFT(series)
Argumentos Valor devuelto Devuelve un valor real igual al período de los datos de series. NaN cuando el número de puntos de datos es menor que cuatro. Float64 Ejemplos Detección de períodos con un patrón simple
Query
SELECT seriesPeriodDetectFFT([1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6]) AS print_0
Response
┌───────────print_0──────┐
│                      3 │
└────────────────────────┘
Detección de período con un patrón complejo
Query
SELECT seriesPeriodDetectFFT(arrayMap(x -> abs((x % 6) - 3), range(1000))) AS print_0
Response
┌─print_0─┐
│       6 │
└─────────┘

timeSeriesCopyTag

Introducido en: v26.1.0 Copia una etiqueta especificada de un grupo de etiquetas (src_group) a otro (dest_group). La función reemplaza cualquier valor anterior de la etiqueta copiada en dest_group. Si la etiqueta copiada no está presente en src_group, la función también la eliminará de dest_group. La función reproduce la lógica de copia de los modificadores de prometheus group left/group right. Sintaxis
timeSeriesCopyTag(dest_group, src_group, tag_to_copy)
Argumentos
  • dest_group — El grupo de etiquetas de destino. UInt64
  • src_group — El grupo de etiquetas de origen. UInt64
  • tag_to_copy — El nombre de una etiqueta que se copiará. String
Valor devuelto Devuelve un grupo de etiquetas que contiene las etiquetas de dest_group, junto con las etiquetas copiadas de src_group. UInt64 Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS dest_group,
       timeSeriesTagsToGroup([('code', '404'), ('message', 'Page not found')], '__name__', 'http_codes') AS src_group,
       timeSeriesCopyTag(dest_group, src_group, '__name__') AS result_group,
       timeSeriesGroupToTags(result_group)
Response
┌─dest_group─┬─src_group─┬─result_group─┬─timeSeriesGroupToTags(result_group)────────────────────────┐
│          1 │         2 │            3 │ [('__name__','http_codes'),('code','404'),('region','eu')] │
└────────────┴───────────┴──────────────┴────────────────────────────────────────────────────────────┘

timeSeriesCopyTags

Introducido en: v26.1.0 Copia las etiquetas especificadas de un grupo de etiquetas (src_group) a otro (dest_group). La función reemplaza cualquier valor anterior de las etiquetas copiadas en dest_group. Si alguna de las etiquetas copiadas no está presente en src_group, la función también la eliminará de dest_group. La función imita la lógica de copia de los modificadores de Prometheus group left/group right. Sintaxis
timeSeriesCopyTags(dest_group, src_group, tags_to_copy)
Argumentos
  • dest_group — El grupo de etiquetas de destino. UInt64
  • src_group — El grupo de etiquetas de origen. UInt64
  • tags_to_copy — Los nombres de las etiquetas que se copiarán. Array(String)
Valor devuelto Devuelve un grupo de etiquetas que contiene las etiquetas de dest_group, junto con las etiquetas copiadas de src_group. UInt64 Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS dest_group,
       timeSeriesTagsToGroup([('code', '404'), ('message', 'Page not found')], '__name__', 'http_codes') AS src_group,
       timeSeriesCopyTags(dest_group, src_group, ['__name__', 'code', 'env']) AS result_group,
       timeSeriesGroupToTags(result_group)
Response
┌─dest_group─┬─src_group─┬─result_group─┬─timeSeriesGroupToTags(result_group)────────────────────────┐
│          1 │         2 │            3 │ [('__name__','http_codes'),('code','404'),('region','eu')] │
└────────────┴───────────┴──────────────┴────────────────────────────────────────────────────────────┘

timeSeriesExtractTag

Introducido en: v26.1.0 Extrae el valor de una etiqueta especificada del grupo. Devuelve NULL si no se encuentra. Véase también la función timeSeriesGroupToTags(). Sintaxis
timeSeriesExtractTag(group)
Argumentos
  • group — Un grupo de etiquetas. UInt64
  • tag_to_extract — El nombre de una etiqueta que se extraerá del grupo String
Valor devuelto Devuelve el valor de una etiqueta especificada. Nullable(String) Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group,
       timeSeriesExtractTag(group, '__name__'),
       timeSeriesExtractTag(group, 'env'),
       timeSeriesExtractTag(group, 'instance')
Response
┌─group─┬─timeSeriesExtractTag(group, '__name__')─┬─timeSeriesExtractTag(group, 'env')─┬─timeSeriesExtractTag(group, 'instance')─┐
│     1 │ http_requests_count                     │ dev                                │ ᴺᵁᴸᴸ                                    │
└───────┴─────────────────────────────────────────┴────────────────────────────────────┴─────────────────────────────────────────┘

timeSeriesFromGrid

Introducido en: v25.8.0 Convierte un Array de valores [x1, x2, x3, ...] en un Array de Tuplas [(start_timestamp, x1), (start_timestamp + step, x2), (start_timestamp + 2 * step, x3), ...]. El timestamp actual se incrementa en step hasta que es mayor que end_timestamp Si la cantidad de valores no coincide con la cantidad de timestamps, la función lanza una excepción. Los valores NULL en [x1, x2, x3, ...] se omiten, pero el timestamp actual se sigue incrementando. Por ejemplo, para [value1, NULL, x2] la función devuelve [(start_timestamp, x1), (start_timestamp + 2 * step, x2)]. Sintaxis
timeSeriesFromGrid(start_timestamp, end_timestamp, step, values)
Argumentos Valor devuelto Devuelve los valores del array de origen combinados con marcas de tiempo en una rejilla temporal regular descrita por start_timestamp y step. Array(Tuple(DateTime64, Float64)) Ejemplos Ejemplo de uso
Query
SELECT timeSeriesFromGrid('2025-06-01 00:00:00'::DateTime64(3), '2025-06-01 00:01:30.000'::DateTime64(3), 30, [10, 20, NULL, 30]) AS result;
Response
┌─────────────────────────────────────────────result─────────────────────────────────────────────┐
│ [('2025-06-01 00:00:00.000',10),('2025-06-01 00:00:30.000',20),('2025-06-01 00:01:30.000',30)] │
└────────────────────────────────────────────────────────────────────────────────────────────────┘

timeSeriesGroupToSamplingKey

Introducido en: v26.4.0 Devuelve una clave de muestreo UInt64 estable derivada de las etiquetas del grupo especificado. El valor es determinista: si las etiquetas de entrada son idénticas, siempre producen la misma clave. Está pensada como clave de ordenación para operadores de muestreo como limitk y limit_ratio. Sintaxis
timeSeriesGroupToSamplingKey(group)
Argumentos
  • group — Un grupo de etiquetas. UInt64
Valor devuelto Un hash UInt64 estable derivado de las etiquetas asociadas al grupo. UInt64 Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group,
       timeSeriesGroupToSamplingKey(group) AS sampling_key
Response
┌─group─┬─────────sampling_key─┐
│     1 │ 12876543210987654321 │
└───────┴──────────────────────┘

timeSeriesGroupToTags

Introducida en: v26.1.0 Devuelve los nombres y valores de las etiquetas asociadas a un grupo especificado. Véase también la función timeSeriesTagsToGroup(). Sintaxis
timeSeriesGroupToTags(group)
Alias: timeSeriesTagsGroupToTags Argumentos
  • group — Un grupo de etiquetas. UInt64
Valor devuelto Devuelve un array de pares (tag_name, tag_value). El array devuelto siempre está ordenado por tag_name y nunca contiene el mismo tag_name más de una vez. Array(Tuple(String, String)) Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group,
       timeSeriesGroupToTags(group) AS sorted_tags,
       timeSeriesTagsToGroup(sorted_tags) AS same_group,
       throwIf(same_group != group)
Response
┌─group─┬─sorted_tags────────────────────────────────────────────────────────┬─same_group─┬─throwIf(notE⋯up, group))─┐
│     1 │ [('__name__','http_requests_count'),('env','dev'),('region','eu')] │          1 │                        0 │
└───────┴────────────────────────────────────────────────────────────────────┴────────────┴──────────────────────────┘

timeSeriesIdToGroup

Introducido en: v26.1.0 Devuelve los nombres y valores de las etiquetas asociadas a un identificador de serie temporal especificado. Véase también la función timeSeriesStoreTags(). Sintaxis
timeSeriesIdToGroup(id)
Alias: timeSeriesIdToTagsGroup Argumentos Valor devuelto Devuelve un grupo de etiquetas asociado al identificador id de una serie temporal. UInt64 Ejemplos Ejemplo
Query
SELECT 8374283493092 AS id,
       timeSeriesStoreTags(id, [('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS same_id,
       throwIf(same_id != id),
       timeSeriesIdToGroup(same_id) AS group,
       timeSeriesGroupToTags(group)
Response
┌────────────id─┬───────same_id─┬─throwIf(notE⋯me_id, id))─┬─group─┬─timeSeriesGroupToTags(group)───────────────────────────────────────┐
│ 8374283493092 │ 8374283493092 │                        0 │     1 │ [('__name__','http_requests_count'),('env','dev'),('region','eu')] │
└───────────────┴───────────────┴──────────────────────────┴───────┴────────────────────────────────────────────────────────────────────┘

timeSeriesIdToTags

Introducido en: v25.8.0 Devuelve las etiquetas asociadas al identificador especificado de una serie temporal. Véase también la función timeSeriesStoreTags(). Sintaxis
timeSeriesIdToTags(id)
Argumentos Valor devuelto Devuelve un array de pares (tag_name, tag_value). El array devuelto siempre está ordenado por tag_name y nunca contiene el mismo tag_name más de una vez. Array(Tuple(String, String)) Ejemplos Ejemplo
Query
SELECT 8374283493092 AS id,
       timeSeriesStoreTags(id, [('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS same_id,
       throwIf(same_id != id),
       timeSeriesIdToTags(same_id)
Response
┌────────────id─┬───────same_id─┬─throwIf(notE⋯me_id, id))─┬─timeSeriesIdToTags(same_id)────────────────────────────────────────┐
│ 8374283493092 │ 8374283493092 │                        0 │ [('__name__','http_requests_count'),('env','dev'),('region','eu')] │
└───────────────┴───────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────┘

timeSeriesJoinTags

Introducido en: v26.1.0 Une los valores de las etiquetas especificadas extraídos de un grupo de etiquetas. La función inserta un separador entre los valores unidos y devuelve un nuevo grupo de etiquetas con la etiqueta dest_tag establecida con el valor unido. Esta función imita la lógica de la función de Prometheus label_join(). Sintaxis
timeSeriesJoinTags(group, dest_tag, separator, src_tags)
Argumentos
  • group — Un grupo de etiquetas. UInt64
  • dest_tag — El nombre de una etiqueta con el resultado combinado que se añadirá al group. String
  • separator — Un separador para insertar entre los valores combinados. String
  • src_tags — Los nombres de las etiquetas de origen cuyos valores se combinarán. Array(String)
Valor devuelto Devuelve un nuevo grupo de etiquetas con la etiqueta dest_tag establecida con el resultado combinado. UInt64 Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('__name__', 'up'), ('job', 'api-server'), ('src1', 'a'), ('src2', 'b'), ('src3', 'c')]) AS group,
       timeSeriesJoinTags(group, 'foo', ',', ['src1', 'src2', 'src3']) AS result_group,
       timeSeriesGroupToTags(result_group)
Response
┌─group─┬─result_group─┬─timeSeriesGroupToTags(result_group)─────────────────────────────────────────────────────────────┐
│     1 │            2 │ [('__name__','up'),('foo','a,b,c'),('job','api-server'),('src1','a'),('src2','b'),('src3','c')] │
└───────┴──────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────┘

timeSeriesRange

Introducido en: v25.8.0 Genera un rango de marcas de tiempo [start_timestamp, start_timestamp + step, start_timestamp + 2 * step, …, end_timestamp]. Si start_timestamp es igual a end_timestamp, la función devuelve un array de un solo elemento que contiene [start_timestamp]. La función timeSeriesRange() es similar a la función range. Sintaxis
timeSeriesRange(start_timestamp, end_timestamp, step)
Argumentos Valor devuelto Devuelve un rango de marcas de tiempo. Array(DateTime64) Ejemplos Ejemplo de uso
Query
SELECT timeSeriesRange('2025-06-01 00:00:00'::DateTime64(3), '2025-06-01 00:01:00'::DateTime64(3), 30)
Response
┌────────────────────────────────────result─────────────────────────────────────────┐
│ ['2025-06-01 00:00:00.000', '2025-06-01 00:00:30.000', '2025-06-01 00:01:00.000'] │
└───────────────────────────────────────────────────────────────────────────────────┘

timeSeriesRemoveAllTagsExcept

Introducido en: v26.1.0 Elimina todas las etiquetas de un grupo, excepto las especificadas. Véase también la función timeSeriesRemoveTag(), timeSeriesRemoveTags(). Sintaxis
timeSeriesRemoveAllTagsExcept(group, tags_to_keep)
Argumentos
  • group — Un grupo de etiquetas. UInt64
  • tags_to_keep — Los nombres de las etiquetas que se conservarán en el grupo. Array(String)
Valor devuelto Un nuevo grupo de etiquetas en el que solo se conservan las etiquetas especificadas. UInt64 Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group,
       timeSeriesRemoveAllTagsExcept(group, ['env']) AS result_group,
       timeSeriesGroupToTags(result_group)
Response
┌─group─┬─result_group─┬─timeSeriesGroupToTags(result_group)─┐
│     1 │            2 │ [('env','dev')]                     │
└───────┴──────────────┴─────────────────────────────────────┘

timeSeriesRemoveTag

Introducido en: v26.1.0 Elimina una etiqueta especificada de un grupo de etiquetas. Si esa etiqueta no existe en el grupo, el grupo se devuelve sin cambios. Véase también la función timeSeriesRemoveTags(), timeSeriesRemoveAllTagsExcept(). Sintaxis
timeSeriesRemoveTag(group, tag_to_remove)
Argumentos
  • group — Un grupo de etiquetas. UInt64
  • tag_to_remove — El nombre de la etiqueta que se debe eliminar del grupo. String
Valor devuelto Un nuevo grupo de etiquetas sin la etiqueta especificada. UInt64 Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group_of_3,
       timeSeriesRemoveTag(group_of_3, '__name__') AS group_of_2,
       timeSeriesGroupToTags(group_of_2),
       timeSeriesRemoveTag(group_of_2, 'env') AS group_of_1,
       timeSeriesGroupToTags(group_of_1),
       timeSeriesRemoveTag(group_of_1, 'region') AS empty_group,
       timeSeriesGroupToTags(empty_group)
Response
┌─group_of_3─┬─group_of_2─┬─timeSeriesGroupToTags(group_of_2)─┬─group_of_1─┬─timeSeriesGroupToTags(group_of_1)─┬─empty_group─┬─timeSeriesGroupToTags(empty_group)─┐
│          1 │          2 │ [('env','dev'),('region','eu')]   │          3 │ [('region','eu')]                 │           0 │ []                                 │
└────────────┴────────────┴───────────────────────────────────┴────────────┴───────────────────────────────────┴─────────────┴────────────────────────────────────┘

timeSeriesRemoveTags

Introducido en: v26.1.0 Elimina las etiquetas especificadas de un grupo de etiquetas. Si algunas de las etiquetas especificadas no están en el grupo de etiquetas, la función las ignora. Véase también la función timeSeriesRemoveTag(), timeSeriesRemoveAllTagsExcept(). Sintaxis
timeSeriesRemoveTags(group, tags_to_remove)
Argumentos
  • group — Un grupo de etiquetas. UInt64
  • tags_to_remove — Los nombres de las etiquetas que se deben eliminar del grupo. Array(String)
Valor devuelto Un nuevo grupo de etiquetas sin las etiquetas especificadas. UInt64 Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group_of_3,
       timeSeriesRemoveTags(group_of_3, ['env', 'region']) AS group_of_1,
       timeSeriesGroupToTags(group_of_1),
       timeSeriesRemoveTags(group_of_1, ['__name__', 'nonexistent']) AS empty_group,
       timeSeriesGroupToTags(empty_group)
Response
┌─group_of_3─┬─group_of_1─┬─timeSeriesGroupToTags(group_of_1)────┬─empty_group─┬─timeSeriesGroupToTags(empty_group)─┐
│          1 │          2 │ [('__name__','http_requests_count')] │           0 │ []                                 │
└────────────┴────────────┴──────────────────────────────────────┴─────────────┴────────────────────────────────────┘

timeSeriesReplaceTag

Introducido en: v26.1.0 Aplica la expresión regular regex al valor de la etiqueta src_tag. Si hay coincidencia, el valor de la etiqueta dest_tag en el grupo devuelto será la expansión de replacement, junto con las etiquetas originales de la entrada. Esta función imita la lógica de la función de Prometheus label_replace(). Sintaxis
timeSeriesReplaceTag(group, dest_tag, replacement, src_tag, regex)
Argumentos
  • group — Un grupo de etiquetas. UInt64
  • dest_tag — El nombre de una etiqueta de destino para obtener el grupo resultante. String
  • replacement — Un patrón de reemplazo que puede contener 1,1, 2 o $name para hacer referencia a grupos de captura en la expresión regular ‘regex’. String
  • src_tag — El nombre de una etiqueta cuyo valor se usa para hacer coincidir la expresión regular ‘regex’. String
  • regex — Una expresión regular. String
Valor devuelto Un nuevo grupo de etiquetas al que puede haberse añadido dest_tag. UInt64 Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('__name__', 'up'), ('job', 'api-server'), ('service', 'a:c')]) AS group,
       timeSeriesReplaceTag(group, 'foo', '$1', 'service', '(.*):.*') AS result_group,
       timeSeriesGroupToTags(result_group)
Response
┌─group─┬─result_group─┬─timeSeriesGroupToTags(result_group)────────────────────────────────────┐
│     1 │            2 │ [('__name__','up'),('foo','a'),('job','api-server'),('service','a:c')] │
└───────┴──────────────┴────────────────────────────────────────────────────────────────────────┘

timeSeriesStoreTags

Introducido en: v25.8.0 Almacena en el contexto de la consulta una correspondencia entre un identificador especificado de una serie temporal y un conjunto de etiquetas. Las funciones timeSeriesIdToTags() y timeSeriesIdToGroup() se pueden usar para acceder a esta correspondencia más adelante durante la ejecución de la consulta. Sintaxis
timeSeriesStoreTags(id, tags_array, separate_tag_name_1, separate_tag_value_1, ...)
Argumentos Valor devuelto Devuelve el identificador de una serie temporal (es decir, solo el primer argumento). Ejemplos Ejemplo
Query
SELECT 8374283493092 AS id,
       timeSeriesStoreTags(id, [('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS same_id,
       throwIf(same_id != id),
       timeSeriesIdToTags(same_id),
       timeSeriesGroupToTags(timeSeriesIdToGroup(same_id))
Response
┌────────────id─┬───────same_id─┬─throwIf(notEquals(same_id, id))─┬─timeSeriesIdToTags(same_id)────────────────────────────────────────┬─timeSeriesGroupToTags(timeSeriesIdToGroup(same_id))────────────────┐
│ 8374283493092 │ 8374283493092 │                               0 │ [('__name__','http_requests_count'),('env','dev'),('region','eu')] │ [('__name__','http_requests_count'),('env','dev'),('region','eu')] │
└───────────────┴───────────────┴─────────────────────────────────┴────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────┘

timeSeriesTagsToGroup

Introducido en: v26.1.0 Devuelve un grupo de etiquetas asociado a las etiquetas especificadas. Si se encuentra el mismo grupo de etiquetas varias veces durante la ejecución de la consulta, la función devuelve el mismo grupo. Para un conjunto vacío de etiquetas, la función siempre devuelve 0. Véase también la función timeSeriesGroupToTags(). Sintaxis
timeSeriesTagsToGroup(tags_array, tag_name_1, tag_value_1, tag_name2, tag_value2, ...)
Argumentos Valor devuelto Devuelve un grupo de etiquetas asociado a las etiquetas especificadas. UInt64 Ejemplos Ejemplo
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group1,
       timeSeriesTagsToGroup([], '__name__', 'http_failures') AS group2,
       timeSeriesTagsToGroup([]) AS empty_group,
       timeSeriesTagsToGroup([], '__name__', 'http_failures') AS same_group2,
       throwIf(same_group2 != group2),
       timeSeriesGroupToTags(group2)
Response
┌─group1─┬─group2─┬─empty_group─┬─same_group2─┬─throwIf(notEquals(same_group2, group2))─┬─timeSeriesGroupToTags(group2)──┐
│      1 │      2 │           0 │           2 │                                       0 │ [('__name__','http_failures')] │
└────────┴────────┴─────────────┴─────────────┴─────────────────────────────────────────┴────────────────────────────────┘

timeSeriesThrowDuplicateSeriesIf

Introducido en: v26.2.0 Comprueba la condition y, si es true, lanza una excepción con el siguiente mensaje: Multiple series have the same tags <tags>, duplicate series in the same result set are not allowed. Si la condition es false, la función devuelve 0. Esta función es similar a throwIf(), pero usa un código de error diferente y presenta el mensaje de error con un formato distinto. Sintaxis
timeSeriesThrowDuplicateSeriesIf(condition, group)
Argumentos
  • condition — Condición que se va a comprobar; normalmente contiene la función count() UInt8
  • group — Grupo de etiquetas. UInt64
Valor devuelto Devuelve 0. UInt8 Ejemplos Ejemplo
Query
CREATE TABLE test(tags Array(Tuple(String, String))) engine=Memory;

INSERT INTO test VALUES ([('__name__', 'up')]);

SELECT timeSeriesTagsToGroup(tags) AS group
FROM test
GROUP BY group
HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0;  -- OK

INSERT INTO test VALUES ([('__name__', 'up')]);

SELECT timeSeriesTagsToGroup(tags) AS group
FROM test
GROUP BY group
HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0;  -- Lanza la excepción "Multiple series have the same tags {'__name__': 'up'}"
Response
Última modificación el 10 de junio de 2026