Tous les produits
Search
Centre de documentation

Simple Log Service:Instructions pour les opérations sur les champs

Dernière mise à jour :Aug 18, 2026

Cette rubrique décrit l'utilisation des instructions d'opération sur les champs et fournit des exemples.

project

Cette instruction conserve les champs correspondant à un modèle donné et renomme les champs spécifiés. Lors de l'exécution, le système traite d'abord toutes les expressions de conservation des champs, puis les expressions de renommage.

Important

Les champs temporels par défaut __time__ et __time_ns_part__ sont réservés et ne peuvent pas être renommés ni écrasés. Pour plus d'informations, consultez la section Champ temporel.

Syntaxe

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

Paramètres

Paramètre

Type

Obligatoire

Description

wildcard

Bool

Non

Indique s'il faut activer la correspondance de modèle avec caractères génériques. Par défaut, la correspondance exacte des champs est utilisée. Ajoutez ce paramètre pour activer la correspondance avec caractères génériques.

field-pattern

FieldPattern

Oui

Le nom du champ à conserver, ou une combinaison d'un nom de champ et de caractères génériques pour traiter tous les champs correspondants.

output

Field

Oui

Le nouveau nom du champ. Vous ne pouvez pas renommer plusieurs champs vers le même champ cible.

Important

Si le nouveau champ porte le même nom qu'un champ présent dans les données d'entrée, consultez la section Conservation et écrasement des anciennes et nouvelles valeurs pour connaître la politique d'attribution des valeurs.

field

Field

Oui

Le nom d'origine du champ à renommer.

  • Si le champ n'existe pas dans les données d'entrée, le système n'effectue pas l'opération de renommage.

  • Un champ ne peut pas être renommé plusieurs fois.

Exemples

  • Exemple 1 : Conserver des champs spécifiques.

    * | project level, err_msg
  • Exemple 2 : Renommer des champs.

    * | project log_level=level, err_msg
  • Exemple 3 : Conserver le champ qui correspond exactement à __tag__:*.

    * | project "__tag__:*"

project-away

Cette instruction supprime les champs correspondant à un modèle donné et conserve tous les autres champs.

Important

Cette instruction conserve par défaut les champs temporels __time__ et __time_ns_part__. Pour plus d'informations, consultez la section Champs temporels.

Syntaxe

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

Paramètres

Paramètre

Type

Obligatoire

Description

wildcard

Bool

Non

Indique s'il faut activer la correspondance de modèle avec caractères génériques. Par défaut, la correspondance exacte des champs est utilisée. Ajoutez ce paramètre pour activer la correspondance avec caractères génériques.

field-pattern

FieldPattern

Oui

Le nom du champ à supprimer, ou une combinaison d'un nom de champ et de caractères génériques pour traiter tous les champs correspondants.

project-rename

Cette instruction renomme les champs spécifiés et conserve tous les autres champs.

Important

Les champs temporels par défaut __time__ et __time_ns_part__ sont réservés et ne peuvent pas être renommés ni écrasés. Pour plus d'informations, consultez la section Champs temporels.

Syntaxe

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

Paramètres

Paramètre

Type

Obligatoire

Description

output

Field

Oui

Le nouveau nom du champ. Vous ne pouvez pas renommer plusieurs champs vers le même champ cible.

Important

Si le nouveau champ porte le même nom qu'un champ présent dans les données d'entrée, consultez la section Conservation et écrasement des anciennes et nouvelles valeurs pour connaître la politique d'attribution des valeurs.

field

Field

Oui

Le nom d'origine du champ à renommer.

  • Si le champ n'existe pas dans l'entrée de données, le système n'effectue pas l'opération de renommage.

  • Un champ ne peut pas être renommé plusieurs fois.

Exemple

Renommez les champs spécifiés.

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

expand-values

Cette instruction développe la première couche d'un objet JSON dans un champ spécifié pour générer plusieurs résultats.

