全部产品
Search
文档中心

Simple Log Service:Fungsi perkiraan

更新时间:Nov 09, 2025

Topik ini menjelaskan sintaksis dasar serta memberikan contoh penggunaan fungsi perkiraan.

Simple Log Service mendukung fungsi perkiraan berikut:

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

Nama Fungsi

Sintaksis

Deskripsi

Dukungan SQL

Dukungan SPL

fungsi approx_distinct

approx_distinct(x)

Menghitung jumlah nilai unik dalam x. Kesalahan standar default adalah 2,3%.

×

approx_distinct(x, e)

Menghitung jumlah nilai unik dalam x dan memungkinkan Anda menentukan kesalahan standar kustom.

×

fungsi approx_percentile

approx_percentile(x, persentase)

Mengurutkan x secara menaik dan mengembalikan nilai perkiraan dari x pada persentase tertentu. Hasilnya merupakan perkiraan, dan stabilitas serta konsistensinya tidak dijamin.

×

approx_percentile(x, array[persentase01, persentase02...])

Mengurutkan x secara menaik dan mengembalikan nilai perkiraan dari x pada persentase tertentu, seperti persentase01 dan persentase02. Hasilnya merupakan perkiraan, dan stabilitas serta konsistensinya tidak dijamin.

×

approx_percentile(x, bobot, persentase)

Mengurutkan produk dari x dan bobotnya secara menaik dan mengembalikan nilai perkiraan dari x pada persentase tertentu. Hasilnya merupakan perkiraan, dan stabilitas serta konsistensinya tidak dijamin.

×

approx_percentile(x, bobot, array[persentase01, persentase02...])

Mengurutkan produk dari x dan bobotnya secara menaik dan mengembalikan nilai perkiraan dari x pada persentase tertentu, seperti persentase01 dan persentase02. Hasilnya merupakan perkiraan, dan stabilitas serta konsistensinya tidak dijamin.

×

approx_percentile(x, bobot, persentase, akurasi)

Mengurutkan produk dari x dan bobotnya secara menaik dan mengembalikan nilai perkiraan dari x pada persentase tertentu. Memungkinkan Anda menetapkan akurasi nilai pengembalian. Hasilnya merupakan perkiraan, dan stabilitas serta konsistensinya tidak dijamin.

×

fungsi numeric_histogram

numeric_histogram(bucket, x)

Menghitung histogram perkiraan untuk x berdasarkan jumlah bucket (kolom histogram). Hasilnya dikembalikan dalam format JSON.

×

numeric_histogram(bucket, x, bobot)

Menghitung histogram perkiraan untuk x berdasarkan jumlah bucket (kolom histogram). Hasilnya dikembalikan dalam format JSON. Memungkinkan Anda menetapkan bobot untuk x.

×

fungsi numeric_histogram_u

numeric_histogram_u(bucket, x)

Menghitung histogram perkiraan untuk x berdasarkan jumlah bucket (kolom histogram). Hasilnya dikembalikan dalam format multi-baris dan multi-kolom.

×

fungsi approx_most_frequent

approx_most_frequent(k, x)

Menghitung frekuensi perkiraan dari k nilai paling sering di kolom x. Hasilnya dikembalikan sebagai tipe MAP.

×

fungsi approx_distinct

Fungsi approx_distinct menghitung jumlah nilai unik dalam x.

Sintaksis

  • Menghitung jumlah nilai unik dalam x. Kesalahan standar default adalah 2,3%.

    approx_distinct(x)
  • Menghitung jumlah nilai unik dalam x dengan kesalahan standar kustom.

    approx_distinct(x, e)

Parameter

Parameter

Deskripsi

x

Nilainya bisa berupa tipe data apa pun.

e

Kesalahan standar kustom. Nilainya harus dalam rentang [0,0115, 0,26].

Tipe Nilai Pengembalian

bigint

