Todos los productos
Search
Centro de documentos

Simple Log Service:Cláusula UNNEST

Última actualización: Sep 02, 2026

Los campos de registro pueden contener valores de tipo arreglo o mapa. Utilice la cláusula UNNEST para expandir estos valores en varias filas y facilitar su consulta y análisis.

Sintaxis

  • Expanda un arreglo en varias filas dentro de una sola columna llamada column_name.

    UNNEST(x) AS table_alias(column_name)
  • Expanda un mapa en varias filas con columnas denominadas key_name y value_name.

    UNNEST(y) AS table(key_name,value_name)
Importante

Si sus datos son una cadena, analícelos sintácticamente como un objeto JSON y conviértalos al tipo array o map requerido. Por ejemplo, use try_cast(json_parse(array_column) as array(bigint)). Consulte type conversion functions para obtener más detalles.

Parámetros

Parámetro

Descripción

x

Expresión que se evalúa como un arreglo.

column_name

Nombre de la columna de salida que contendrá los elementos del array.

y

Expresión que se evalúa como un mapa.

key_name

Nombre de la columna de salida que contendrá las claves del map.

value_name

Nombre de la columna de salida que contendrá los valores del map.

Ejemplos

Example 1

Expanda el valor de arreglo del campo number en varias filas.

  • Campo de muestra

    number:[49, 50, 45, 47, 50]
  • Instrucción de consulta y análisis

    * |
    SELECT
      a
    FROM  log,
      UNNEST(cast(json_parse(number) AS array(bigint))) AS t(a)
  • La consulta devuelve la columna a con los elementos expandidos: 49, 50, 45, 47 y 50.

Example 2

Expanda el valor de arreglo del campo number en varias filas y calcule la suma.

  • Campo de muestra

    Este ejemplo muestra un solo registro. La suma se calcula sobre todos los registros coincidentes mediante la agregación de los valores del campo number.

    number:[49, 50, 45, 47, 50]
  • Instrucción de consulta y análisis

    * |
    SELECT
      sum(a) AS sum
    FROM  log,
      UNNEST(cast(json_parse(number) as array(bigint))) AS t(a)
  • La consulta devuelve la columna sum con el valor 368248, que corresponde al total de todos los elementos de number en los registros coincidentes.

Example 3

Expanda el valor de arreglo del campo number en varias filas y agrupe los elementos.

  • Campo de muestra

    number:[49, 50, 45, 47, 50]
  • Instrucción de consulta y análisis

    * |
    SELECT
      a, count(*) AS count
    FROM  log,
      UNNEST(cast(json_parse(number) as array(bigint))) AS t(a) GROUP BY a
  • El resultado muestra cada elemento con su conteo correspondiente. Por ejemplo, el elemento 50 aparece 1194 veces, mientras que los elementos 47, 49 y 45 aparecen 597 veces cada uno.

Example 4

Expanda el valor de map del campo result en varias filas y columnas.

  • Campo de muestra

    result:{
      anomaly_type:"OverThreshold"
      dim_name:"request_time"
      is_anomaly:true
      score:1
      value:"3.000000"}
  • Instrucción de consulta y análisis

    * |
    select
      key,
      value
    FROM  log,
      UNNEST(
        try_cast(json_parse(result) as map(varchar, varchar))
      ) AS t(key, value)

Example 5

Expanda el valor de map del campo result y agrupe por clave.

  • Campo de muestra

    result:{
      anomaly_type:"OverThreshold"
      dim_name:"request_time"
      is_anomaly:true
      score:1
      value:"3.000000"}
  • Instrucción de consulta y análisis

    * |
    select
      key,
      count(*) AS count
    FROM  log,
      UNNEST(
        try_cast(json_parse(result) as map(varchar, varchar))
      ) AS t(key, value)
    GROUP BY
      key
  • El resultado muestra un count de 5422 para cada una de las cinco claves (anomaly_type, dim_name, is_anomaly, score y value), lo cual confirma que cada registro contiene el mismo conjunto de pares clave-valor.

Example 6

Utilice la función histogram para contar las solicitudes por método y luego expanda el mapa resultante con UNNEST para visualizar los datos en un gráfico de columnas.

  • Instrucción de consulta y análisis

    * |
    SELECT
      key,
      value
    FROM(
        SELECT
          histogram(request_method) AS result
        FROM      log
      ),
      UNNEST(result) AS t(key, value)
  • Resultado de la consulta y análisis unnest