Tous les produits
Search
Centre de documentation

Simple Log Service:Structures de données

Dernière mise à jour :Aug 19, 2026

La transformation des données utilise plusieurs structures pour traiter les journaux, notamment des types de base, des types d'événements, des identifiants fixes et des objets JSON.

Structures de données de base

Le tableau suivant répertorie les types de structures de données de base.

Type

Description

Integer

Définit les valeurs des champs ou transmet des paramètres aux fonctions.

Exemple : e_set("f1", 100) définit le champ f1 sur 100.

Float

Définit les valeurs des champs ou transmet des paramètres aux fonctions.

Exemple : e_set("f1", 1,5) définit le champ f1 sur 1,5.

String

Les chaînes de caractères respectent les conventions suivantes :

  • "abc" est équivalent à 'abc'. Si une chaîne contient un guillemet double ("), utilisez des guillemets simples pour l'encadrer, par exemple 'abc"xyz'. Vous pouvez également utiliser une barre oblique inverse (\) pour échapper le guillemet double, par exemple "abc\"xyz".

    Une barre oblique inverse (\) est un caractère d'échappement. Par exemple, "\\abc\\xyz" représente la chaîne \abc\xyz.

  • r"\\10.64.1.1\share\folder" est équivalent à "\\\\10.64.1.1\\share\\folder". Les deux représentent la chaîne \\10.64.1.1\share\folder.

  • Les chaînes multioctets sont représentées en Unicode. Par exemple, la longueur de la chaîne Chinese est de 2.

  • Les expressions régulières sont représentées sous forme de chaînes.

Remarque

Utilisez des guillemets simples pour la chaîne externe et des guillemets doubles pour la valeur de recherche interne. e_search("domain: '/url/test.jsp'") est incorrect. Le format correct est e_search('domain: "/url/test.jsp"').

Bytes

Diffère de l'encodage mémoire des chaînes. b'abc' sert de paramètre ou de type de retour pour certaines fonctions spéciales.

empty

None ou null indique l'absence de valeur. Certains paramètres nommés dans les fonctions ont par défaut la valeur None, ce qui indique un comportement par défaut spécifique.

Remarque

Une chaîne vide possède un type de données différent de None ou null.

List

Un tableau, tel que [1,2,3,4].

  • Certaines fonctions acceptent des listes en tant que paramètres. Exemple : e_dict_map("dict data", ["f1", "f2", "f3"], ...).

  • Certaines fonctions renvoient des listes. Exemple : json_select renvoie une liste lors de la sélection d'un tableau.

Tuple

Fonctionne comme une liste. Exemple : (1,2,3,4).

Dictionary (Dict)

Une collection de paires clé-valeur au format {"key": "value", "k2": "v2", ...}. Les clés sont généralement des chaînes uniques. Les valeurs peuvent être de n'importe quel type répertorié ci-dessus. Les dictionnaires utilisent le hachage et ne sont pas ordonnés.

  • Un événement est un type de dictionnaire spécial.

  • Certaines fonctions acceptent des dictionnaires dans des formats spécifiques. Exemple : {"key": [1,2,3], "key2": {"k3": "v3"}}.

  • Les dictionnaires servent également de données d'entrée dans les mappages de dictionnaire.

Boolean (Bool)

Par exemple, True, False, true ou false.

Table

Structure de table multicolumnne. Créez des tables en chargeant du contenu CSV multiligne à partir de ressources externes ou en récupérant des données multicolumnnes depuis ApsaraDB RDS ou un Logstore. Les tables servent principalement aux mappages d'enrichissement de données ou à d'autres scénarios de configuration avancée.

Datetime object

Représente une date et une heure en mémoire. Convertissable en une chaîne d'horodatage Unix ou en une chaîne de temps formatée, ou transmissible aux fonctions dt_ pour une transformation ultérieure.

Types d'événements

La transformation des données prend en charge les types d'événements suivants.

  • Type primitif

    La transformation des données traite les données de journal sous forme de dictionnaire, par exemple {"__topic__": "access_log", "content": "....."}.

    Les clés et les valeurs du dictionnaire correspondent aux champs et aux valeurs du journal.

    Remarque

    Les clés et les valeurs des événements sont toutes deux des chaînes, et les clés doivent être uniques.

  • Champs méta

    Les champs méta incluent :

    • Champ temporel __time__ : l'horodatage Unix (secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC) au moment de l'écriture du journal. Stocké sous forme de chaîne entière.

    • Sujet __topic__ : organise les journaux dans un Logstore par sujet. Spécifiez un sujet lors de l'écriture ou de l'interrogation des journaux.

    • Source __source__ : la source du journal, telle que l'adresse IP de la machine qui a généré le journal.

  • Modification du champ temporel

    Modifiez la valeur du champ temporel pour changer l'heure de l'événement. Utilisez également des fonctions datetime pour effectuer d'autres opérations sur ce champ.

    Remarque

    Si le champ temporel est supprimé, le système utilise l'heure de traitement comme heure de l'événement lors de l'envoi du journal vers la destination.

  • Tags

    Un tag est une étiquette de journal utilisée pour la classification, au format __tag__:name.

    • Si l'enregistrement de l'adresse IP publique est activé pour le Logstore source, les journaux incluent le tag tag:__tag__:__receive_time__.

    • Les journaux Container Service contiennent plusieurs tags liés aux conteneurs, tels que __tag__:__container_name__.

    • Ajoutez ou modifiez des tags. Pour ajouter un tag nommé type, utilisez e_set("__tag__:type", "access_log").

  • Conversion automatique lors de l'affectation

    Les clés et les valeurs des événements sont des chaînes. Lorsque vous affectez une valeur ou définissez un nouveau champ, les clés et les valeurs sont automatiquement converties en chaînes. Exemple :

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

    Cela définit v1 sur la chaîne "12.3" et v2 sur la chaîne "true".

    Le tableau suivant montre comment les différents types de données sont convertis en chaînes.

    Type

    Exemple

    Type converti

    Exemple converti

    Integer

    1

    String

    "1"

    Float

    1.2

    String

    "1.2"

    Boolean

    True

    String

    "true"

    Bytes

    b"123"

    Décodé en une chaîne à l'aide de UTF-8

    "123"

    Tuple

    • Exemple 1 : (1, 2, 3)

    • Exemple 2 : ("a", 1)

    Chaîne d'une liste

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

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

    List

    • Exemple 1 : [1,2,3]

    • Exemple 2 : ["a", 1]

    String

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

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

    Dictionary

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

    String

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

    Datetime

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

    Chaîne au format ISO

    2018-10-10 10:10:10

Identifiants fixes

La transformation des données fournit des identifiants fixes pour simplifier le code et améliorer la lisibilité.

Identifiant

Type

Description

true

Boolean

Équivalent à True.

false

Boolean

Équivalent à False.

null

None

Équivalent à None.

F_TAGS

String

Expression régulière pour les champs TAG. Équivalent à "__tag__:.+".

F_META

String

Expression régulière pour les champs TAG, __topic__ et __source__. Équivalent à `__tag__:.+

__topic__

__source__`.

F_TIME

String

Nom du champ __time__. Équivalent à __time__.

F_PACK_META

String

Expression régulière pour les champs pack meta. Équivalent à `"__pack_meta__

__tag__:__pack_id__"`.

F_RECEIVE_TIME

String

Champ tag pour l'heure de réception du journal par le serveur. Équivalent à "__tag__:__receive_time__".

C_JOB_REGION

String

ID de région de la tâche de transformation des données, par exemple cn-hangzhou. Exemple : e_set("job_region", C_JOB_REGION).

C_JOB_PROJECT

String

Nom du projet de la tâche de transformation des données, par exemple my-sls-project. Exemple : e_set("job_project", C_JOB_PROJECT).

C_JOB_NAME

String

Nom de la configuration de la tâche de transformation des données, par exemple etl-1649227848-642277. Exemple : e_set("job_name", C_JOB_NAME).

C_JOB_ID

String

ID d'exécution de la tâche de transformation des données, par exemple 73b96061b8c1c2101d558139bf641ea9. Exemple : e_set("job_id", C_JOB_ID).

Objets JSON

Une fonction json_select ou json_parse analyse un objet JSON à partir d'une chaîne. Il est composé de structures de données de base. Le tableau suivant montre comment les chaînes d'entrée sont converties en objets JSON.

Chaîne

Objet JSON

Type réel

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