dcount_hll()

Oblicza unikatową liczbę wyników wygenerowanych przez hll lub hll_merge.

Przeczytaj o algorytmie bazowym (HyperLogLog) i dokładności szacowania.

Składnia

dcount_hll(Hll)

Dowiedz się więcej o konwencjach składniowych.

Parametry

Nazwa Typ Wymagane Opis
Hll string ✔️ Wyrażenie wygenerowane przez hll lub hll-merge, które ma być używane do znajdowania liczby unikatowych.

Zwraca

Zwraca unikatową liczbę każdej wartości w hll.

Przykład

W poniższym przykładzie pokazano wyniki scalania unikatowych liczb.

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

Dane wyjściowe

dcount_hll_hllMerged
315

Dokładność szacowania

Ta funkcja używa wariantu algorytmu HyperLogLog (HLL), który wykonuje stochastyczne oszacowanie kardynalności zestawu. Algorytm udostępnia "pokrętło", które może służyć do równoważenia dokładności i czasu wykonywania na rozmiar pamięci:

Dokładność Błąd (%) Liczba pozycji
0 1.6 212
1 0,8 214
2 0,4 216
3 0,28 217
4 0,2 218

Uwaga

Kolumna "liczba wejść" jest liczbą liczników 1-bajtowych w implementacji HLL.

Algorytm zawiera pewne przepisy dotyczące wykonywania doskonałej liczby (błąd zerowy), jeśli kardynalność zestawu jest wystarczająco mała:

  • Gdy poziom dokładności to 1, zwracane są 1000 wartości
  • Gdy poziom dokładności to 2, zwracane są wartości 8000

Granica błędu jest probabilistyczna, a nie teoretyczna granica. Wartość to odchylenie standardowe rozkładu błędów (sigma), a 99,7% oszacowań będzie miało względny błąd poniżej 3 x sigma.

Na poniższej ilustracji przedstawiono funkcję rozkładu prawdopodobieństwa błędu szacowania względnego w procentach dla wszystkich obsługiwanych ustawień dokładności:

Wykres przedstawiający rozkład błędów hll.