Tous les produits
Search
Centre de documentation

Simple Log Service:Fonctions de comparaison de périodes

Dernière mise à jour :Aug 18, 2026

Les fonctions de comparaison de périodes comparent les résultats de requête sur différentes fenêtres temporelles, permettant ainsi des analyses d'une année sur l'autre et d'une période à l'autre.

Simple Log Service (SLS) prend en charge les fonctions de comparaison de périodes suivantes.

Important

Si vous souhaitez utiliser des chaînes de caractères dans les instructions d'analyse, entourez-les de guillemets simples (''). Les chaînes non entourées de guillemets ou celles entourées de guillemets doubles ("") désignent des noms de champ ou de colonne. Par exemple, 'status' indique la chaîne de caractères « status », tandis que status ou "status" fait référence au champ de journal « status ».

Nom de la fonction

Syntaxe

Description

Prise en charge SQL

Prise en charge SPL

Fonction compare

compare(x, n)

Compare le résultat calculé pour la période actuelle avec le résultat obtenu il y a n secondes.

√

×

compare(x, n1, n2, n3...)

Compare le résultat calculé pour la période actuelle avec les résultats obtenus il y a n1, n2, n3... secondes.

√

×

Fonction ts_compare

ts_compare(x, n)

Compare le résultat pour une heure alignée (par exemple, par heure) de la période actuelle avec le résultat obtenu à la même heure il y a n secondes.

√

×

ts_compare(x, n1, n2, n3...)

Compare le résultat pour une heure alignée (par exemple, par heure) de la période actuelle avec les résultats obtenus aux mêmes heures il y a n1, n2, n3... secondes.

√

×

Important
  • La fonction ts_compare nécessite une clause GROUP BY portant sur une seule colonne temporelle.

  • Les fonctions compare et ts_compare ne peuvent pas être imbriquées.

Fonction compare

Cette fonction compare le résultat calculé pour la période actuelle avec les résultats d'une ou plusieurs périodes précédentes.

Syntaxe

  • Compare le résultat calculé pour la période actuelle avec le résultat obtenu il y a n secondes.

    compare(x, n)
  • Compare le résultat calculé pour la période actuelle avec les résultats obtenus il y a n1, n2, n3... secondes.

    compare(x, n1, n2, n3...)

Paramètres

Paramètre

Description

x

Valeur à comparer. Elle doit être de type double ou long.

n

Fenêtre temporelle exprimée en secondes. Exemples : 3600 (1 heure), 86400 (1 jour), 604800 (1 semaine) ou 31622400 (1 an).

Valeur de retour

Renvoie un tableau. Pour un seul décalage temporel n, le format est [current_result, previous_result, ratio]. Lorsque plusieurs décalages temporels (n1, n2, ...) sont spécifiés, le format devient [current_result, previous_result_1, previous_result_2, ..., ratio_1, ratio_2, ...].

