Todos los productos
Search
Centro de documentos

Simple Log Service:Funciones y operadores de map

Última actualización: Sep 02, 2026

Conozca la sintaxis y el uso de las funciones y operadores de map en SLS.

SLS admite las siguientes funciones y operadores de map.

Importante

Si desea usar cadenas en instrucciones analíticas, debe encerrarlas entre comillas simples (''). Las cadenas sin comillas o encerradas entre comillas dobles ("") indican nombres de campo o de columna. Por ejemplo,

'status'

indica la cadena status, mientras que

status

o

"status"

indican el campo de registro status.

Nombre de la función

Sintaxis

Descripción

SQL

SPL

subscript operator

[x]

Devuelve el valor de una clave especificada dentro de un map.

√

×

cardinality function

cardinality(x)

Devuelve la cardinalidad (tamaño) de un map.

√

×

element_at function

element_at(x, key)

Devuelve el valor de una clave especificada dentro de un map.

√

√

histogram function

histogram(x)

Agrupa los resultados de consulta y análisis en un map.

√

×

histogram_u function

histogram_u(x)

Agrupa los resultados en un formato de varias filas y columnas.

√

×

map function

map()

Devuelve un map vacío.

√

√

map(x, y)

Crea un map a partir de dos arreglos.

√

√

map_agg function

map_agg(x, y)

Crea un map con x como clave y y como valor. Si y tiene varios valores, se selecciona uno al azar.

√

×

map_concat function

map_concat(x, y...)

Combina varios mapas en un solo map.

√

√

map_filter function

map_filter(x, lambda_expression)

Filtra las entradas de un map según una expresión lambda.

√

√

map_keys function

map_keys(x)

Extrae todas las claves de un map y las devuelve como un arreglo.

√

√

map_values function

map_values(x)

Extrae todos los valores de un map y los devuelve como un arreglo.

√

√

multimap_agg function

multimap_agg(x, y)

Crea un map con x como clave y y como arreglo de valores. Si y tiene varios valores, se recopilan todos.

√

×

Operador de subíndice

El operador de subíndice devuelve el valor de una clave especificada dentro de un map.

Syntax

[x]

Parameters

Parámetro

Descripción

x

La clave a la que se accederá. Debe ser de tipo varchar.

Return value type

El tipo de dato del resultado es el mismo que el tipo de valor del map.

Examples

En los registros de transformación de datos de SLS, el campo etl_context es de tipo map. Utilice el operador de subíndice para obtener el valor de project desde etl_context.

  • Campo de ejemplo

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
  • Instrucción de consulta y análisis

    * | SELECT try_cast(json_parse(etl_context) AS map(varchar, varchar))['project']
  • La columna _col0 devuelve datalab-148****6461-cn-chengdu, que es el valor de project extraído de etl_context.

Función cardinality

La función cardinality devuelve la cardinalidad (tamaño) de un map.

Syntax

cardinality(x)

Parameters

Parámetro

Descripción

x

El map de entrada.

Return value type

bigint

Examples

Cuente las solicitudes por método con histogram y luego cuente los métodos únicos con cardinality.

  • Instrucción de consulta y análisis

    * |
    SELECT
      histogram(request_method) AS request_method,
      cardinality(histogram(request_method)) AS "kinds"
  • Resultados de la consulta y el análisis: La columna request_method devuelve {"DELETE":5,"POST":7,"GET":41,"PUT":4}, y la columna kinds devuelve 4, lo que indica cuatro métodos de solicitud.

Función element_at

La función element_at devuelve el valor de una clave especificada dentro de un map.

Syntax

element_at(x, key)

Parameters

Parámetro

Descripción

x

El parámetro debe ser un map.

key

Una clave dentro del map.

Return value type

El tipo de dato del resultado es el mismo que el tipo de valor del map.

Examples

Cuente las solicitudes por método con histogram y luego obtenga el recuento de DELETE con element_at.

  • Instrucción de consulta y análisis

    * |
    SELECT
      histogram(request_method) AS request_method,
      element_at(histogram(request_method),'DELETE') AS "count"
  • Resultados de la consulta y el análisis: La columna request_method devuelve {"HEAD":686,"DELETE":13619,"POST":34365,"GET":138097,"PUT":34056}, y la columna count devuelve 13619 (el recuento de solicitudes DELETE).

Función histogram

La función histogram agrupa los resultados como un map JSON, similar a * | SELECT count(*) GROUP BY x.

Syntax

histogram(x)

Parameters

Parámetro

Descripción

x

El parámetro puede ser de cualquier tipo de dato.

Return value type

map

Examples

Cuente las solicitudes por método con histogram.

  • Instrucción de consulta y análisis

    * | SELECT histogram(request_method) AS request_method
  • El resultado es {"HEAD":30,"DELETE":564,"POST":1382,"GET":5420,"PUT":1334}. GET tiene el recuento más alto con 5,420.

Función histogram_u

La función histogram_u agrupa datos y devuelve los resultados en un formato de varias filas y columnas.

Syntax

histogram_u(x)

Parameters

Parámetro

Descripción

x

El parámetro puede ser de cualquier tipo de dato.

Return value type

bigint

Examples

Cuente las solicitudes por método con histogram_u y muestre los resultados como un gráfico de columnas.

  • Instrucción de consulta y análisis

    *|SELECT  histogram_u(request_method) as request_method
  • Resultados de la consulta y el análisis histogram_u

Función map

La función map devuelve un map vacío o crea un map a partir de dos arreglos.

Syntax

  • Devuelve un map vacío.

    map()
  • Crea un map a partir de dos arreglos.

    map(x,y) 

Parameters

Parámetro

Descripción

x

El parámetro debe ser un arreglo.

y

