Fungsi HyperLogLog++ adalah fungsi agregat aproksimasi yang menggunakan sedikit memori untuk melakukan deduplikasi pada set data besar secara cepat dan mempercepat kueri.
Informasi latar belakang
HyperLogLog (HLL) adalah algoritma efisien untuk deduplikasi aproksimasi, cocok digunakan dalam skenario yang tidak memerlukan presisi tinggi, seperti statistik page view (PV) dan unique visitor (UV). HLL dapat menjadi alternatif ringan terhadap COUNT(DISTINCT). Berbeda dengan metode deduplikasi presisi seperti Bitmap, HLL menggunakan struktur data internal berukuran tetap yang disebut sketch. Penggunaan memori oleh sketch ini tidak meningkat seiring dengan volume data. Saat data baru ditambahkan, hanya diperlukan satu perhitungan hash. Dalam skenario data besar, kesalahan deduplikasi HLL biasanya berada dalam kisaran 1% atau kurang, sehingga memberikan keseimbangan antara efisiensi dan akurasi.
Untuk deduplikasi aproksimasi dasar, MaxCompute menyediakan fungsi agregat APPROX_DISTINCT. Seiring semakin beragamnya skenario bisnis, pengguna membutuhkan kemampuan untuk menyimpan atau menggunakan kembali struktur data sketch antara, bukan hanya menghasilkan output akhir deduplikasi. Untuk mendukung kebutuhan tersebut, MaxCompute menyediakan rangkaian lengkap fungsi HyperLogLog++ dengan algoritma dasar yang telah dioptimalkan. Fungsi-fungsi ini mengurangi penggunaan memori dan meningkatkan akurasi estimasi, sehingga memberikan dukungan lebih baik untuk skenario analisis kompleks.
Berikut dua skenario khas penggunaan HLL:
Skema yang memerlukan kueri berulang dari waktu ke waktu: Anda dapat menyimpan sketch HLL yang dihasilkan setiap hari. Perhitungan selanjutnya hanya perlu memproses data baru pada hari tersebut dan menggabungkannya dengan sketch historis. Pendekatan ini menghilangkan kebutuhan untuk memindai ulang seluruh data historis, sehingga secara signifikan meningkatkan efisiensi kueri.
Skema yang memerlukan deduplikasi gabungan di beberapa kolom serupa: Anda dapat membuat dan menyimpan sketch untuk setiap kolom, lalu langsung menggabungkan sketch-sketch tersebut. Pendekatan ini memungkinkan penggunaan ulang hasil deduplikasi secara efisien dan sangat mengurangi beban komputasi.
Daftar fungsi
SQL MaxCompute mendukung fungsi HyperLogLog++ berikut ini.
Fungsi | Fitur |
Mengagregasi nilai-nilai dengan tipe yang sama ke dalam sketch HLL++ baru. | |
Menggabungkan beberapa sketch HLL++ dengan kelas penyimpanan yang sama ke dalam sketch baru. | |
Menghitung estimasi kardinalitas dari sketch HLL++. | |
Menggabungkan beberapa sketch HLL++ dengan kelas penyimpanan yang sama ke dalam sketch baru dan mengembalikan estimasi kardinalitas dari sketch yang digabungkan tersebut. |
Catatan
Data BINARY yang digunakan oleh fungsi HLL_COUNT_EXTRACT, HLL_COUNT_MERGE, dan HLL_COUNT_MERGE_PARTIAL harus dihasilkan oleh fungsi HLL_COUNT_INIT. Data dari sistem atau metode lain tidak dapat digunakan.