Exemples

  • Exemple 1 : calculez le ratio des pages vues (PV) entre l'heure actuelle et la même heure la veille.

    Définissez la plage de temps pour la requête et l'analyse sur 1 Hour (Aligned Time) et exécutez l'instruction de requête suivante. Dans cette instruction, 86400 représente l'heure actuelle moins 86 400 secondes (1 jour), et log correspond au nom du Logstore.

    • Affichage des résultats sous forme de tableau

      • Instruction de requête (Debug)

        * |
        SELECT
          compare(PV, 86400)
        FROM  (
            SELECT
              count(*) AS PV
            FROM      log
          )
      • Résultats de la requête et de l'analyse

        • 3337.0 : nombre de pages vues pour l'heure actuelle (par exemple, de 14 h 00 à 15 h 00 le 25 décembre 2020).

        • 3522.0 : nombre de pages vues pour la même heure la veille (par exemple, de 14 h 00 à 15 h 00 le 24 décembre 2020).

        • 0.947473026689381 : ratio des pages vues entre l'heure actuelle et la même heure la veille.

    • Affichage des résultats dans des colonnes distinctes

      • Instruction de requête (Debug)

        * |
        SELECT
          diff [1] AS today,
          diff [2] AS yesterday,
          diff [3] AS ratio
        FROM  (
            SELECT
              compare(PV, 86400) AS diff
            FROM      (
                SELECT
                  count(*) AS PV
                FROM          log
              )
          )

        La fonction compare renvoie un tableau, où diff est un alias pour le résultat, et diff [1] permet d'obtenir la première valeur du tableau.

      • Résultats de la requête et de l'analyse

        • 3337.0 : nombre de pages vues pour l'heure actuelle (par exemple, de 14 h 00 à 15 h 00 le 25 décembre 2020).

        • 3522.0 : nombre de pages vues pour la même heure la veille (par exemple, de 14 h 00 à 15 h 00 le 24 décembre 2020).

        • 0.947473026689381 : ratio des pages vues entre l'heure actuelle et la même heure la veille.

  • Exemple 2 : pour l'heure actuelle, comptez les requêtes pour chaque combinaison de statut et de méthode de requête, puis comparez ce résultat avec le compte de l'heure précédente.

    Sélectionnez 1 Hour (Aligned Time) comme plage de temps pour la requête et l'analyse, puis exécutez l'instruction de requête et d'analyse suivante. Dans cette instruction, 3600 représente l'heure actuelle moins 3 600 secondes (1 heure), et log correspond au nom du Logstore.

    • Instruction de requête (Debug)

      * |
      SELECT
        status,
        request_method,
        compare(PV, 3600)
      FROM  (
          SELECT
            status,
            request_method,
            count(*) AS PV
          FROM      log
          GROUP BY
            status,
            request_method
        )
      GROUP BY
        status,
        request_method
    • Résultats de la requête et de l'analyse : les résultats comprennent trois colonnes : status, request_method et _col2. La colonne _col2 contient le tableau renvoyé par la fonction compare au format [current_period_value, previous_period_value, ratio]. Par exemple, une ligne correspondant à un code de statut 501 et à une méthode de requête GET renvoie [39.0, 13.0, 3.0]. Cela indique un nombre de pages vues de 39 pour la période actuelle, de 13 pour la période précédente et un ratio d'une période à l'autre de 3,0.

Fonction ts_compare

Cette fonction compare le résultat calculé pour une heure alignée (par exemple, par heure) de la période actuelle avec les résultats obtenus aux mêmes heures lors des périodes précédentes.

Important

La fonction ts_compare nécessite une clause GROUP BY portant sur une seule colonne temporelle.

Syntaxe

  • Compare le résultat calculé pour une heure alignée de la période actuelle avec le résultat obtenu à la même heure alignée il y a n secondes.

    ts_compare(x, n)
  • Compare le résultat calculé pour une heure alignée de la période actuelle avec les résultats obtenus aux mêmes heures il y a n1, n2, n3... secondes.

    ts_compare(x, n1, n2, n3...)

Paramètres

Paramètre

Description

x

Valeur à comparer. Elle doit être de type double ou long.

n

Fenêtre temporelle exprimée en secondes. Exemples : 3600 (1 heure), 86400 (1 jour), 604800 (1 semaine) ou 31622400 (1 an).

Valeur de retour

Renvoie un tableau. Pour un seul décalage temporel n, le format est [current_result, previous_result, ratio, previous_unix_timestamp]. Lorsque plusieurs décalages temporels (n1, n2, ...) sont spécifiés, le format devient [current_result, previous_result_1, previous_result_2, ..., ratio_1, ratio_2, ..., previous_unix_timestamp_1, previous_unix_timestamp_2, ...].

