Fungsi HyperLogLog merupakan fungsi agregat perkiraan, serupa dengan approx_distinct, yang secara cepat mengembalikan estimasi saat menganalisis set data besar.
Fungsi HyperLogLog berikut tersedia.
|
Function |
Syntax |
Description |
SQL support |
SPL support |
|
approx_set(x) |
Memperkirakan jumlah nilai unik dalam x. Galat standar maksimum default adalah 0,01625. |
√ |
× |
|
|
cardinality(x) |
Mengonversi nilai HyperLogLog menjadi nilai bigint. |
√ |
× |
|
|
empty_approx_set() |
Mengembalikan set HyperLogLog kosong. Galat standar maksimum default adalah 0,01625. |
√ |
× |
|
|
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) danUV(set perkiraan terenkripsi dariapprox_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
_col0dengan nilaiAgwAAA==, 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.