Bagikan melalui


dcount_hll()

Menghitung jumlah yang berbeda dari hasil yang dihasilkan oleh hll atau hll_merge.

Baca tentang algoritma yang mendasari (HyperLogLog) dan akurasi estimasi.

Sintaks

dcount_hll(hll)

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Jenis Diperlukan Deskripsi
hll string ✔️ Ekspresi yang dihasilkan oleh hll atau hll-merge yang akan digunakan untuk menemukan jumlah yang berbeda.

Mengembalikan

Mengembalikan jumlah berbeda dari setiap nilai dalam hll.

Contoh

Contoh berikut menunjukkan jumlah hasil gabungan hll yang berbeda.

StormEvents
| summarize hllRes = hll(DamageProperty) by bin(StartTime,10m)
| summarize hllMerged = hll_merge(hllRes)
| project dcount_hll(hllMerged)

Output

dcount_hll_hllMerged
315

Akurasi estimasi

Fungsi ini menggunakan varian dari algoritma HyperLogLog (HLL), yang melakukan estimasi stokastik dari kardinalitas yang ditetapkan. Algoritma ini menyediakan "kenop" yang dapat digunakan untuk menyeimbangkan akurasi dan waktu eksekusi per ukuran memori:

Akurasi Kesalahan (%) Jumlah entri
0 1.6 212
1 0.8 214
2 0.4 216
3 0.28 217
4 0.2 218

Catatan

Kolom "jumlah entri" adalah jumlah penghitung 1 byte dalam implementasi HLL.

Algoritma ini mencakup beberapa ketentuan untuk melakukan penghitungan sempurna (zero error), jika kardinalitas set berukuran cukup kecil:

  • Ketika tingkat akurasi adalah 1, 1000 nilai dikembalikan
  • Ketika tingkat akurasi adalah 2, 8000 nilai dikembalikan

Batas kesalahan bersifat probabilistik, bukan batas teoritis. Nilainya adalah simpangan baku dari distribusi kesalahan (sigma), dan 99,7% estimasi akan memiliki kesalahan relatif di bawah 3 x sigma.

Gambar berikut menunjukkan fungsi distribusi peluang dari kesalahan estimasi relatif, dalam persentase, untuk semua pengaturan akurasi yang didukung:

Grafik memperlihatkan distribusi kesalahan hll.