全部产品
Search
文档中心

Simple Log Service:Fungsi periode perbandingan

更新时间:Jun 26, 2025

Topik ini menjelaskan sintaksis fungsi periode perbandingan dan memberikan contoh penggunaannya.

Tabel berikut menjelaskan fungsi periode perbandingan yang didukung oleh Simple Log Service.

Penting

Jika Anda ingin menggunakan string dalam pernyataan analitik, apit string tersebut dengan tanda kutip tunggal (''). String yang tidak diapit atau diapit dengan tanda kutip ganda ("") menunjukkan nama bidang atau kolom. Sebagai contoh, 'status' menunjukkan string status, sedangkan status atau "status" menunjukkan bidang log status.

Fungsi

Sintaksis

Deskripsi

Didukung di SQL

Didukung di SPL

fungsi compare

compare(x, n)

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

×

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

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

×

fungsi ts_compare

ts_compare(x, n)

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

×

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

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

×

Penting
  • Saat menggunakan fungsi compare, waktu yang digunakan sebagai dasar perbandingan data harus sama.

    Sebagai contoh, Anda dapat menggunakan fungsi compare untuk membandingkan data jam saat ini dengan data periode waktu yang sama pada hari sebelumnya. Namun, Anda tidak dapat menggunakan fungsi compare untuk membandingkan data jam saat ini dengan data jam sebelumnya.

  • Hasil kueri dan analisis fungsi ts_compare harus dikelompokkan berdasarkan kolom waktu menggunakan klausa GROUP BY.

  • Fungsi compare dan ts_compare tidak mendukung penggunaan bersarang.

fungsi compare

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

Sintaksis

  • Untuk membandingkan hasil perhitungan periode waktu saat ini dengan hasil perhitungan periode waktu n detik sebelumnya, gunakan sintaksis berikut:

    compare(x, n)
  • Untuk membandingkan hasil perhitungan periode waktu saat ini dengan hasil perhitungan beberapa periode waktu n1, n2, dan n3 detik sebelumnya, gunakan sintaksis berikut:

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

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe double atau long.

n

Jendela waktu. Satuan: detik. Contoh: 3600, 86400, 604800, dan 31622400. Nilai-nilai tersebut masing-masing menunjukkan 1 jam, 1 hari, 1 minggu, dan 1 tahun.

Tipe nilai kembali

Tipe array. Nilai kembali berformat sebagai berikut: [Hasil perhitungan periode waktu saat ini, Hasil perhitungan periode waktu n detik sebelumnya, Rasio hasil perhitungan periode waktu saat ini terhadap hasil perhitungan periode waktu n detik sebelumnya].

Contoh

  • Contoh 1: Hitung rasio jumlah tampilan halaman (PV) jam saat ini terhadap PV periode waktu yang sama pada hari sebelumnya.

    Atur rentang waktu menjadi 1 Hour(Time Frame) dan jalankan pernyataan kueri berikut. 86400 menentukan waktu saat ini dikurangi 86.400 detik, yang setara dengan satu hari. log menentukan nama Logstore yang digunakan.

    • Untuk menampilkan hasil kueri dan analisis dalam array, jalankan pernyataan kueri berikut:

      • Pernyataan kueri (Debug)

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

        • 3337.0 menunjukkan PV jam saat ini. Contoh: PV dari 14:00:00 hingga 15:00:00 pada 25 Desember 2020.

        • 3522.0 menunjukkan PV periode waktu yang sama pada hari sebelumnya. Contoh: PV dari 14:00:00 hingga 15:00:00 pada 24 Desember 2020.

        • 0.947473026689381 menunjukkan rasio PV jam saat ini terhadap PV periode waktu yang sama pada hari sebelumnya.

    • Untuk menampilkan hasil kueri dan analisis dalam beberapa kolom, jalankan pernyataan kueri berikut:

      • 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
              )
          )

        Hasil fungsi compare adalah array. Dalam pernyataan kueri di atas, diff menentukan alias untuk hasil, dan diff [1] menentukan nilai pertama dalam array.

      • Hasil kueri dan analisis同比结果

        • 3337.0 menunjukkan PV jam saat ini. Contoh: PV dari 14:00:00 hingga 15:00:00 pada 25 Desember 2020.

        • 3522.0 menunjukkan PV periode waktu yang sama pada hari sebelumnya. Contoh: PV dari 14:00:00 hingga 15:00:00 pada 24 Desember 2020.

        • 0.947473026689381 menunjukkan rasio PV jam saat ini terhadap PV periode waktu yang sama pada hari sebelumnya.

  • Contoh 2: Kueri jumlah metode permintaan berdasarkan status permintaan jam saat ini, lalu bandingkan jumlah jam saat ini dengan jumlah periode waktu yang sama pada hari sebelumnya.

    Atur rentang waktu menjadi 1 Hour(Time Frame) dan jalankan pernyataan kueri berikut. 3600 menentukan waktu saat ini dikurangi 3.600 detik, yang setara dengan 1 jam. log menentukan nama Logstore yang digunakan.

    • 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同比和环比函数

