全部产品
Search
文档中心

Simple Log Service:Fungsi perbandingan periode

更新时间:Jan 08, 2026

Topik ini menjelaskan sintaks dasar dan memberikan contoh penggunaan fungsi perbandingan periode-over-periode.

Layanan Log Sederhana mendukung fungsi perbandingan periode-over-periode berikut.

Penting

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

Function

Syntax

Description

Supported in SQL

Support for SPL

compare function

compare(x, n)

Membandingkan hasil perhitungan periode saat ini dengan hasil perhitungan periode n detik sebelumnya.

×

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

Membandingkan hasil perhitungan periode saat ini dengan hasil perhitungan beberapa periode n1, n2, dan n3 detik sebelumnya.

×

ts_compare function

ts_compare(x, n)

Membandingkan hasil perhitungan suatu jangka waktu, seperti per jam, pada periode saat ini dengan hasil perhitungan jangka waktu n detik sebelumnya.

×

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

Membandingkan hasil perhitungan suatu jangka waktu, seperti per jam, pada periode saat ini dengan hasil perhitungan jangka waktu n1, n2, dan n3 detik sebelumnya.

×

Penting
  • Anda harus mengelompokkan hasil fungsi ts_compare berdasarkan kolom waktu menggunakan klausa GROUP BY. Hanya satu kolom waktu yang didukung.

  • Fungsi compare dan ts_compare tidak dapat disarangkan.

compare function

Fungsi compare membandingkan hasil perhitungan periode saat ini dengan hasil perhitungan periode yang n detik sebelumnya.

Sintaks

  • Membandingkan hasil perhitungan periode saat ini dengan hasil perhitungan periode yang n detik sebelumnya.

    compare(x, n)
  • Membandingkan hasil perhitungan periode saat ini dengan hasil perhitungan beberapa periode yang masing-masing n1, n2, dan n3 detik sebelumnya.

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

Parameter

Parameter

Description

x

Nilainya bertipe double atau long.

n

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

Tipe nilai kembalian

Array. Formatnya adalah [hasil saat ini, hasil dari n detik lalu, rasio hasil saat ini terhadap hasil dari n detik lalu].

Contoh

  • Contoh 1: Hitung rasio jumlah tampilan halaman (PV) website untuk jam saat ini dibandingkan dengan jam yang sama kemarin.

    Tetapkan jangka waktu kueri ke 1 Hour (Time Frame) dan jalankan pernyataan kueri berikut. Dalam pernyataan tersebut, 86400 menentukan periode 86.400 detik (1 hari) sebelum waktu saat ini, dan log menentukan nama Logstore.

    • Hasil kueri dan analisis dikembalikan sebagai array.

      • Pernyataan kueri (Debug)

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

        • 3337.0 adalah jumlah PV pada jam saat ini, misalnya dari pukul 14.00.00 hingga 15.00.00 pada 25 Desember 2020.

        • 3522.0 adalah jumlah PV pada jam yang sama kemarin, misalnya dari pukul 14.00.00 hingga 15.00.00 pada 24 Desember 2020.

        • 0.947473026689381 adalah rasio PV pada jam saat ini dibandingkan dengan jam yang sama kemarin.

    • Tampilkan hasil kueri dan analisis 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 array. Dalam pernyataan ini, diff adalah alias untuk hasilnya, dan diff[1] mengambil nilai pertama dari array tersebut.

      • Hasil kueri dan analisis同比结果

        • 3337.0 adalah jumlah PV pada jam saat ini, misalnya dari pukul 14.00.00 hingga 15.00.00 pada 25 Desember 2020.

        • 3522.0 adalah jumlah PV pada jam yang sama kemarin, misalnya dari pukul 14.00.00 hingga 15.00.00 pada 24 Desember 2020.

        • 0.947473026689381 adalah rasio PV pada jam saat ini dibandingkan dengan jam yang sama kemarin.

  • Contoh 2: Hitung jumlah permintaan untuk setiap metode permintaan dan status pada jam saat ini, lalu bandingkan hasilnya dengan data pada jam yang sama kemarin.

    Tetapkan jangka waktu kueri ke 1 Hour (Time Frame) dan jalankan pernyataan kueri berikut. Dalam pernyataan tersebut, 3600 menentukan periode 3.600 detik (1 jam) sebelum waktu saat ini, dan log menentukan nama Logstore.

    • 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 perhitungan suatu jangka waktu, seperti per jam, pada periode saat ini dengan hasil perhitungan jangka waktu yang n detik sebelumnya.

