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.
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
statsrenvoie les 100 premiers résultats d'agrégation. Pour obtenir davantage de résultats, utilisez l'instructionlimit.
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 :
|
|
group |
String |
Non |
Spécifie la dimension d'agrégation. Cela équivaut au champ GROUP BY en SQL. |
Exemples
-
Exemple 1 : Calculez le
pvdes journaux d'accès parip.-
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/maxpour toutes les adressesipdans le journalaccesslog.-
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
pvdans 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).
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 :
|
|
asc/desc |
String |
Non |
|
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.
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
sortpour spécifier un ordre de tri, la sortie de l'instructionlimitest 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 |
|
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