Tous les produits
Search
Centre de documentation

Simple Log Service:Syntaxe de l'analyse par balayage

Dernière mise à jour :Sep 22, 2026

Simple Log Service propose une fonctionnalité d'analyse par balayage qui examine les journaux en fonction de champs spécifiés afin de renvoyer des résultats d'analyse. Cette fonctionnalité vous permet d'analyser les journaux sans configurer d'index. Cette rubrique décrit la syntaxe de base de l'analyse par balayage.

Fonctionnement

Lorsque Simple Log Service reçoit une demande d'analyse par balayage, il exécute les étapes suivantes :

  1. Exécutez l'instruction de recherche pour interroger les journaux.

    Important

    L'instruction de recherche nécessite des index. Par exemple, avant d'exécuter l'instruction status:200 | set session mode=scan;SELECT api, count(*) AS PV GROUP BY api, vous devez créer un index pour le champ status. Vous n'avez pas besoin de créer d'index pour le champ api.

  2. Parcourez les résultats de la requête de recherche en fonction des champs spécifiés dans l'instruction d'analyse et extrayez les données correspondantes.

  3. Exécutez l'instruction d'analyse pour agréger et analyser les données extraites, puis renvoyez les résultats.

Syntaxe de base

Pour utiliser la fonctionnalité d'analyse par balayage, ajoutez set session mode=scan; avant l'instruction d'analyse basée sur la syntaxe SQL standard.

Search statement | set session mode=scan;Analytic statement based on the standard SQL syntax

Exemple

* and status:200 | set session mode=scan;SELECT api, count(*) AS PV GROUP BY api

Limites

  • En mode d'analyse par balayage, tous les champs sont considérés comme étant de type varchar.

    Pour analyser des champs d'autres types de données, utilisez la fonction cast afin de convertir les types. Pour plus d'informations, consultez la rubrique Fonction Cast.

    Par exemple, pour calculer la latence moyenne des opérations API, vous devez utiliser la fonction cast afin de convertir le type du champ latency en bigint, car la fonction avg nécessite une entrée numérique.

    status:200 | set session mode=scan;SELECT avg(cast(latency AS bigint)) AS 'Average latency', api GROUP BY api
  • En mode d'analyse par balayage, Simple Log Service parcourt les journaux pour extraire les données des champs spécifiés dans l'instruction d'analyse. Les index de champ existants ne sont pas pris en compte.

    Par exemple, supposons que vous ayez créé un index de type long pour le champ status. Si vous exécutez l'instruction suivante pour effectuer une analyse par balayage, l'index du champ status n'est pas utilisé.

    * | set session mode=scan;SELECT count(1) AS pv, api WHERE cast(status AS bigint) = 200 GROUP BY api

    Dans ce scénario, nous vous recommandons d'utiliser l'instruction suivante.

    Remarque

    Si vous avez créé un index pour un champ, placez-le avant la barre verticale (|) en tant que condition de filtrage.

    status:200 | set session mode=scan;SELECT count(1) as pv, api GROUP BY api
  • En mode d'analyse par balayage, la quantité de données analysables est limitée. Dans un shard, vous pouvez analyser jusqu'à 500 000 journaux et en balayer jusqu'à 10 millions. Si vous utilisez une instruction de recherche, la limite de balayage correspond au nombre de journaux renvoyés par cette instruction. Si l'une des limites précédentes est dépassée, le système renvoie les résultats d'analyse uniquement pour une partie des journaux et indique que les résultats sont imprécis.

    Utilisez les méthodes suivantes pour éviter des résultats imprécis :

    • Privilégiez l'analyse basée sur les index pour les données structurées à grande échelle. Vous devez créer des index de champ et activer la fonctionnalité d'analyse des journaux.

    • Utilisez des instructions de recherche pour filtrer les journaux et réduire la quantité de données à balayer. Assurez-vous d'avoir créé des index pour les champs spécifiés dans les instructions de recherche.

    • Réduisez la plage de temps de la requête afin de diminuer le volume de données à balayer.

  • En mode d'analyse par balayage, l'instruction *|select * n'est pas prise en charge.

  • Pour analyser des données dans plusieurs Logstores à l'aide d'une clause JOIN en mode d'analyse par balayage, vous devez ajouter les noms des Logstores devant les champs. Format : LogstoreName.key.

Comparaison entre l'analyse basée sur les index et l'analyse par balayage

Élément

Analyse basée sur les index

Analyse par balayage

Syntaxe

Search statement | Analytic statement based on the standard SQL syntax

Search statement | set session mode=scan; Analytic statement based on the standard SQL syntax

Configuration des index requise

Vous devez configurer des index pour les champs et activer la fonctionnalité d'analyse des journaux pour ces champs.

Aucune configuration d'index ni activation de la fonctionnalité n'est requise.

Important

L'instruction de recherche située avant la barre verticale (|) nécessite des index.

Syntaxe SQL

Un large éventail de syntaxes et de fonctions SQL est pris en charge. Pour plus d'informations, consultez la rubrique Présentation des fonctions.

Les syntaxes et fonctions SQL prises en charge pour l'analyse basée sur les index sont disponibles. Des limites d'utilisation s'appliquent dans certains scénarios. Pour plus d'informations, consultez la section Limites.

Analyse

Des centaines de millions de lignes de journaux peuvent être analysées. Pour plus d'informations, consultez la rubrique Présentation de la requête et de l'analyse des journaux.

Vous pouvez activer la fonctionnalité Dedicated SQL pour effectuer une analyse avancée.

Des millions de lignes de journaux peuvent être analysées.

Si vous souhaitez analyser un grand volume de données, nous vous recommandons d'utiliser d'abord une instruction de recherche pour filtrer les journaux. Une instruction de recherche nécessite des index.

Facturation

Le trafic d'index et le stockage d'index sont facturés. Pour plus d'informations, consultez la rubrique Éléments facturables par fonctionnalité.

Les balayages sont facturés en fonction du trafic de balayage, qui correspond au volume de données renvoyé après le balayage. Le système identifie les journaux en fonction des résultats de la requête basée sur les index.