Todos los productos
Search
Centro de documentos

Simple Log Service:Instrucciones de operaciones de campo

Última actualización: Sep 03, 2026

Este tema describe cómo utilizar las instrucciones de operaciones de campo y proporciona ejemplos.

project

Esta instrucción conserva los campos que coinciden con un patrón determinado y cambia el nombre de los campos especificados. Durante la ejecución, primero se procesan todas las expresiones de conservación de campos y posteriormente las expresiones de cambio de nombre.

Importante

Los campos de tiempo predeterminados __time__ y __time_ns_part__ están reservados y no se pueden renombrar ni sobrescribir. Para obtener más información, consulte Time field.

Sintaxis

| project -wildcard <field-pattern>, <output>=<field>, ...

Parámetros

Parámetro

Tipo

Obligatorio

Descripción

wildcard

Bool

No

Especifica si se debe habilitar la coincidencia de patrones con comodines. El valor predeterminado es la coincidencia exacta de campos. Agregue este parámetro para habilitar la coincidencia de patrones con comodines.

field-pattern

FieldPattern

Sí

El nombre del campo que se va a conservar, o una combinación de nombre de campo y caracteres comodín para procesar todos los campos coincidentes.

output

Field

Sí

El nuevo nombre para el campo. No se puede cambiar el nombre de varios campos al mismo campo de destino.

Importante

Si el nuevo campo tiene el mismo nombre que un campo en los datos de entrada, consulte Retaining and Overwriting Old and New Values para conocer la política de asignación de valores.

field

Field

Sí

El nombre original del campo al que se le cambiará el nombre.

  • Si el campo no existe en los datos de entrada, no se realiza la operación de cambio de nombre.

  • Un campo no se puede renombrar varias veces.

Ejemplos

  • Ejemplo 1: Conservar campos específicos.

    * | project level, err_msg
  • Ejemplo 2: Cambiar el nombre de los campos.

    * | project log_level=level, err_msg
  • Ejemplo 3: Conservar el campo que coincide exactamente con __tag__:*.

    * | project "__tag__:*"

project-away

Esta instrucción elimina los campos que coinciden con un patrón determinado y conserva todos los demás campos.

Importante

Esta instrucción conserva los campos de tiempo __time__ y __time_ns_part__ de forma predeterminada. Para obtener más información, consulte Time fields.

Sintaxis

| project-away -wildcard <field-pattern>, ...

Parámetros

Parámetro

Tipo

Obligatorio

Descripción

wildcard

Bool

No

Especifica si se debe habilitar la coincidencia de patrones con comodines. El valor predeterminado es la coincidencia exacta de campos. Agregue este parámetro para habilitar la coincidencia de patrones con comodines.

field-pattern

FieldPattern

Sí

El nombre del campo que se va a eliminar, o una combinación de nombre de campo y caracteres comodín para procesar todos los campos coincidentes.

project-rename

Esta instrucción cambia el nombre de los campos especificados y conserva todos los demás campos.

Importante

Los campos de tiempo predeterminados __time__ y __time_ns_part__ están reservados y no se pueden renombrar ni sobrescribir. Para obtener más información, consulte Time fields.

Sintaxis

| project-rename <output>=<field>, ...

Parámetros

Parámetro

Tipo

Obligatorio

Descripción

output

Field

Sí

El nuevo nombre para el campo. No se puede cambiar el nombre de varios campos al mismo campo de destino.

Importante

Si el nuevo campo tiene el mismo nombre que un campo en los datos de entrada, consulte Retention and Overwriting of Old and New Values para conocer la política de asignación de valores.

field

Field

Sí

El nombre original del campo al que se le cambiará el nombre.

  • Si el campo no existe en la entrada de datos, no se realiza la operación de cambio de nombre.

  • Un campo no se puede renombrar varias veces.

Ejemplo

Cambie el nombre de los campos especificados.

* | project-rename log_level=level, log_err_msg=err_msg

expand-values

