Compartir vía


dcount_hll()

Calcula el recuento distinto de los resultados generados por hll o hll_merge.

Obtenga información sobre el algoritmo subyacente (HyperLogLog) y la precisión de la estimación.

Syntax

dcount_hll(Hll)

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
hll string ✔️ Expresión generada por hll o hll-merge que se va a usar para buscar el recuento distinto.

Devoluciones

Devuelve el recuento distinto de cada valor en hll.

Ejemplo

En el ejemplo siguiente se muestran los distintos resultados combinados de recuento hll.

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

Salida

dcount_hll_hllMerged
315

Precisión de la estimación

Esta función usa una variante del algoritmo HyperLogLog (HLL), que realiza una estimación estocástica de cardinalidad establecida. El algoritmo proporciona una "manija" que se puede usar para equilibrar la precisión y el tiempo de ejecución por tamaño de memoria:

Precisión Error (%) Recuento de entradas
0 1.6 212
1 0.8 214
2 0,4 216
3 0,28 217
4 0,2 218

Nota

La columna "recuento de entradas" es el número de contadores de 1 byte en la implementación HLL.

El algoritmo incluye algunas disposiciones para realizar un recuento perfecto (cero errores), si la cardinalidad del conjunto es lo suficientemente pequeña:

  • Cuando el nivel de precisión es 1, se devuelven 1000 valores.
  • Cuando el nivel de precisión es 2, se devuelven 8000 valores.

El límite de errores es probabilístico, no un enlace teórico. El valor es la desviación estándar de la distribución de errores (sigma) y el 99,7 % de las estimaciones tendrá un error relativo de menos de 3 x sigma.

En la imagen siguiente se muestra la función de distribución de probabilidad del error de estimación relativa, en porcentajes, para todas las configuraciones de precisión compatibles:

Gráfico que muestra la distribución de errores hll.