Todos os produtos
Search
Central de documentação

Simple Log Service:Estruturas de dados

Última atualização: Jul 03, 2026

A transformação de dados utiliza diversas estruturas para processar logs, incluindo tipos básicos, tipos de eventos, identificadores fixos e objetos JSON.

Estruturas de dados básicas

A tabela a seguir lista os tipos de estruturas de dados básicas.

Tipo

Descrição

Integer

Define valores de campo ou passa parâmetros para funções.

Exemplo: e_set("f1", 100) defina o campo f1 como 100.

Float

Define valores de campo ou passa parâmetros para funções.

Exemplo: e_set("f1", 1.5) defina o campo f1 como 1.5.

String

Strings aceitam as seguintes convenções:

  • "abc" equivale a 'abc'. Se uma string contiver aspas duplas ("), use aspas simples para delimitá-la, como em 'abc"xyz'. Também é possível usar barra invertida (\) para escapar as aspas duplas, como em "abc\"xyz".

    A barra invertida (\) atua como caractere de escape. Por exemplo, "\\abc\\xyz" representa a string \abc\xyz.

  • r"\\10.64.1.1\share\folder" equivale a "\\\\10.64.1.1\\share\\folder". Ambas representam a string \\10.64.1.1\share\folder.

  • Strings multibyte são representadas em Unicode. Por exemplo, o comprimento da string Chinese é 2.

  • Expressões regulares são representadas como strings.

Nota

Use aspas simples na string externa e aspas duplas no valor de busca interno. e_search("domain: '/url/test.jsp'") está incorreto. O formato correto é e_search('domain: "/url/test.jsp"').

Bytes

Difere da codificação de memória de string. b'abc' serve como parâmetro ou tipo de retorno em algumas funções especiais.

empty

None ou null indica ausência de valor. Alguns parâmetros nomeados em funções assumem None como padrão, o que define um comportamento específico.

Nota

Uma string vazia possui tipo de dados diferente de None ou null.

List

Um array, como [1,2,3,4].

  • Algumas funções aceitam listas como parâmetros. Exemplo: e_dict_map("dict data", ["f1", "f2", "f3"], ...).

  • Certas funções retornam listas. Exemplo: json_select retorna uma lista ao selecionar um array.

Tuple

Funciona como uma lista. Exemplo: (1,2,3,4).

Dictionary (Dict)

Coleção de pares chave-valor no formato {"key": "value", "k2": "v2", ...}. As chaves geralmente são strings únicas. Os valores podem ser de qualquer tipo listado acima. Dicionários usam hashing e não têm ordem definida.

  • Um evento é um tipo especial de dicionário.

  • Algumas funções aceitam dicionários em formatos específicos. Exemplo: {"key": [1,2,3], "key2": {"k3": "v3"}}.

  • Dicionários também servem como dados de entrada em mapeamentos de dicionário.

Boolean (Bool)

Por exemplo, True, False, true ou false.

Table

Estrutura de tabela com múltiplas colunas. Crie tabelas carregando conteúdo CSV de várias linhas de recursos externos ou recuperando dados multicolumn do ApsaraDB RDS ou de um Logstore. Tabelas são usadas principalmente para mapeamentos de enriquecimento de dados ou outros cenários avançados de configuração.

Datetime object

Representa data e hora na memória. Pode ser convertido em string de timestamp Unix ou string de tempo formatada, ou passado para funções dt_ para transformações adicionais.

Tipos de eventos

A transformação de dados suporta os seguintes tipos de eventos.

  • Tipo primitivo

    A transformação de dados processa logs como um dicionário, como {"__topic__": "access_log", "content": "....."}.

    As chaves e valores do dicionário correspondem aos campos e valores do log.

    Nota

    Chaves e valores de eventos são strings, e as chaves devem ser únicas.

  • Metacampos

    Os metacampos incluem:

    • Campo de tempo __time__: timestamp Unix (segundos desde 00:00:00 UTC, 1º de janeiro de 1970) de gravação do log. Armazenado como string inteira.

    • Tópico __topic__: organiza logs em um Logstore por tópico. Especifique um tópico ao gravar ou consultar logs.

    • Origem __source__: source do log, como o endereço IP da máquina geradora.

  • Modificação do campo de tempo

    Modifique o valor do campo de tempo para alterar o horário do evento. Use funções de data e hora para outras operações neste campo.

    Nota

    Se o campo de tempo for excluído, o sistema usará o tempo de processamento como horário do evento ao enviar o log para o destino.

  • Tags

    Uma tag é um rótulo de log usado para classificação, no formato __tag__:name.

    • Se o registro de endereço IP público estiver ativado para o Logstore de origem, os logs incluirão a tag tag:__tag__:__receive_time__.

    • Logs do Container Service contêm várias tags relacionadas a contêineres, como __tag__:__container_name__.

    • Adicione ou modifique tags conforme necessário. Para adicionar uma tag chamada type, use e_set("__tag__:type", "access_log").

  • Conversão automática na atribuição

    Chaves e valores de eventos são strings. Ao atribuir um valor ou definir um novo campo, o sistema converte automaticamente chaves e valores para strings. Exemplo:

    e_set("v1", 12.3)
    e_set("v2", True)

    Isso defina v1 como a string "12.3" e v2 como a string "true".

    A tabela a seguir mostra a conversão de diferentes tipos de dados para strings.

    Tipo

    Exemplo

    Tipo convertido

    Exemplo convertido

    Integer

    1

    String

    "1"

    Float

    1.2

    String

    "1.2"

    Boolean

    True

    String

    "true"

    Bytes

    b"123"

    Decodificado para string usando UTF-8

    "123"

    Tuple

    • Exemplo 1: (1, 2, 3)

    • Exemplo 2: ("a", 1)

    String de uma lista

    • Exemplo 1: "[1, 2, 3]"

    • Exemplo 2: "[\"a\", 1]"

    List

    • Exemplo 1: [1,2,3]

    • Exemplo 2: ["a", 1]

    String

    • Exemplo 1: "[1, 2, 3]"

    • Exemplo 2: "[\"a\", 1]"

    Dictionary

    {"1":2, "3":4}

    String

    "{\"1\": 2, \"3\": 4}"

    Datetime

    datetime(2018, 10, 10, 10, 10, 10)

    String no formato ISO

    2018-10-10 10:10:10

Identificadores fixos

A transformação de dados fornece identificadores fixos para simplificar o código e melhorar a legibilidade.

Identificador

Tipo

Descrição

true

Boolean

Equivale a True.

false

Boolean

Equivale a False.

null

None

Equivale a None.

F_TAGS

String

Regex para campos TAG. Equivale a "__tag__:.+".

F_META

String

Regex para campos TAG, __topic__ e __source__. Equivale a `__tag__:.+

__topic__

__source__`.

F_TIME

String

Nome do campo __time__. Equivale a __time__.

F_PACK_META

String

Regex para campos de pack meta. Equivale a `"__pack_meta__

__tag__:__pack_id__"`.

F_RECEIVE_TIME

String

Campo tag do horário de recebimento do log pelo servidor. Equivale a "__tag__:__receive_time__".

C_JOB_REGION

String

ID da região da tarefa de transformação de dados, como cn-hangzhou. Exemplo: e_set("job_region", C_JOB_REGION).

C_JOB_PROJECT

String

Nome do projeto da tarefa de transformação de dados, como my-sls-project. Exemplo: e_set("job_project", C_JOB_PROJECT).

C_JOB_NAME

String

Nome da configuração da tarefa de transformação de dados, como etl-1649227848-642277. Exemplo: e_set("job_name", C_JOB_NAME).

C_JOB_ID

String

ID de execução da tarefa de transformação de dados, como 73b96061b8c1c2101d558139bf641ea9. Exemplo: e_set("job_id", C_JOB_ID).

Objetos JSON

Um objeto JSON é analisado a partir de uma string usando json_select ou json_parse. Composto por estruturas de dados básicas, ele segue as regras de conversão de strings de entrada mostradas na tabela a seguir.

String

Objeto JSON

Tipo real

1

1

Integer

1.2

1.2

Float

true

True

Boolean

false

False

Boolean

"abc"

"abc"

String

null

None

None

["v1", "v2", "v3"]

["v1", "v2", "v3"]

List

["v1", 3, 4.0]

["v1", 3, 4.0]

List

{"v1": 100, "v2": "good"}

{"v1": 100, "v2": "good"}

Dictionary

{"v1": {"v11": 100, "v2": 200}, "v3": "good"}

{"v1": {"v11": 100, "v2": 200}, "v3": "good"}

Dictionary