All Products
Search
Document Center

Simple Log Service:Fungsi periode komparatif

Last Updated:Mar 26, 2026

Topik ini menjelaskan sintaks fungsi periode komparatif dan memberikan contoh penggunaannya.

Log Service mendukung fungsi periode komparatif berikut.

Penting

Jika Anda ingin menggunakan string dalam pernyataan analitik, bungkus string tersebut dengan tanda petik tunggal (''). String yang tidak dibungkus atau dibungkus dengan tanda petik ganda ("") menunjukkan nama field atau nama kolom. Misalnya, 'status' menunjukkan string status, sedangkan status atau "status" menunjukkan field log status.

Function

Syntax

Description

SQL

SPL

compare function

compare(x, n)

Membandingkan hasil pada periode waktu saat ini dengan hasil dari periode n detik sebelumnya.

×

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

Membandingkan hasil pada periode waktu saat ini dengan hasil dari periode n1, n2, n3... detik sebelumnya.

×

ts_compare function

ts_compare(x, n)

Membandingkan hasil untuk waktu yang disejajarkan (misalnya, per jam) pada periode waktu saat ini dengan hasil pada waktu yang sesuai dari periode n detik sebelumnya.

×

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

Membandingkan hasil untuk waktu yang disejajarkan (misalnya, per jam) pada periode waktu saat ini dengan hasil pada waktu yang sesuai dari periode n1, n2, n3... detik sebelumnya.

×

Penting
  • Fungsi ts_compare memerlukan klausa GROUP BY dengan satu kolom waktu.

  • Fungsi compare dan ts_compare tidak dapat disarangkan.

compare function

Fungsi compare membandingkan hasil periode waktu saat ini dengan hasil dari satu atau beberapa periode sebelumnya.

Sintaks

  • Membandingkan hasil saat ini dengan hasil dari satu periode waktu sebelumnya.

    compare(x, n)
  • Membandingkan hasil saat ini dengan hasil dari beberapa periode waktu sebelumnya.

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

Parameter

Parameter

Description

x

Nilai yang akan dibandingkan, yang harus bertipe double atau long.

n

Jendela waktu dalam satuan detik. Contohnya: 3600 (1 jam), 86400 (1 hari), 604800 (1 minggu), atau 31622400 (1 tahun).

Nilai kembalian

Mengembalikan sebuah array. Untuk offset waktu tunggal n, formatnya adalah [current_result, previous_result, ratio]. Ketika beberapa offset waktu (n1, n2, ...) ditentukan, formatnya adalah [current_result, previous_result_1, previous_result_2, ..., ratio_1, ratio_2, ...].