Esta instrucción expande la primera capa de un objeto JSON en un campo especificado para generar varios resultados.

Importante
  • El tipo de datos de los campos de salida es VARCHAR. Si un campo de resultado tiene el mismo nombre que un campo de entrada, consulte Value Retention and Overwriting para obtener información sobre la política de manejo de valores.

  • No se pueden realizar operaciones en los campos de tiempo __time__ o __time_ns_part__. Para obtener más información, consulte Time fields.

  • Esta instrucción admite la transformación de datos en la nueva versión. Para conocer los diferentes escenarios de uso de SPL, consulte General Reference.

Sintaxis

| expand-values -path=<path> -limit=<limit> -keep <field> as <output>

Parámetros

Parámetro

Tipo

Obligatorio

Descripción

path

JSONPath

No

Especifica la ruta JSON dentro del contenido del campo para localizar el contenido que se debe expandir.

El valor predeterminado está vacío, lo que significa que todo el contenido del campo especificado se expande directamente.

limit

Integer

No

El número máximo de entradas expandidas a partir de cada entrada de datos sin procesar. Valores válidos: 0 y de 1 a 10. Valor predeterminado: 10.

Nota

El tamaño acumulado de los valores expandidos para un solo campo no puede superar los 50 MB. Cuando limit se establece entre 1 y 10, el número de filas expandidas está acotado por este valor.

Nota

Cuando limit se establece en 0, el número de filas expandidas por campo no tiene restricciones. Sin embargo, el total de datos devueltos en todos los campos y filas tiene un límite aproximado de 50 MB. Si se supera este límite, solo se devuelven los resultados parciales ya procesados. Los valores de los campos individuales no se truncan.

Nota

El valor que activa el límite se incluye en el resultado, por lo que los datos devueltos reales pueden superar ligeramente los 50 MB. El truncamiento debido al límite es silencioso y no genera ningún error ni advertencia.

keep

Bool

No

Especifica si se debe conservar el campo original después de la expansión. De forma predeterminada, el campo original no se conserva. Agregue este parámetro para conservar el campo original.

field

Field

Sí

El nombre del campo original que se va a expandir. El tipo compatible es VARCHAR. Si el campo especificado no existe, no se realiza la operación de expansión.

output

Field

No

El nombre del campo de destino para la expansión. Si no se especifica, el resultado se envía al campo de entrada de forma predeterminada.

La lógica de expansión para el contenido original es la siguiente:

Arreglo JSON: Expande cada elemento del arreglo.

Diccionario JSON: Expande cada par clave-valor del diccionario.

Otros tipos JSON: Devuelve el valor inicial.

JSON no válido: Devuelve null.

Ejemplos

  • Ejemplo 1: Expandir un arreglo para generar varios resultados de datos.

    • Instrucción SPL

      * | expand-values y
    • Datos de entrada

      x: 'abc'
      y: '[0,1,2]'
    • Datos de salida

      # Entry 1
      x: 'abc'
      y: '0'
      
      # Entry 2
      x: 'abc'
      y: '1'
      
      # Entry 3
      x: 'abc'
      y: '2'
  • Ejemplo 2: Expandir un diccionario para generar varios resultados de datos.

    • Instrucción SPL

      * | expand-values y
    • Datos de entrada

      x: 'abc'
      y: '{"a": 1, "b": 2}'
    • Datos de salida

      # Entry 1
      x: 'abc'
      y: '{"a": 1}'
      
      # Entry 2
      x: 'abc'
      y: '{"b": 2}'
  • Ejemplo 3: Expandir el contenido de una ruta JSON especificada y enviarlo a un nuevo campo.

    • Instrucción SPL

      * | expand-values -path='$.body' -keep content as body
    • Datos de entrada

      content: '{"body": [0, {"a": 1, "b": 2}]}'
    • Datos de salida

      # Entry 1
      content: '{"body": [1, 2]}'
      body: '0'
      
      # Entry 2
      content: '{"body": [1, 2]}'
      body: '{"a": 1, "b": 2}'