Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
A hll() função é 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 operador resumir para um grupo de dados usando a função dcount.
Leia sobre o algoritmo subjacente (HyperLogLog) e a precisão da estimativa.
Observação
Essa função é usada em conjunto com o operador summarize.
Sintaxe
hll
(
expr [,precisão])
Saiba mais sobre as convenções de sintaxe.
Parâmetros
| Nome | Digitar | Obrigatória | Descrição |
|---|---|---|---|
| expr | string |
✔️ | A expressão usada para o cálculo de agregação. |
| exatidã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 valores compatíveis, consulte Precisão da estimativa. |
Devoluções
Retorna os resultados intermediários da contagem distinta de expr em todo o grupo.
Observação
- Os resultados de hll(), hll_if() e hll_merge() podem ser armazenados e recuperados posteriormente. 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
hll()funções. - Use a função dcount_hll para calcular o número de valores distintos da saída das
hll()funções orhll_merge.
Exemplo
No exemplo a seguir, a hll() função é usada para estimar o número de valores exclusivos da DamageProperty coluna em cada compartimento de tempo de 10 minutos da StartTime coluna.
StormEvents
| summarize hll(DamageProperty) by bin(StartTime,10m)
de saída
A tabela de resultados mostrada inclui apenas as primeiras 10 linhas.
| StartTime | 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
Essa função usa uma variante do algoritmo HyperLogLog (HLL), que faz uma estimativa estocástica da cardinalidade do conjunto. O algoritmo oferece um "botão" que pode ser usado para balancear a precisão e o tempo de execução por tamanho de memória:
| Precisã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 de 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, mil valores são retornados - Quando o nível de precisão é
2, 8 mil valores são retornados
O erro associado é probabilístico, não um associado teórico. O valor é o desvio padrão da distribuição de erros (o sigma) e 99,7% das estimativas terão um erro relativo de menos de 3 x sigma.
A seguinte imagem mostra a função de distribuição de probabilidade do erro de estimativa relativa, em percentuais, para todas as configurações de precisão com suporte: