Tous les produits
Search
Centre de documentation

Simple Log Service:Instructions d'agrégation

Dernière mise à jour :Aug 18, 2026

Les instructions d'agrégation permettent d'analyser statistiquement, de trier et de limiter le nombre de lignes des résultats de requête de journaux.

stats

L'instruction stats analyse statistiquement les journaux, à l'instar des fonctions d'agrégation SQL telles que COUNT, SUM et AVG. Elle regroupe et agrège des champs spécifiques dans les données de journal.

Important
  • Cette instruction sert uniquement aux requêtes et à l'analyse dans un LogStore. Elle ne s'applique pas aux scénarios tels que la transformation des données, la consommation de règles SPL (Structured Process Language), les processeurs d'ingestion ou les configurations Logtail.

  • Par défaut, l'instruction stats renvoie les 100 premiers résultats d'agrégation. Pour obtenir davantage de résultats, utilisez l'instruction limit.

Syntaxe

stats <output>=<aggOperator> by <group>,[<group>...]

Paramètres

Paramètre

Type

Obligatoire

Description

output

String

Oui

Spécifie un alias pour le champ de résultat statistique.

aggOperator

SQLExp

Oui

Les fonctions d'agrégation suivantes sont prises en charge :

  • count

  • count_if

  • min

  • max

  • sum

  • avg

  • skewness

  • kurtosis

  • approx_percentile

  • approx_distinct

  • bool_and

  • bool_or

  • every

  • arbitrary

  • array_agg

group

String

Non

Spécifie la dimension d'agrégation. Cela équivaut au champ GROUP BY en SQL.

Exemples

  • Exemple 1 : Calculez le pv des journaux d'accès par ip.

    • Instruction SPL

      * | stats pv=count(*) by ip
    • Données d'entrée

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • Données de sortie

      ip: 192.168.1.2
      pv: 1
      
      ip: 192.168.1.1
      pv: 2
  • Exemple 2 : Calculez la latence min/max pour toutes les adresses ip dans le journal accesslog.

    • Instruction SPL

      * 
      | extend latencyMs=cast(latencyMs as bigint)
      | stats minLatencyMs=min(latencyMs), maxLatencyMs=max(latencyMs) by ip
    • Données d'entrée

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • Données de sortie

      ip: 192.168.1.2
      minLatencyMs: 10
      maxLatencyMs: 20
      
      ip: 192.168.1.1
      minLatencyMs: 10
      maxLatencyMs: 10
  • Exemple 3 : Calculez le total pv dans un journal d'accès.

    • Instruction SPL

      * | stats pv=count(*)
    • Données d'entrée

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • Données de sortie

      pv: 3

sort

L'instruction sort classe les résultats de requête par valeurs de champ ou par résultats statistiques, par ordre croissant (asc) ou décroissant (desc).

Important

Cette instruction sert uniquement aux requêtes et à l'analyse dans un LogStore. Elle ne s'applique pas aux scénarios tels que la transformation des données, la consommation de règles SPL, les processeurs d'ingestion ou les configurations Logtail.

Syntaxe

sort <field> [asc/desc] ,(<field> [asc/desc])

Paramètres

Paramètre

Type

Obligatoire

Description

field

String

Oui

Spécifie le champ de tri. Les types de champs suivants sont pris en charge :

  • Champs de journal d'origine, tels que status et request_time.

  • Champs statistiques, tels que count(*) et avg(response_time).

  • Champs temporels, tels que @timestamp.

asc/desc

String

Non

  • asc : Tri par ordre croissant (par défaut).

  • desc : Tri par ordre décroissant.

Exemple

Triez le journal accesslog par latencyMs.

  • Instruction SPL

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs desc
  • Données d'entrée

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • Données de sortie

    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
    
    ip: 192.168.1.1
    latencyMs: 10

limit

L'instruction limit restreint le nombre de lignes de journaux renvoyées dans les résultats de requête, ce qui permet d'éviter les problèmes de performance liés à des ensembles de résultats excessivement volumineux.

Important
  • Cette instruction sert uniquement aux requêtes et à l'analyse dans un LogStore. Elle ne s'applique pas aux scénarios tels que la transformation des données, la consommation de règles SPL, les processeurs d'ingestion ou les configurations Logtail.

  • Si vous n'utilisez pas l'instruction sort pour spécifier un ordre de tri, la sortie de l'instruction limit est aléatoire. En effet, l'ordre naturel des journaux n'est pas garanti lors du stockage.

Syntaxe

limit (<offset>,) <size>

Paramètres

Paramètre

Type

Obligatoire

Description

offset

Integer

Non

Ignores les premières offset lignes.

size

Integer

Oui

Limite du nombre de lignes.

Exemple

Triez un journal d'accès par le champ latencyMs, puis récupérez la première ligne.

  • Instruction SPL

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs
    | limit 1
  • Données d'entrée

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • Données de sortie

    ip: 192.168.1.1
    latencyMs: 20