Todos os produtos
Search
Central de documentação

Simple Log Service:Sintaxe de transformação de dados

Última atualização: Sep 12, 2026

A DSL do Simple Log Service (SLS) baseia-se em Python e oferece mais de 200 funções integradas para simplificar tarefas de transformação de dados. Este tópico descreve os modos de linguagem, as categorias de funções e os princípios de execução da DSL.

Modos de linguagem

A DSL do SLS é compatível com Python. No modo padrão, funciona como um subconjunto do Python. Exceto pelas estruturas de dados e expressões básicas, todas as outras regras de sintaxe são implementadas por meio de funções.

Categoria

Sintaxe Python

Modo padrão

Estrutura de dados

Número, string e booleano

Compatível.

Strings que começam ou terminam com """ não são compatíveis.

Tupla, lista, conjunto e dicionário

Compatível.

A estrutura set não é compatível, como em {1,2,3}.

Objeto

Somente estruturas de dados estendidas integradas, como objetos table e datetime, são compatíveis.

Sintaxe básica

Operadores como adição (+), subtração (-), multiplicação (×) e divisão (/)

Use diretamente no código apenas operadores de comparação, como ==, !=, >, e operadores lógicos, como and, or e not. Para usar outros operadores, chame as funções correspondentes.

Comentários

Compatível.

Atribuição de variáveis

Não compatível. Realize a atribuição por meio da invocação de uma função.

Pré-requisitos

Compatível. Funções: e_if, e_if_else e e_switch.

Loops

Compatível indiretamente. Use funções integradas aninhadas para implementar loops. As funções de exemplo abaixo mostram como percorrer os elementos de um array:

e_if(op_ge(op_len(json_parse(v("x"))), 1), e_set("x0", lst_get(v("x"), 0)))
e_if(op_ge(op_len(json_parse(v("x"))), 2), e_set("x1", lst_get(v("x"), 1)))

Função

Funções integradas padrão do Python

Não compatível. Em vez disso, use as mais de 200 funções integradas fornecidas pela DSL do SLS.

Chamadas de função

Compatível. Chamadas de função que usam desempacotamento de parâmetros não são compatíveis.

Funções definidas pelo usuário, como def ou lambda

Não compatível. No entanto, o sistema oferece mais de 200 funções globais de operação e expressão que você pode chamar em qualquer combinação.

Módulo

Importação e uso da biblioteca padrão do Python

Não compatível.

Criação de threads e processos

Não compatível.

Importação de bibliotecas de terceiros

Não compatível.

Conexão de rede externa ou chamada de comando externo

Inclui conectores de recursos integrados.

Categorias de funções

No modo padrão, a DSL do SLS executa todas as operações por meio de chamadas de função. A DSL fornece mais de 200 funções integradas, divididas em funções de processamento global e funções de expressão.

  • Funções de processamento global

    Essas funções recebem, processam e retornam logs. Use apenas funções de processamento global para construir cada etapa de uma regra de transformação.

  • Funções de expressão

    Funções de uso geral que aceitam parâmetros específicos. Combine-as e passe-as como parâmetros para uma função de operação global para definir lógicas mais flexíveis.

A tabela a seguir compara as capacidades dos dois tipos de função.

Tipo de função

Etapas gerais

Recebimento

Retorno

Modificação de log

Chamadas combinadas

Operações e funções globais

Compatível

Logs recebidos automaticamente

Zero a múltiplos logs

Compatível na maioria dos casos

Compatível

Funções de expressão

Não compatível

Apenas algumas funções permitem processamento direto de logs.

Estruturas de dados específicas

Não compatível

Compatível

Funções de processamento global

Funções destinadas a receber e retornar logs.

Nota

Coloque apenas uma função de processamento global na primeira linha de cada etapa.

Uma regra de transformação na DSL do SLS usa a seguinte sintaxe:

GlobalFunction1(..parameters....)
GlobalFunction2(..parameters....)
GlobalFunction3(..parameters....)
GlobalFunction4(..parameters....)

As funções de processamento global dividem-se em duas categorias:

Classificação funcional

Descrição

Exemplo

Funções de controle de fluxo

Gerenciam o fluxo do processo, recebem logs e invocam condicionalmente outras funções para processá-los.

e_if, e_switch e e_if_else.

Funções de processamento de eventos

Transformam logs e retornam de zero a múltiplos logs.

Exemplos de funções incluem:

  • e_drop_fields: descarta campos de log.

  • e_kv: extrai e adiciona pares chave-valor dos logs.

  • e_dict_map: enriquece logs.

Lógica de transformação:

  • Processamento básico

    O recurso de transformação de dados lê dados do Logstore de origem em streaming. Cada log é passado como um dicionário para a regra de transformação. O sistema processa os dados do log sequencialmente, conforme as funções definidas na regra. Por fim, o resultado da transformação é enviado ao Logstore de destino.

    Nota

    Todos os campos e valores de um log são enviados como strings. Por exemplo, o log bruto {"__time__": "1234567", "__topic__": "", "k1": "test"} é processado pela função e_set("f1", 200). Essa função adiciona o campo f1 com o valor 200. Após o processamento, o log torna-se {"__time__": "1234567", "__topic__": "", "k1": "test", "f1": "200"}. Nesse log, tanto o campo f1 quanto o valor 200 são strings.

    As funções de processamento de eventos especificadas em uma regra de transformação são chamadas em sequência. Cada função recebe um log, processa-o e retorna o log processado.

    Por exemplo, a função e_set("type", "test") adiciona o campo type com o valor test a um log. A próxima função recebe e processa esse log modificado.

  • Avaliação de condições

    • e_if: A função e_if permite adicionar expressões condicionais para processar logs. Caso um log não atenda à condição especificada, a operação correspondente será ignorada. A função e_if implementa a lógica if.

      Por exemplo, a função e_if(e_match("status", "200"), e_regex("data", "ret: \d+", "result")) verifica se o valor do campo status é 200. Se verdadeiro, a função extrai o campo result do campo data usando a expressão regular especificada. Caso contrário, nenhuma operação será realizada.

    • e_if_else: Esta função opera de maneira semelhante à operação if_else.

  • Término do processamento

    • Uma etapa em uma regra de transformação pode não retornar nenhum log, indicando que o log foi excluído.

      Por exemplo, a função e_if(str_islower(v("result")), e_drop()) verifica se o valor do campo result é uma string em letras minúsculas. Se verdadeiro, o log será descartado e as etapas subsequentes não serão executadas para esse log. O sistema passa a processar automaticamente o próximo log.

    • Escrever um log em um Logstore de destino encerra o processamento. Por exemplo, se a função e_output gravar um log em um Logstore de destino e o excluir, as etapas subsequentes não serão executadas para esse log.

      Nota

      A função e_coutput copia o log de saída e continua o processamento das etapas subsequentes.

  • Divisão paralela:

    Uma etapa em uma regra de transformação pode retornar múltiplos logs, indicando que o log foi dividido.

    Por exemplo, a função e_split(data) divide um log em dois com base no valor do campo data. Se o valor do campo data for "abc, xyz", o log será dividido em dois. Em um deles, o valor do campo data será abc. No outro, o valor será xyz.

    Os logs gerados após a divisão são processados nas etapas subsequentes.

Para mais informações, consulte Global operation functions.

Funções de expressão

Além das funções de processamento global, a DSL do SLS oferece 200 funções de expressão que aceitam parâmetros específicos e retornam valores específicos. Chame uma função de expressão ou uma combinação delas dentro de uma função de processamento global. A sintaxe é a seguinte:

Global Processing Function 1(Expression Function 1(...), ...)
Global Processing Function 2(..., Expression Function 2(...), Expression Function 3(...), ...)

As funções de expressão dividem-se em quatro categorias:

Classificação funcional

Descrição

Exemplo

Funções de verificação de eventos

Recebem logs, extraem ou recuperam informações específicas e retornam esses dados sem modificar os logs.

A função v retorna o valor de um campo de log. As funções e_search e e_match verificam se um log atende a uma condição especificada.

Funções de recursos

Conectam-se a recursos locais ou externos, usam configurações de parâmetros específicos e retornam dados como dicionários ou tabelas.

Funções de recursos OSS, RDS e Logstore.

Funções de controle

Executam operações lógicas em expressões. Usam parâmetros específicos, aplicam controle condicional e invocam outras funções de expressão para retornar resultados.

op_and, op_or, op_not, op_if e op_coalesce.

Outras funções de expressão

Aceitam valores fixos ou resultados de outras chamadas de função e retornam valores específicos.

Funções de string, data e hora, e conversão de tipos.

Para mais informações, consulte Expression functions.