hll() (toplama işlevi)

hll() işlevi, bir değer kümesindeki benzersiz değerlerin sayısını tahmin etmenin bir yoludur. Bunu, işlevini kullanarak dcount bir veri grubu için summarize işleci içinde toplama için ara sonuçları hesaplayarak yapar.

Temel algoritma (HyperLogLog) ve tahmin doğruluğu hakkında bilgi edinin.

Not

Bu işlev summarize işleciyle birlikte kullanılır.

İpucu

  • Birden çok hll() işlevin sonuçlarını birleştirmek için hll_merge işlevini kullanın.
  • veya işlevlerinin çıkışından hll() farklı değerlerin sayısını hesaplamak için dcount_hll işlevini kullanın.hll_merge

Önemli

hll(), hll_if() ve hll_merge() sonuçları depolanabilir ve daha sonra alınabilir. Örneğin, daha sonra haftalık sayıları hesaplamak için kullanılabilecek günlük benzersiz kullanıcılar özeti oluşturmak isteyebilirsiniz. Ancak, bu sonuçların kesin ikili gösterimi zaman içinde değişebilir. Bu işlevlerin özdeş girişler için aynı sonuçları üretmesi garanti değildir ve bu nedenle bunlara güvenmeyi önermiyoruz.

Syntax

hll(ifade [,doğruluk])

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Gerekli Açıklama
ifade string ✔️ Toplama hesaplaması için kullanılan ifade.
Doğru -luk int Hız ve doğruluk arasındaki dengeyi denetleen değer. Belirtilmemişse, varsayılan değer olur 1. Desteklenen değerler için bkz. Tahmin doğruluğu.

Döndürülenler

Grup genelindeki farklı ifade sayısının ara sonuçlarını döndürür.

Örnek

Aşağıdaki örnekte işlevi, sütunun hll() her 10 dakikalık zaman kutusu içinde sütunun DamageProperty benzersiz değerlerinin StartTime sayısını tahmin etmek için kullanılır.

StormEvents
| summarize hll(DamageProperty) by bin(StartTime,10m)

Gösterilen sonuçlar tablosu yalnızca ilk 10 satırı içerir.

StartTime hll_DamageProperty
2007-01-01T00:20:00Z [[1024,14],["3803688792395291579"],[]]
2007-01-01T01:00:00Z [[1024,14],["7755241107725382121","-5665157283053373866","3803688792395291579","-1003235211361077779"],[]]
2007-01-01T02:00:00Z [[1024,14],["-1003235211361077779","-5665157283053373866","7755241107725382121"],[]]
2007-01-01T02:20:00Z [[1024,14],["7755241107725382121"],[]]
2007-01-01T03:30:00Z [[1024,14],["3803688792395291579"],[]]
2007-01-01T03:40:00Z [[1024,14],["-5665157283053373866"],[]]
2007-01-01T04:30:00Z [[1024,14],["3803688792395291579"],[]]
2007-01-01T05:30:00Z [[1024,14],["3803688792395291579"],[]]
2007-01-01T06:30:00Z [[1024,14],["1589522558235929902"],[]]

Tahmin doğruluğu

Bu işlev, küme kardinalitesi stochastic tahmini yapan HyperLogLog (HLL) algoritmasının bir değişkenini kullanır. Algoritma, bellek boyutu başına doğruluk ve yürütme süresini dengelemek için kullanılabilecek bir "düğme" sağlar:

Doğruluk Hata (%) Giriş sayısı
0 1.6 212
1 0,8 214
2 0,4 216
3 0.28 217
4 0,2 218

Not

"Giriş sayısı" sütunu, HLL uygulamasındaki 1 baytlık sayaçların sayısıdır.

Ayarlanan kardinalite yeterince küçükse algoritma, mükemmel bir sayı (sıfır hatası) yapmak için bazı hükümler içerir:

  • Doğruluk düzeyi olduğunda 11000 değer döndürülür
  • Doğruluk düzeyi olduğunda 28000 değer döndürülür

Hata sınırı olasılıksaldır, teorik bir sınır değildir. Değer, hata dağılımının standart sapmasıdır (sigma) ve tahminlerin %99,7'si 3 x sigma'nın altında göreli bir hataya sahip olur.

Aşağıdaki görüntüde, desteklenen tüm doğruluk ayarları için göreli tahmin hatasının olasılık dağılımı işlevi yüzde olarak gösterilir:

Hll hata dağılımını gösteren grafik.