dcount_hll()

Calcola il conteggio distinto dai risultati generati da hll o hll_merge.

Leggere l'algoritmo sottostante (HyperLogLog) e la precisione della stima.

Sintassi

dcount_hll(hll)

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
hll string ✔️ Espressione generata da hll o hll-merge da utilizzare per trovare il conteggio distinto.

Restituisce

Restituisce il conteggio distinto di ogni valore in hll.

Esempio

Nell'esempio seguente vengono illustrati i risultati uniti del conteggio distinto.

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

Output

dcount_hll_hllMerged
315

Accuratezza della stima

Questa funzione usa una variante dell'algoritmo HyperLogLog (HLL), che esegue una stima stocastica della cardinalità impostata. L'algoritmo fornisce una "manopola" che può essere usata per bilanciare l'accuratezza e il tempo di esecuzione in base alle dimensioni della memoria:

Accuratezza Errori (%) Numero di voci
0 1.6 212
1 0,8 214
2 0,4 216
3 0,28 217
4 0,2 218

Nota

La colonna "Numero di voci" corrisponde al numero di contatori di 1 byte nell'implementazione di HLL.

L'algoritmo include alcune clausole per eseguire un conteggio perfetto (zero errori) se la cardinalità del set è sufficientemente piccola:

  • Se il livello di accuratezza è 1, vengono restituiti 1000 valori
  • Se il livello di accuratezza è 2, vengono restituiti 8000 valori

Il limite di errore è probabilistico, non teorico. Il valore è la deviazione standard della distribuzione degli errori (sigma) e il 99,7% delle stime avrà un errore relativo inferiore a 3 x sigma.

L'immagine seguente mostra la funzione di distribuzione delle probabilità di errore relativo nella stima, in percentuali, per tutte le impostazioni di accuratezza supportate:

Grafico che mostra la distribuzione dell'errore hll.