Condividi tramite


hll_merge() (funzione di aggregazione)

Unisce i risultati HLL nel gruppo in un singolo valore HLL.

Nota

Questa funzione viene usata insieme all'operatore summarize.

Per altre informazioni, vedere l'algoritmo sottostante (HyperL og Log) e l'accuratezza della stima.

Importante

I risultati di hll(), hll_if() e hll_merge() possono essere archiviati e recuperati in un secondo momento. Ad esempio, è possibile creare un riepilogo giornaliero univoco degli utenti, che può quindi essere usato per calcolare i conteggi settimanali. Tuttavia, la rappresentazione binaria precisa di questi risultati può cambiare nel tempo. Non esiste alcuna garanzia che queste funzioni producano risultati identici per gli input identici e pertanto non è consigliabile affidarsi a tali input.

Sintassi

hll_merge(hll)

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
hll string ✔️ Nome della colonna contenente i valori HLL da unire.

Valori restituiti

La funzione restituisce i valori HLL uniti di hll nel gruppo.

Suggerimento

Usare la funzione dcount_hll per calcolare le dcount funzioni di aggregazione hll() e hll_merge().

Esempio

L'esempio seguente mostra i risultati HLL in un gruppo unito in un singolo valore HLL.

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

Output

I risultati mostrano solo i primi cinque risultati nella matrice.

hllMerged
[[1024,14],["-6903255281122589438","-7413697181929588220","-2396604341988936699","5824198135224880646","-6257421034880415225", ...],[]]

Accuratezza della stima

Questa funzione usa una variante dell'algoritmo HyperLogLog (HLL), che esegue una stima stocastica della cardinalità set. 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 degli errori hll.