Partilhar via


dcount() (função de agregação)

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Calcula uma estimativa do número de valores distintos que são tomados por uma expressão escalar no grupo de resumo.

Os valores nulos são ignorados e não entram no cálculo.

Observação

A função de agregação dcount() é principalmente útil para estimar a cardinalidade de conjuntos enormes. Ele troca precisão por desempenho e pode retornar um resultado que varia entre as execuções. A ordem das entradas pode ter um efeito sobre a sua saída.

Observação

Esta função é usada em conjunto com o operador resumo.

Sintaxe

dcount ( expr[,precisão])

Saiba mais sobre convenções de sintaxe.

Parâmetros

Designação Tipo Necessário Descrição
expr string ✔️ A entrada cujos valores distintos devem ser contados.
precisão int O valor que define a precisão da estimativa solicitada. O valor padrão é 1. Consulte de precisão da estimativa para obter os valores suportados.

Devoluções

Devolve uma estimativa do número de valores distintos de expr no grupo.

Exemplo

Este exemplo mostra quantos tipos de eventos de tempestade aconteceram em cada estado.

StormEvents
| summarize DifferentEvents=dcount(EventType) by State
| order by DifferentEvents

A tabela de resultados mostrada inclui apenas as primeiras 10 linhas.

Estado DifferentEvents
TEXAS 27
CALIFÓRNIA 26
PENSILVÂNIA 25
GEÓRGIA 24
ILLINOIS 23
MARYLAND 23
CAROLINA DO NORTE 23
MICHIGAN 22
FLÓRIDA 22
OREGÃO 21
KANSAS 21
... ...

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:

Gráfico mostrando a distribuição de erro hll.