Todos os produtos
Search
Central de documentação

Simple Log Service:Instruções de operação de campo

Última atualização: Jul 09, 2026

Este tópico descreve o uso das instruções de operação de campo e fornece exemplos.

project

Esta instrução retém campos correspondentes a um padrão especificado e renomeia campos selecionados. Durante a execução, o sistema processa primeiro todas as expressões de retenção de campo e, em seguida, as expressões de renomeação.

Importante

Os campos de tempo padrão __time__ e __time_ns_part__ são reservados e não podem ser renomeados ou sobrescritos. Para mais informações, consulte Campo de tempo.

Sintaxe

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

Parâmetros

Parâmetro

Tipo

Obrigatório

Descrição

wildcard

Bool

Não

Ativa a correspondência de padrões com curingas. O padrão é a correspondência exata de campos. Adicione este parâmetro para ative a correspondência com curingas.

field-pattern

FieldPattern

Sim

Nome do campo a reter ou combinação de nome de campo com caracteres curinga para processar todos os campos correspondentes.

output

Field

Sim

Novo nome do campo. Não é possível renomear vários campos para o mesmo campo de destino.

Importante

Se o novo campo tiver o mesmo nome de um campo nos dados de entrada, consulte Retenção e sobrescrita de valores antigos e novos para entender a política de atribuição de valores.

field

Field

Sim

Nome original do campo a renomear.

  • Se o campo não existir nos dados de entrada, a operação de renomeação não será executada.

  • Um campo não pode ser renomeado múltiplas vezes.

Exemplos

  • Exemplo 1: Reter campos específicos.

    * | project level, err_msg
  • Exemplo 2: Renomear campos.

    * | project log_level=level, err_msg
  • Exemplo 3: Reter o campo com correspondência exata a __tag__:*.

    * | project "__tag__:*"

project-away

Esta instrução remove campos correspondentes a um padrão especificado e retém todos os demais.

Importante

Por padrão, esta instrução retém os campos de tempo __time__ e __time_ns_part__. Para mais informações, consulte Campos de tempo.

Sintaxe

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

Parâmetros

Parâmetro

Tipo

Obrigatório

Descrição

wildcard

Bool

Não

Ativa a correspondência de padrões com curingas. O padrão é a correspondência exata de campos. Adicione este parâmetro para ative a correspondência com curingas.

field-pattern

FieldPattern

Sim

Nome do campo a remover ou combinação de nome de campo com caracteres curinga para processar todos os campos correspondentes.

project-rename

Esta instrução renomeia campos específicos e mantém todos os outros inalterados.

Importante

Os campos de tempo padrão __time__ e __time_ns_part__ são reservados e não podem ser renomeados ou sobrescritos. Para mais informações, consulte Campos de tempo.

Sintaxe

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

Parâmetros

Parâmetro

Tipo

Obrigatório

Descrição

output

Field

Sim

Novo nome do campo. Não é possível renomear vários campos para o mesmo campo de destino.

Importante

Se o novo campo tiver o mesmo nome de um campo nos dados de entrada, consulte Retenção e sobrescrita de valores antigos e novos para entender a política de atribuição de valores.

field

Field

Sim

Nome original do campo a renomear.

  • Se o campo não existir nos dados de entrada, a operação de renomeação não será executada.

  • Um campo não pode ser renomeado múltiplas vezes.

Exemplo

Renomeie campos específicos.

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

expand-values

Esta instrução expande a primeira camada de um objeto JSON em um campo especificado para gerar múltiplos resultados.

Importante
  • O tipo de dados dos campos de saída é VARCHAR. Se um campo de resultado tiver o mesmo nome de um campo de entrada, consulte Retenção e sobrescrita de valores para obter informações sobre a política de tratamento de valores.

  • Não é possível realizar operações nos campos de tempo __time__ ou __time_ns_part__. Para mais informações, consulte Campos de tempo.

  • Esta instrução suporta transformação de dados na nova versão. Para diferentes cenários de uso da SPL, consulte Referência geral.

Sintaxe

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

Parâmetros

Parâmetro

Tipo

Obrigatório

Descrição

path

JSONPath

Não

Especifica o caminho JSON no conteúdo do campo para localizar o conteúdo a expandir.

O valor padrão é vazio, o que significa que todo o conteúdo do campo especificado é expandido diretamente.

limit

Integer

Não

Número máximo de entradas expandidas a partir de cada entrada de dados brutos. Valores válidos: 0 e 1 a 10. Valor padrão: 10.

Nota

O tamanho acumulado dos valores expandidos para um único campo não pode exceder 50 MB. Quando limit é definido entre 1 e 10, o número de linhas expandidas é limitado por este valor.

Nota

Quando limit é definido como 0, o número de linhas expandidas por campo é ilimitado. No entanto, o total de dados retornados em todos os campos e linhas tem um teto de aproximadamente 50 MB. Se esse limite for excedido, apenas os resultados parciais já processados serão retornados. Os valores individuais dos campos não são truncados.

Nota

O valor que aciona o limite é incluído no resultado, portanto, os dados reais retornados podem exceder ligeiramente 50 MB. O truncamento devido ao limite ocorre silenciosamente e não gera nenhum erro ou aviso.

keep

Bool

Não

Defina se o campo original deve ser mantido após a expansão. Por padrão, o campo original não é retido. Adicione este parâmetro para manter o campo original.

field

Field

Sim

Nome do campo original a expandir. O tipo suportado é VARCHAR. Se o campo especificado não existir, a operação de expansão não será executada.

output

Field

Não

Nome do campo de destino para a expansão. Se não for especificado, o resultado será enviado para o campo de entrada por padrão.

A lógica de expansão para o conteúdo original funciona da seguinte forma:

Array JSON: Expande cada elemento do array.

Dicionário JSON: Expande cada par chave-valor do dicionário.

Outros tipos JSON: Retorna o valor inicial.

JSON inválido: Retorna null.

Exemplos

  • Exemplo 1: Expandir um array para gerar múltiplos resultados de dados.

    • Instrução SPL

      * | expand-values y
    • Dados de entrada

      x: 'abc'
      y: '[0,1,2]'
    • Dados de saída

      # Entry 1
      x: 'abc'
      y: '0'
      
      # Entry 2
      x: 'abc'
      y: '1'
      
      # Entry 3
      x: 'abc'
      y: '2'
  • Exemplo 2: Expandir um dicionário para gerar múltiplos resultados de dados.

    • Instrução SPL

      * | expand-values y
    • Dados de entrada

      x: 'abc'
      y: '{"a": 1, "b": 2}'
    • Dados de saída

      # Entry 1
      x: 'abc'
      y: '{"a": 1}'
      
      # Entry 2
      x: 'abc'
      y: '{"b": 2}'
  • Exemplo 3: Expandir o conteúdo de um caminho JSON específico e enviá-lo para um novo campo.

    • Instrução SPL

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

      content: '{"body": [0, {"a": 1, "b": 2}]}'
    • Dados de saída

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