Contoh

  • Contoh 1: Gunakan fungsi count untuk menghitung jumlah tampilan halaman (PV) dan fungsi approx_distinct untuk menghitung jumlah pengunjung unik (UV) berdasarkan nilai unik dari bidang client_ip. Kesalahan standar adalah 2,3%.

    • Pernyataan Kueri

      * |SELECT count(*) AS PV, approx_distinct(client_ip) AS UV
    • Hasil Kueri dan Analisisapprox_distinct

  • Contoh 2: Gunakan fungsi count untuk menghitung PV dan fungsi approx_distinct untuk menghitung jumlah UV berdasarkan nilai unik dari bidang client_ip. Kesalahan standar kustom adalah 10%.

    • Pernyataan Kueri

      * |SELECT count(*) AS PV, approx_distinct(client_ip,0.1) AS UV
    • Hasil Kueri dan Analisisapprox_distinct

fungsi approx_percentile

Fungsi approx_percentile mengurutkan x secara menaik dan mengembalikan nilai perkiraan pada persentase tertentu. Hasilnya merupakan perkiraan, sehingga stabilitas dan konsistensinya tidak dijamin.

Sintaksis

  • Mengurutkan x secara menaik dan mengembalikan nilai perkiraan dari x pada persentase tertentu. Nilai pengembalian adalah double.

    approx_percentile(x, persentase)
  • Mengurutkan x secara menaik dan mengembalikan nilai perkiraan dari x pada beberapa persentase tertentu, seperti persentase01 dan persentase02. Nilai pengembalian adalah array(double,double).

    approx_percentile(x, array[persentase01, persentase02...])
  • Mengurutkan produk dari x dan bobotnya secara menaik dan mengembalikan nilai perkiraan dari x pada persentase tertentu. Nilai pengembalian adalah double.

    approx_percentile(x, bobot, persentase)
  • Mengurutkan produk dari x dan bobotnya secara menaik dan mengembalikan nilai perkiraan dari x pada beberapa persentase tertentu, seperti persentase01 dan persentase02. Nilai pengembalian adalah array(double,double).

    approx_percentile(x, bobot, array[persentase01, persentase02...])
  • Mengurutkan produk dari x dan bobotnya secara menaik dan mengembalikan nilai perkiraan dari x pada persentase tertentu. Nilai pengembalian adalah double. Anda juga dapat menetapkan akurasi nilai pengembalian.

    approx_percentile(x, bobot, persentase, akurasi)

Parameter

Parameter

Deskripsi

x

Nilainya harus bertipe double.

persentase

Nilai persentase. Nilainya harus dalam rentang [0, 1].

akurasi

Akurasi. Nilainya harus dalam rentang (0, 1).

bobot

Bobot. Nilainya harus bilangan bulat lebih besar dari 1.

Jika Anda menetapkan bobot, sistem akan mengurutkan data berdasarkan produk dari x dan bobot.

Tipe Nilai Pengembalian

double atau array(double,double)

Contoh

  • Contoh 1: Mengurutkan kolom request_time dan mengembalikan nilai perkiraan dari bidang request_time pada persentil ke-50.

    • Pernyataan Kueri

      *| SELECT approx_percentile(request_time,0.5)
    • Hasil Kueri dan Analisisapprox_percentile

  • Contoh 2: Urutkan kolom request_time dan kembalikan nilai request_time pada persentil ke-10, ke-20, dan ke-70.

    • Pernyataan Kueri

      *| SELECT approx_percentile(request_time,array[0.1,0.2,0.7])
    • Hasil Kueri dan Analisisapprox_percentile

  • Contoh 3: Contoh ini mengurutkan kolom request_time berdasarkan produk dari nilai request_time dan bobotnya, lalu mengembalikan nilai perkiraan persentil ke-50 dari bidang request_time. Bobotnya adalah 100 jika nilai request_time kurang dari 20, dan 10 jika sebaliknya.

    • Pernyataan Kueri

      * |
      SELECT
        approx_percentile(
          request_time,case
            when request_time < 20 then 100
            else 10
          end,
          0.5
        )
    • Hasil Kueri dan Analisisapprox_percentile

  • Contoh 4: Urutkan kolom request_time berdasarkan produk dari request_time dan bobotnya, lalu kembalikan nilai perkiraan dari request_time pada persentil ke-80 dan ke-90. Bobotnya adalah 100 jika request_time kurang dari 20. Jika tidak, bobotnya adalah 10.

    • Pernyataan Kueri

      * |
      SELECT
        approx_percentile(
          request_time,case
            when request_time < 20 then 100
            else 10
          end,
          array [0.8,0.9]
        )
    • Hasil Kueri dan Analisisapprox_percentile

  • Contoh 5: Urutkan kolom request_time berdasarkan produk dari request_time dan bobotnya, lalu kembalikan nilai perkiraan dari bidang request_time pada persentil ke-50 dengan akurasi 0,2, di mana bobotnya adalah 100 jika request_time kurang dari 20 dan 10 jika sebaliknya.

    • Pernyataan Kueri

      * |
      SELECT
        approx_percentile(
          request_time,case
            when request_time < 20 then 100
            else 10
          end,
          0.5,
          0.2
        )
    • Hasil Kueri dan Analisisapprox_percentile