Important
  • Le type de données des champs de sortie est VARCHAR. Si un champ de résultat porte le même nom qu'un champ d'entrée, consultez la section Conservation et écrasement des valeurs pour obtenir des informations sur la politique de gestion des valeurs.

  • Vous ne pouvez pas effectuer d'opérations sur les champs temporels __time__ ou __time_ns_part__. Pour plus d'informations, consultez la section Champs temporels.

  • Cette instruction prend en charge la transformation des données dans la nouvelle version. Pour différents scénarios d'utilisation de SPL, consultez la section Référence générale.

Syntaxe

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

Paramètres

Paramètre

Type

Obligatoire

Description

path

JSONPath

Non

Spécifie le chemin JSON au sein du contenu du champ pour localiser le contenu à développer.

La valeur par défaut est vide, ce qui signifie que l'intégralité du contenu du champ spécifié est développée directement.

limit

Integer

Non

Le nombre maximal d'entrées développées à partir de chaque entrée de données brute. Valeurs valides : 0 et 1 à 10. Valeur par défaut : 10.

Remarque

La taille cumulative des valeurs développées pour un seul champ ne peut pas dépasser 50 Mo. Lorsque limit est défini entre 1 et 10, le nombre de lignes développées est limité par cette valeur.

Remarque

Lorsque limit est défini sur 0, le nombre de lignes développées par champ n'est pas limité. Toutefois, le volume total des données renvoyées pour tous les champs et toutes les lignes est plafonné à environ 50 Mo. Si ce plafond est dépassé, seuls les résultats partiels déjà traités sont renvoyés. Les valeurs individuelles des champs ne sont pas tronquées.

Remarque

La valeur qui déclenche le plafond est incluse dans le résultat, de sorte que les données réellement renvoyées peuvent légèrement dépasser 50 Mo. La troncature due au plafond est silencieuse et ne génère aucune erreur ni aucun avertissement.

keep

Bool

Non

Indique s'il faut conserver le champ d'origine après le développement. Par défaut, le champ d'origine n'est pas conservé. Ajoutez ce paramètre pour conserver le champ d'origine.

field

Field

Oui

Le nom du champ d'origine à développer. Le type pris en charge est VARCHAR. Si le champ spécifié n'existe pas, le système n'effectue pas l'opération de développement.

output

Field

Non

Le nom du champ cible pour le développement. S'il n'est pas spécifié, le résultat est envoyé par défaut vers le champ d'entrée.

La logique de développement du contenu d'origine est la suivante :

Tableau JSON : Développe chaque élément du tableau.

Dictionnaire JSON : Développe chaque paire clé-valeur du dictionnaire.

Autres types JSON : Renvoie la valeur initiale.

JSON non valide : Renvoie null.

Exemples

  • Exemple 1 : Développer un tableau pour produire plusieurs résultats de données. Exemple 2 : Développer un dictionnaire pour produire plusieurs résultats de données. Exemple 3 : Développer le contenu d'un chemin JSON spécifié et l'envoyer vers un nouveau champ.

    • Instruction SPL

      * | expand-values y
    • Données d'entrée

      x: 'abc'
      y: '[0,1,2]'
    • Données de sortie

      # Entry 1
      x: 'abc'
      y: '0'
      
      # Entry 2
      x: 'abc'
      y: '1'
      
      # Entry 3
      x: 'abc'
      y: '2'
    • Instruction SPL

      * | expand-values y
    • Données d'entrée

      x: 'abc'
      y: '{"a": 1, "b": 2}'
    • Données de sortie

      # Entry 1
      x: 'abc'
      y: '{"a": 1}'
      
      # Entry 2
      x: 'abc'
      y: '{"b": 2}'
    • Instruction SPL

      * | expand-values -path='$.body' -keep content as body
    • Données d'entrée

      content: '{"body": [0, {"a": 1, "b": 2}]}'
    • Données de sortie

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