hll() (sammansättningsfunktion)
Funktionen hll()
är ett sätt att beräkna antalet unika värden i en uppsättning värden. Det gör den genom att beräkna mellanliggande resultat för aggregering inom sammanfattningsoperatorn för en grupp data med hjälp dcount
av funktionen.
Läs om den underliggande algoritmen (HyperLogLog) och uppskattningsprecisionen.
Anteckning
Den här funktionen används tillsammans med sammanfattningsoperatorn.
Tips
- Använd funktionen hll_merge för att sammanfoga resultatet av flera
hll()
funktioner. - Använd funktionen dcount_hll för att beräkna antalet distinkta värden från utdata från
hll()
funktionerna ellerhll_merge
.
Viktigt
Resultatet av hll(), hll_if() och hll_merge() kan lagras och hämtas senare. Du kanske till exempel vill skapa en daglig sammanfattning av unika användare, som sedan kan användas för att beräkna veckoantal. Den exakta binära representationen av dessa resultat kan dock ändras med tiden. Det finns ingen garanti för att dessa funktioner ger identiska resultat för identiska indata, och därför rekommenderar vi inte att du förlitar oss på dem.
Syntax
hll
(
expr [,
noggrannhet])
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
Uttryck | string |
✔️ | Uttrycket som används för aggregeringsberäkningen. |
Noggrannhet | int |
Värdet som styr balansen mellan hastighet och noggrannhet. Om det är ospecificerat är 1 standardvärdet . Värden som stöds finns i Uppskattningsprecision. |
Returer
Returnerar mellanliggande resultat för distinkt antal expr i gruppen.
Exempel
I följande exempel hll()
används funktionen för att beräkna antalet unika värden för DamageProperty
kolumnen inom varje tidsintervall på 10 minuter i StartTime
kolumnen.
StormEvents
| summarize hll(DamageProperty) by bin(StartTime,10m)
Resultattabellen som visas innehåller bara de första 10 raderna.
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"],[]] |
Uppskattningsnoggrannhet
Den här funktionen använder en variant av algoritmen HyperLogLog (HLL), som gör en stokastisk uppskattning av ange kardinalitet. Algoritmen tillhandahåller en "knopp" 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
1
returneras 1 000 värden - När noggrannhetsnivån är
2
returneras 8 000 värden
Felgränsen är probabilistisk, inte en teoretisk gräns. 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:
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för