All Products
Search
Document Center

Simple Log Service:Fungsi HyperLogLog

Last Updated:Jun 03, 2026

Fungsi HyperLogLog merupakan fungsi agregat perkiraan, serupa dengan approx_distinct, yang secara cepat mengembalikan estimasi saat menganalisis set data besar.

Fungsi HyperLogLog berikut tersedia.

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 ("") dianggap sebagai nama bidang atau nama kolom. Misalnya, 'status' merepresentasikan string status, sedangkan status atau "status" merujuk pada field log status.

Function

Syntax

Description

SQL support

SPL support

approx_set function

approx_set(x)

Memperkirakan jumlah nilai unik dalam x. Galat standar maksimum default adalah 0,01625.

×

cardinality function

cardinality(x)

Mengonversi nilai HyperLogLog menjadi nilai bigint.

×

empty_approx_set function

empty_approx_set()

Mengembalikan set HyperLogLog kosong. Galat standar maksimum default adalah 0,01625.

×

merge function

merge(x)

Menggabungkan beberapa set HyperLogLog menjadi satu set.

×

approx_set function

Fungsi approx_set memperkirakan jumlah nilai unik dalam x. Galat standar maksimum default-nya adalah 0,01625.

Syntax

approx_set(x)

Parameters

Parameter

Description

x

Ekspresi dengan tipe data apa pun.

Return value type

HyperLogLog

Examples

Perkirakan jumlah pengunjung unik (UV) per menit untuk sebuah situs web. Hasilnya dalam format HyperLogLog.

  • Query and analysis statement

    * |
    SELECT
      date_trunc('minute', __time__) AS Time,
      approx_set(client_ip) AS UV
    FROM  website_log
    GROUP BY
      Time
    ORDER BY
      Time
  • Hasil query dan analisis: Mengembalikan Time (timestamp yang dipotong ke menit) dan UV (set perkiraan terenkripsi dari approx_set). Total: 16 catatan.

cardinality function

Fungsi cardinality mengonversi nilai HyperLogLog menjadi nilai bigint.

Syntax

cardinality(x)

Parameters

Parameter

Description

x

Ekspresi HyperLogLog.

Return value type

bigint

Examples

Gunakan approx_set untuk memperkirakan UV per menit (mengembalikan nilai HyperLogLog), lalu gunakan cardinality untuk mengonversi nilai tersebut menjadi bigint.

  • Query and analysis statement

    * |
    SELECT
      Time,
      cardinality(UV) AS UV
    FROM  (
        SELECT
          date_trunc('minute', __time__) AS Time,
          approx_set(client_ip) AS UV
        FROM      website_log
        GROUP BY
          Time
        ORDER BY
          Time
      ) AS UV
  • Hasil menampilkan jumlah UV per menit dalam kolom Time dan UV. Contohnya, 78 UV pada pukul 2021-09-09 15:12:00 dan 561 pada pukul 15:13:00.

empty_approx_set function

Fungsi empty_approx_set mengembalikan set HyperLogLog kosong. Galat standar maksimum default-nya adalah 0,01625.

Syntax

empty_approx_set()

Return value type

HyperLogLog

Examples

Mengembalikan set HyperLogLog kosong.

  • Query and analysis statement

    * | SELECT  empty_approx_set()
  • Mengembalikan satu kolom _col0 dengan nilai AgwAAA==, yaitu set perkiraan kosong yang dikodekan Base64.

merge function

Fungsi merge menggabungkan beberapa set HyperLogLog menjadi satu set.

Syntax

merge(x)

Parameters

Parameter

Description

x

Ekspresi HyperLogLog.

Return value type

HyperLogLog

Examples

Gunakan approx_set untuk memperkirakan UV per menit, merge untuk menggabungkan set UV tersebut, dan cardinality untuk mengonversi nilai akhir menjadi bigint.

  • Query and analysis statement

    * |
    SELECT
      Time,
      cardinality(UV) AS UV,
      cardinality(merge(UV) over()) AS Total_UV
    FROM  (
        SELECT
          date_trunc('minute', __time__) AS Time,
          approx_set(client_ip) AS UV
        FROM      log
        GROUP BY
          Time
        ORDER BY
          Time
      )
  • Hasil query dan analisis: Jumlah UV per menit bervariasi (561, 658, 625), sedangkan Total_UV menunjukkan total kumulatif (8564) dari semua baris.