fungsi ts_compare

Fungsi ts_compare membandingkan hasil perhitungan periode waktu saat ini dengan hasil perhitungan periode waktu n detik sebelumnya.

Penting

Hasil kueri dan analisis fungsi ts_compare harus dikelompokkan berdasarkan kolom waktu menggunakan klausa GROUP BY.

Sintaksis

  • Untuk membandingkan hasil perhitungan periode waktu saat ini dengan hasil perhitungan periode waktu n detik sebelumnya, gunakan sintaksis berikut:

    ts_compare(x, n)
  • Untuk membandingkan hasil perhitungan periode waktu saat ini dengan hasil perhitungan beberapa periode waktu n1, n2, dan n3 detik sebelumnya, gunakan sintaksis berikut:

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

Parameter

Parameter

Deskripsi

x

Nilai parameter ini adalah tipe double atau long.

n

Jendela waktu. Satuan: detik. Contoh: 3600, 86400, 604800, dan 31622400. Nilai-nilai tersebut masing-masing menunjukkan 1 jam, 1 hari, 1 minggu, dan 1 tahun.

Tipe nilai kembali

Tipe array. Nilai kembali berformat sebagai berikut: [Hasil perhitungan periode waktu saat ini, Hasil perhitungan periode waktu n detik sebelumnya, Rasio hasil perhitungan periode waktu saat ini terhadap hasil perhitungan periode waktu n detik sebelumnya, Timestamp UNIX periode waktu n detik sebelumnya].

Contoh

  • Contoh 1: Hitung rasio PV setiap jam hari ini terhadap PV periode waktu yang sama pada hari sebelumnya dan dua hari sebelumnya.

    Atur rentang waktu menjadi Today(Time Frame) dan jalankan pernyataan kueri berikut. 86400 menentukan waktu saat ini dikurangi 86.400 detik, yang setara dengan satu hari. 172800 menentukan waktu saat ini dikurangi 172.800 detik, yang setara dengan dua hari. log menentukan nama Logstore yang digunakan. date_trunc('hour',__time__ ) menentukan bahwa nilai kembali dipotong berdasarkan jam.

    • Untuk menampilkan hasil kueri dan analisis dalam array, jalankan pernyataan kueri berikut:

      • 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 menunjukkan PV periode waktu saat ini. Contoh: PV dari 00:00 hingga 01:00 pada 22 September 2022.

        • 1191.0 menunjukkan PV periode waktu yang sama pada hari sebelumnya. Contoh: PV dari 00:00 hingga 01:00 pada 21 September 2022.

        • 1253.0 menunjukkan PV periode waktu yang sama dua hari sebelumnya. Contoh: PV dari 00:00 hingga 01:00 pada 20 September 2022.

        • 0.9857262804366079 menunjukkan rasio PV periode waktu saat ini terhadap PV periode waktu yang sama pada hari sebelumnya.

        • 0.936951316839585 menunjukkan rasio PV periode waktu saat ini terhadap PV periode waktu yang sama dua hari sebelumnya.

        • 1663689600.0 menunjukkan timestamp UNIX pada 00:00 tanggal 21 September 2022.

        • 1663603200.0

        Catatan

        Waktu yang ditampilkan dalam hasil kueri dan analisis bervariasi berdasarkan skenario aktual.

    • Untuk menampilkan hasil kueri dan analisis dalam beberapa kolom, jalankan pernyataan kueri berikut:

      • 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 rasio PV setiap jam terhadap PV satu jam sebelumnya pada hari saat ini.

    Atur rentang waktu menjadi Today(Relative) dan jalankan pernyataan kueri berikut. 3600 menentukan waktu saat ini dikurangi 3.600 detik, yang setara dengan 1 jam. log menentukan nama Logstore yang digunakan. date_trunc('hour',__time__ ) menentukan bahwa fungsi date_trunc digunakan untuk memotong nilai waktu berdasarkan 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

      Waktu yang ditampilkan dalam hasil kueri dan analisis bervariasi berdasarkan skenario aktual.