Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
A função hll() é uma maneira de estimar o número de valores exclusivos em um conjunto de valores. Ele faz isso calculando resultados intermediários para agregação dentro do resumir operador para um grupo de dados usando a função dcount.
Leia sobre o algoritmo subjacente (HyperLogLog) e a precisão da estimativa.
Observação
Esta função é usada em conjunto com o operador resumo.
Sintaxe
hll
(
expr [,precisão])
Saiba mais sobre convenções de sintaxe.
Parâmetros
| Designação | Tipo | Necessário | Descrição |
|---|---|---|---|
| expr | string |
✔️ | A expressão usada para o cálculo de agregação. |
| precisão | int |
O valor que controla o equilíbrio entre velocidade e precisão. Se não for especificado, o valor padrão será 1. Para obter os valores suportados, consulte Precisão da estimativa. |
Devoluções
Devolve os resultados intermédios da contagem distinta de de expiração em todo o grupo.
Observação
- Os resultados de hll(), hll_if() e hll_merge() podem ser armazenados e posteriormente recuperados. Por exemplo, talvez você queira criar um resumo diário exclusivo do usuário, que pode ser usado para calcular contagens semanais. No entanto, a representação binária precisa desses resultados pode mudar ao longo do tempo. Não há garantia de que essas funções produzam resultados idênticos para entradas idênticas e, portanto, não aconselhamos confiar nelas.
- Use a função hll_merge para mesclar os resultados de várias funções
hll(). - Use a função dcount_hll para calcular o número de valores distintos da saída das funções
hll()ouhll_merge.
Exemplo
No exemplo a seguir, a função hll() é usada para estimar o número de valores exclusivos da coluna DamageProperty dentro de cada compartimento de tempo de 10 minutos da coluna StartTime.
StormEvents
| summarize hll(DamageProperty) by bin(StartTime,10m)
Output
A tabela de resultados mostrada inclui apenas as primeiras 10 linhas.
| Horário de Início | 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"],[]] |
Precisão da estimativa
Esta função usa uma variante do algoritmo HyperLogLog (HLL), que faz uma estimativa estocástica da cardinalidade do conjunto. O algoritmo fornece um "botão" que pode ser usado para equilibrar a precisão e o tempo de execução por tamanho de memória:
| Exatidão | Erro (%) | Contagem de entradas |
|---|---|---|
| 0 | 1.6 | 212 |
| 1 | 0.8 | 214 |
| 2 | 0.4 | 216 |
| 3 | 0.28 | 217 |
| 4 | 0.2 | 218 |
Observação
A coluna "contagem de entradas" é o número de contadores de 1 byte na implementação HLL.
O algoritmo inclui algumas provisões para fazer uma contagem perfeita (erro zero), se a cardinalidade definida for pequena o suficiente:
- Quando o nível de precisão é
1, 1000 valores são retornados - Quando o nível de precisão é
2, 8000 valores são retornados
O limite de erro é probabilístico, não um limite teórico. O valor é o desvio padrão da distribuição de erro (sigma), e 99,7% das estimativas terão um erro relativo inferior a 3 x sigma.
A imagem a seguir mostra a função de distribuição de probabilidade do erro relativo de estimativa, em porcentagens, para todas as configurações de precisão suportadas: