Dela via


dcount_hll()

Beräknar det distinkta antalet från resultat som genereras av hll eller hll_merge.

Läs om den underliggande algoritmen (HyperLogLog) och uppskattningsprecision.

Syntax

dcount_hll(Hll)

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
Hll string ✔️ Ett uttryck som genereras av hll - eller hll-merge som ska användas för att hitta det distinkta antalet.

Returer

Returnerar det distinkta antalet för varje värde i hll.

Exempel

I följande exempel visas det distinkta antalet hll-sammanfogade resultat.

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

Resultat

dcount_hll_hllMerged
315

Uppskattningsnoggrannhet

Den här funktionen använder en variant av HLL-algoritmen (HyperLogLog), som gör en stokastisk uppskattning av den angivna kardinaliteten. Algoritmen ger en "ratt" som kan användas för att balansera noggrannhet och körningstid per minnesstorlek:

Noggrannhet Fel (%) Antal poster
0 1.6 212
1 0,8 214
2 0,4 216
3 0,28 217
4 0,2 218

Anteckning

Kolumnen "antal poster" är antalet 1 byte-räknare i HLL-implementeringen.

Algoritmen innehåller vissa bestämmelser för att göra ett perfekt antal (noll fel), om den inställda kardinaliteten är tillräckligt liten:

  • När noggrannhetsnivån är 1returneras 1 000 värden
  • När noggrannhetsnivån är 2returneras 8 000 värden

Felgränsen är probabilistisk, inte en teoretisk bindning. Värdet är standardavvikelsen för felfördelningen (sigma) och 99,7 % av uppskattningarna kommer att ha ett relativt fel på under 3 x sigma.

Följande bild visar sannolikhetsfördelningsfunktionen för det relativa uppskattningsfelet, i procent, för alla noggrannhetsinställningar som stöds:

Diagram som visar HLL-felfördelningen.