Exemples

  • Exemple 1 : comparez les pages vues (PV) horaires d'aujourd'hui avec celles de la même heure la veille et l'avant-veille.

    Définissez la plage de temps pour la requête et l'analyse sur Today (Aligned Time) et exécutez l'instruction de requête suivante. Dans cette instruction, 86400 représente l'heure actuelle moins 86 400 secondes (1 jour), 172800 représente l'heure actuelle moins 172 800 secondes (2 jours), log correspond au nom du Logstore, et date_trunc('hour',__time__ ) utilise la fonction date_trunc pour aligner l'heure à l'heure pleine.

    • Affichage des résultats sous forme de tableau

      • Instruction de requête (Debug)

        * |
        SELECT
          time,
          ts_compare(PV, 86400, 172800) as diff
        FROM  (
            SELECT
              count(*) as PV,
              date_trunc('hour', __time__) AS time
            FROM      log
            GROUP BY
              time
          )
        GROUP BY
          time
        ORDER BY
          time
      • Résultats de la requête et de l'analyse

        • 1174.0 : nombre de pages vues pour la période actuelle (par exemple, de 00 h 00 à 01 h 00 le 22 septembre 2022).

        • 1191.0 : nombre de pages vues pour la même période la veille (par exemple, de 00 h 00 à 01 h 00 le 21 septembre 2022).

        • 1253.0 : nombre de pages vues pour la même période l'avant-veille (par exemple, de 00 h 00 à 01 h 00 le 20 septembre 2022).

        • 0.9857262804366079 : ratio des pages vues entre l'heure actuelle et la même heure la veille.

        • 0.936951316839585 : ratio des pages vues entre l'heure actuelle et la même heure l'avant-veille.

        • 1663689600.0 : horodatage UNIX pour 00 h 00 le 21 septembre 2022.

        • 1663603200.0 : horodatage UNIX pour 00 h 00 le 20 septembre 2022.

        Remarque

        Les horodatages présents dans les résultats peuvent varier selon le moment où vous exécutez la requête.

    • Affichage des résultats dans des colonnes distinctes

      • Instruction de requête (Debug)

        * |
        SELECT
          time,
          diff [1] AS day1,
          diff [2] AS day2,
          diff [3] AS day3,
          diff [4] AS ratio1,
          diff [5] AS ratio2
        FROM  (
            SELECT
              time,
              ts_compare(PV, 86400, 172800) AS diff
            FROM      (
                SELECT
                  count(*) as PV,
                  date_trunc('hour', __time__) AS time
                FROM          log
                GROUP BY
                  time
              )
            GROUP BY
              time
            ORDER BY
              time
          )
      • Résultats de la requête et de l'analyse : chaque ligne du tableau de résultats représente une heure de données. time correspond à l'horodatage horaire. day1, day2 et day3 indiquent respectivement le nombre de pages vues pour la journée en cours, la veille et l'avant-veille. ratio1 représente le ratio entre la journée en cours et la veille, tandis que ratio2 correspond au ratio entre la journée en cours et l'avant-veille. Une valeur proche de 1,0 signifie qu'il y a peu de variation.

  • Exemple 2 : calculez la variation horaire des pages vues (PV) pour aujourd'hui.

    Définissez la plage de temps pour la requête et l'analyse sur Today (relative) et exécutez l'instruction de requête suivante. Dans cette instruction, 3600 représente l'heure actuelle moins 3 600 secondes (1 heure), log correspond au nom du Logstore, et date_trunc('hour',__time__ ) utilise la fonction date_trunc pour aligner l'heure à l'heure pleine.

    • Instruction de requête (Debug)

      * |
      SELECT
        time,
        ts_compare(PV, 3600) AS data
      FROM(
          SELECT
            date_trunc('hour', __time__) AS time,
            count(*) AS PV
          FROM      log
          GROUP BY
            time
          ORDER BY
            time
        )
      GROUP BY
        time
    • Les résultats de la requête et de l'analyse contiennent deux colonnes : time et data. Par exemple, lorsque time vaut 2021-01-27 00:00:00.000, data est égal à [1160.0,10034.0,0.11560693641618497,1611673200.0]. Lorsque time vaut 2021-01-27 01:00:00.000, data est égal à [10177.0,1160.0,8.773275862068966,1611676800.0]. Lorsque time vaut 2021-01-27 02:00:00.000, data est égal à [26804.0,10177.0,2.633782057580195,1611680400.0].

      Remarque

      Les horodatages présents dans les résultats peuvent varier selon le moment où vous exécutez la requête.