Penting

Anda harus mengelompokkan hasil fungsi ts_compare berdasarkan kolom waktu menggunakan klausa GROUP BY. Hanya satu kolom waktu yang didukung.

Sintaks

  • Membandingkan hasil perhitungan suatu jangka waktu, seperti per jam, pada periode saat ini dengan hasil perhitungan jangka waktu yang n detik sebelumnya.

    ts_compare(x, n)
  • Membandingkan hasil perhitungan suatu jangka waktu, seperti per jam, pada periode saat ini dengan hasil perhitungan jangka waktu yang masing-masing n1, n2, dan n3 detik sebelumnya.

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

Parameter

Parameter

Description

x

Nilainya bertipe double atau long.

n

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

Tipe nilai kembalian

Array. Formatnya adalah [hasil saat ini, hasil dari n detik lalu, rasio hasil saat ini terhadap hasil dari n detik lalu, Stempel waktu UNIX dari n detik lalu].

Contoh

  • Contoh 1: Hitung rasio PV website per jam hari ini dibandingkan dengan PV pada jam yang sama kemarin dan dua hari lalu.

    Tetapkan jangka waktu kueri ke Today (Time Frame) dan jalankan pernyataan kueri berikut. Dalam pernyataan tersebut, 86400 menentukan periode 86.400 detik (1 hari) sebelum waktu saat ini, 172800 menentukan periode 172.800 detik (2 hari) sebelum waktu saat ini, log menentukan nama Logstore, dan date_trunc('hour',__time__) menggunakan fungsi date_trunc untuk menyelaraskan waktu ke jam terdekat.

    • Tampilkan hasil kueri dan analisis 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 adalah jumlah PV pada periode saat ini, misalnya dari pukul 00.00 hingga 01.00 pada 22 September 2022.

        • 1191.0 adalah jumlah PV pada periode yang sama kemarin, misalnya dari pukul 00.00 hingga 01.00 pada 21 September 2022.

        • 1253.0 adalah jumlah PV pada periode yang sama dua hari lalu, misalnya dari pukul 00.00 hingga 01.00 pada 20 September 2022.

        • 0.9857262804366079 adalah rasio PV pada periode saat ini dibandingkan dengan periode yang sama kemarin.

        • 0.936951316839585 adalah rasio PV pada periode saat ini dibandingkan dengan periode yang sama dua hari lalu.

        • 1663689600.0 adalah Stempel waktu UNIX untuk pukul 00.00 pada 21 September 2022.

        • 1663603200.0 adalah Stempel waktu UNIX untuk pukul 00.00 pada 20 September 2022.

        Catatan

        Waktu dalam hasil kueri dan analisis dapat berbeda tergantung pada saat Anda menjalankan kueri.

    • Tampilkan hasil kueri dan analisis 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 PV website per jam untuk hari ini.

    Tetapkan jangka waktu kueri ke Today (Relative) dan jalankan pernyataan kueri berikut. Dalam pernyataan tersebut, 3600 menentukan periode 3.600 detik (1 jam) sebelum waktu saat ini, log menentukan nama Logstore, dan date_trunc('hour',__time__) menggunakan fungsi date_trunc untuk menyelaraskan waktu ke jam terdekat.

    • 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

      Waktu dalam hasil kueri dan analisis dapat berbeda tergantung pada saat Anda menjalankan kueri.