El parámetro debe ser un arreglo.

Return value type

map

Examples

  • Ejemplo 1: Los campos class y number son arreglos. Utilice la función map para crear una asignación de clave-valor entre cada clase y su cantidad de estudiantes.

    • Campos de ejemplo

      class:["class01","class02","class03","class04","class05"]
      number:[49,50,45,47,50]
    • Instrucción de consulta y análisis

      * | SELECT map(try_cast(json_parse(class) AS array(varchar)) ,try_cast(json_parse(number) AS array(bigint)))
    • Los resultados de la consulta y el análisis son {"class01":49,"class03":45,"class02":50,"class05":50,"class04":47}.

  • Ejemplo 2: Devolver un map vacío.

    • Instrucción de consulta y análisis

      *| SELECT map()
    • El resultado es {}, un map vacío.

Función map_agg

La función map_agg asigna x e y en un map, donde x es la clave e y es el valor. Si existen varios valores para y, se selecciona uno al azar.

Syntax

map_agg(x, y)

Parameters

Parámetro

Descripción

x

El parámetro puede ser de cualquier tipo de dato.

y

El parámetro puede ser de cualquier tipo de dato.

Return value type

map

Examples

Asigne request_method (clave) y request_time (valor) en un map.

  • Campos de ejemplo

    request_method:POST
    request_time:80
  • Instrucción de consulta y análisis

    * | SELECT map_agg(request_method,request_time)
  • Los resultados de la consulta y el análisis son {"HEAD":47.0,"DELETE":26.0,"POST":80.0,"GET":51.0,"PUT":49.0}.

Función map_concat

La función map_concat combina varios mapas en un solo map.

Syntax

map_concat(x, y)

Parameters

Parámetro

Descripción

x

El parámetro debe ser un map.

y

El parámetro debe ser un map.

Return value type

map

Examples

En los registros de transformación de datos de SLS, tanto etl_context como progress son de tipo map. Utilice map_concat para combinarlos.

  • Campos de ejemplo

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
    progress: {
     accept:3
     dropped:0
     delivered:3
     failed:0 }
  • Instrucción de consulta y análisis

    * |
    SELECT
      map_concat(
        cast (
          json_parse(etl_context) AS map(varchar, varchar)
        ),
        cast (json_parse(progress) AS map(varchar, varchar))
      )
  • Resultados de la consulta y el análisis

    null
    {"consumer_group":"etl-83d5****071d1911974d1965","shard_id":"1","dropped":"0","project":"atalab-14****66461-cn-chengdu","delivered":"2","failed":"0","logstore":"internal-etl-log","consumer":"etl-b****510a8ee7a9532c8d6-291294","accept":"2"}

Función map_filter

La función map_filter filtra un map según una expresión lambda.

Syntax

map_filter(x, lambda_expression)

Parameters

Parámetro

Descripción

x

El parámetro debe ser un map.

lambda_expression

La expresión lambda. Lambda expressions.

Return value type

map

Examples

Asigne dos arreglos a un nuevo map y filtre los valores nulos. La expresión (k, v) -> v is not null es una expresión lambda.

  • Instrucción de consulta y análisis

    * | SELECT map_filter(map(array[10, 20, 30], array['a', NULL, 'c']), (k, v) -> v is not null)
  • Los resultados de la consulta y el análisis son {"10":"a","30":"c"}.

Función map_keys

La función map_keys extrae todas las claves de un map y las devuelve como un arreglo.

Syntax

map_keys(x)

Parameters

Parámetro

Descripción

x

El parámetro debe ser un map.

Return value type

array

Examples

En los registros de transformación de datos de SLS, el campo etl_context es de tipo map. Utilice map_keys para extraer todas las claves de etl_context.

  • Campo de ejemplo

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
  • Instrucción de consulta y análisis

    * | SELECT map_keys(try_cast(json_parse(etl_context) AS map(varchar, varchar)))
  • El resultado de la consulta y el análisis es ["consumer","consumer_group","logstore","project","shard_id"].

Función map_values

La función map_values extrae todos los valores de un map y los devuelve como un arreglo.

Syntax

map_values(x)

Parameters

Parámetro

Descripción

x

El parámetro debe ser un map.

Return value type

array

Examples

En los registros de transformación de datos de SLS, el campo etl_context es de tipo map. Utilice map_values para extraer todos los valores de etl_context.

  • Campo de ejemplo

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
  • Instrucción de consulta y análisis

    * | SELECT map_values(try_cast(json_parse(etl_context) AS map(varchar, varchar)))
  • El resultado es un arreglo con todos los valores en etl_context: ["datalab-148****6461-cn-chengdu", "internal-etl-log", "etl-83****4d1965", "etl-b2d40ed****c8d6-291294", "0"].

Función multimap_agg

La función multimap_agg asigna x e y a un map. En este map, x es la clave e y es el valor, que corresponde a un arreglo. Si existen varios valores de y para la misma clave, todos se recopilan en el arreglo.

Syntax

multimap_agg(x, y)

Parameters

Parámetro

Descripción

x

El parámetro puede ser de cualquier tipo de dato.

y

El parámetro puede ser de cualquier tipo de dato.

Return value type

map

Examples

Asigne request_method (clave) a request_time (arreglo de valores) mediante multimap_agg.

  • Campos de ejemplo

    request_method:POST
    request_time:80
  • Instrucción de consulta y análisis

    * | SELECT multimap_agg(request_method,request_time)
  • El resultado asigna cada método HTTP a un arreglo de valores de request_time. Por ejemplo, DELETE se asigna a [28.0, 80.0, 21.0, 54.0, ...], POST se asigna a [77.0, 27.0, 52.0, 25.0, ...], y así sucesivamente.