Contoh

  • Contoh 1: Hitung rasio jumlah tampilan halaman (PVs) antara jam saat ini dan jam yang sama pada hari sebelumnya.

    Tetapkan rentang waktu untuk kueri dan analisis ke 1 Hour (aligned) dan jalankan pernyataan kueri berikut. Dalam pernyataan tersebut, 86400 menentukan offset waktu sebesar 86.400 detik (1 hari), dan log adalah nama penyimpanan log.

    • Tampilkan hasil dalam bentuk array

      • Pernyataan kueri (Debug)

        * |
        SELECT
          compare(PV, 86400)
        FROM  (
            SELECT
              count(*) AS PV
            FROM      log
          )
      • Hasil kueri dan analisisPV比

        • 3337.0: Jumlah PV untuk jam saat ini, misalnya dari pukul 14:00:00 hingga 15:00:00 pada tanggal 2020-12-25.

        • 3522.0: Jumlah PV untuk jam yang sama pada hari sebelumnya, misalnya dari pukul 14:00:00 hingga 15:00:00 pada tanggal 2020-12-24.

        • 0.947473026689381: Rasio jumlah PV antara jam saat ini dan jam yang sama pada hari sebelumnya.

    • Tampilkan hasil dalam kolom terpisah

      • Pernyataan kueri (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
              )
          )

        Fungsi compare mengembalikan sebuah array. Dalam kueri ini, diff adalah alias untuk array hasil, dan diff[1] mengekstraksi elemen pertama dari array tersebut.

      • Hasil kueri dan analisis同比结果

        • 3337.0: Jumlah PV untuk jam saat ini, misalnya dari pukul 14:00:00 hingga 15:00:00 pada tanggal 2020-12-25.

        • 3522.0: Jumlah PV untuk jam yang sama pada hari sebelumnya, misalnya dari pukul 14:00:00 hingga 15:00:00 pada tanggal 2020-12-24.

        • 0.947473026689381: Rasio jumlah PV antara jam saat ini dan jam yang sama pada hari sebelumnya.

  • Contoh 2: Hitung jumlah permintaan berdasarkan status dan metode untuk jam saat ini, lalu bandingkan jumlah tersebut dengan jumlah dari jam sebelumnya.

    Tetapkan rentang waktu untuk kueri dan analisis ke 1 Hour (aligned) dan jalankan pernyataan kueri berikut. Dalam pernyataan tersebut, 3600 menentukan offset waktu sebesar 3.600 detik (1 jam), dan log adalah nama penyimpanan log.

    • Pernyataan kueri (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
    • Hasil kueri dan analisis同比和环比函数

ts_compare function

Fungsi ts_compare membandingkan hasil untuk waktu yang disejajarkan (misalnya, per jam) pada periode saat ini dengan hasil pada waktu yang sesuai dari satu atau beberapa periode sebelumnya.

Penting

Fungsi ts_compare memerlukan klausa GROUP BY dengan satu kolom waktu.

Sintaks

  • Membandingkan hasil untuk waktu yang disejajarkan dengan hasil pada waktu yang sesuai dari satu periode waktu sebelumnya.

    ts_compare(x, n)
  • Membandingkan hasil untuk waktu yang disejajarkan dengan hasil pada waktu yang sesuai dari beberapa periode waktu sebelumnya.

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

Parameter

Parameter

Description

x

Nilai yang akan dibandingkan, yang harus bertipe double atau long.

n

Jendela waktu dalam satuan detik. Contohnya: 3600 (1 jam), 86400 (1 hari), 604800 (1 minggu), atau 31622400 (1 tahun).

Nilai kembalian

Mengembalikan sebuah array. Untuk offset waktu tunggal n, formatnya adalah [current_result, previous_result, ratio, previous_UNIX_timestamp]. Ketika beberapa offset waktu (n1, n2, ...) ditentukan, formatnya adalah [current_result, previous_result_1, previous_result_2, ..., ratio_1, ratio_2, ..., previous_UNIX_timestamp_1, previous_UNIX_timestamp_2, ...].

Contoh

  • Contoh 1: Bandingkan jumlah tampilan halaman (PVs) per jam hari ini dengan jumlah pada jam yang sama selama dua hari sebelumnya.

    Tetapkan rentang waktu untuk kueri dan analisis ke Today (aligned) dan jalankan pernyataan kueri berikut. Dalam pernyataan tersebut, 86400 menentukan offset satu hari, 172800 menentukan offset dua hari, log adalah nama penyimpanan log, dan date_trunc('hour',__time__) menyejajarkan stempel waktu ke tingkat jam.

    • Tampilkan hasil dalam bentuk array

      • Pernyataan kueri (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
      • Hasil kueri dan analisis每分钟PV

        • 1174.0: Jumlah PV untuk periode waktu saat ini, misalnya pukul 00:00 hingga 01:00 pada tanggal 2022-09-22.

        • 1191.0: Jumlah PV untuk periode waktu yang sama pada hari sebelumnya, misalnya pukul 00:00 hingga 01:00 pada tanggal 2022-09-21.

        • 1253.0: Jumlah PV untuk periode waktu yang sama dua hari sebelumnya, misalnya pukul 00:00 hingga 01:00 pada tanggal 2022-09-20.

        • 0.9857262804366079: Rasio jumlah PV antara jam saat ini dan jam yang sama pada hari sebelumnya.

        • 0.936951316839585: Rasio jumlah PV antara jam saat ini dan jam yang sama dua hari sebelumnya.

        • 1663689600.0: Stempel waktu UNIX untuk pukul 00:00 pada tanggal 2022-09-21.

        • 1663603200.0: Stempel waktu UNIX untuk pukul 00:00 pada tanggal 2022-09-20.

        Catatan

        Stempel waktu dalam hasil dapat berbeda tergantung pada kapan Anda menjalankan kueri.

    • Tampilkan hasil dalam kolom terpisah

      • Pernyataan kueri (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
          )
      • Hasil kueri dan analisis同比

  • Contoh 2: Hitung perubahan jumlah tampilan halaman dari jam ke jam untuk hari ini.

    Tetapkan rentang waktu untuk kueri dan analisis ke Today (Relative) dan jalankan pernyataan kueri berikut. Dalam pernyataan tersebut, 3600 menentukan offset 3.600 detik (1 jam), log adalah nama penyimpanan log, dan date_trunc('hour',__time__ ) menyejajarkan stempel waktu ke tingkat jam.

    • Pernyataan kueri (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
    • Hasil kueri dan analisists_compare

      Catatan

      Stempel waktu dalam hasil dapat berbeda tergantung pada kapan Anda menjalankan kueri.