fungsi numeric_histogram

Fungsi numeric_histogram menghitung histogram perkiraan untuk x. Hasilnya dikembalikan dalam format JSON.

Sintaksis

  • Menghitung histogram perkiraan untuk x berdasarkan jumlah bucket tertentu.

    numeric_histogram(bucket, x)
  • Menghitung histogram perkiraan untuk x berdasarkan jumlah bucket tertentu. Anda juga dapat menentukan bobot untuk x.

    numeric_histogram(bucket, x, bobot)

Parameter

Parameter

Deskripsi

bucket

Jumlah kolom dalam histogram. Nilainya harus bertipe bigint.

x

Nilainya harus bertipe double.

bobot

Bobot. Nilainya harus bilangan bulat lebih besar dari 0.

Jika Anda menetapkan bobot, sistem akan mengelompokkan data berdasarkan produk dari x dan bobot.

Tipe Nilai Pengembalian

JSON

Contoh

  • Contoh 1: Hitung histogram perkiraan durasi permintaan untuk permintaan POST.

    • Pernyataan Kueri

      request_method:POST | SELECT numeric_histogram(10,request_time)
    • Hasil Kueri dan Analisisnumeric_histogram

  • Contoh 2: Hitung histogram perkiraan berbobot dari durasi permintaan untuk permintaan POST. Bobot didasarkan pada nilai request_time.

    • Pernyataan Kueri

      request_method:POST| SELECT numeric_histogram(10, request_time,case when request_time<20 then 100 else 10 end)
    • Hasil Kueri dan Analisisnumeric_histogram

fungsi numeric_histogram_u

Fungsi numeric_histogram_u menghitung histogram perkiraan untuk x. Hasilnya dikembalikan dalam format multi-baris dan multi-kolom.

Sintaksis

numeric_histogram_u(bucket, x)

Parameter

Parameter

Deskripsi

bucket

Jumlah kolom dalam histogram. Nilainya harus bertipe bigint.

x

Nilainya harus bertipe double.

Tipe Nilai Pengembalian

double

Contoh

Hitung histogram perkiraan durasi permintaan untuk permintaan POST.

  • Pernyataan Kueri

    request_method:POST | select numeric_histogram_u(10,request_time)
  • Hasil Kueri dan Analisisnumeric_histogram_u

fungsi approx_most_frequent

Menghitung frekuensi perkiraan dari k nilai paling sering di kolom x.

Sintaksis

approx_most_frequent(k, x)

Parameter

Parameter

Deskripsi

k

Jumlah nilai paling sering yang akan dikembalikan. Sebagai contoh, nilai 5 menunjukkan bahwa fungsi mengembalikan frekuensi perkiraan dari 5 nilai paling sering teratas.

x

Nilainya harus bertipe varchar.

Tipe nilai pengembalian

map(varchar, bigint)

Contoh

Ambil tiga nilai paling sering dalam bidang content.

  • Data Sampel

    content: 
    'A'
    'B'
    'A'
    'C'
    'A'
    'B'
    'C'
    'D'
    'E'
  • Pernyataan Kueri

    select approx_most_frequent(3, content)
  • Output

    image