hll() (aggregatiefunctie)
Van toepassing op: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel-
De functie hll()
is een manier om het aantal unieke waarden in een set waarden te schatten. Dit doet u door tussenliggende resultaten te berekenen voor aggregatie binnen de operator voor een groep gegevens samen te vatten met behulp van de functie dcount
.
Lees meer over het onderliggende algoritme (HyperLogLog) en de nauwkeurigheid van de schatting.
Notitie
Deze functie wordt gebruikt in combinatie met de operator summarize.
Syntaxis
hll
(
expr [,
nauwkeurigheid])
Meer informatie over syntaxisconventies.
Parameters
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
expr- | string |
✔️ | De expressie die wordt gebruikt voor de aggregatieberekening. |
nauwkeurigheid | int |
De waarde waarmee de balans tussen snelheid en nauwkeurigheid wordt bepaald. Als deze niet is opgegeven, wordt de standaardwaarde 1 . Zie Schattingsnauwkeurigheidvoor ondersteunde waarden. |
Retourneert
Retourneert de tussenliggende resultaten van het unieke aantal expr in de hele groep.
Notitie
- De resultaten van hll(), hll_if() en hll_merge() kunnen worden opgeslagen en later worden opgehaald. U kunt bijvoorbeeld een dagelijks uniek gebruikersoverzicht maken, dat vervolgens kan worden gebruikt om wekelijkse aantallen te berekenen. De exacte binaire weergave van deze resultaten kan echter na verloop van tijd veranderen. Er is geen garantie dat deze functies identieke resultaten produceren voor identieke invoer, en daarom raden we u niet aan om erop te vertrouwen.
- Gebruik de functie hll_merge om de resultaten van meerdere
hll()
functies samen te voegen. - Gebruik de functie dcount_hll om het aantal afzonderlijke waarden uit de uitvoer van de
hll()
- ofhll_merge
-functies te berekenen.
Voorbeeld
In het volgende voorbeeld wordt de functie hll()
gebruikt om het aantal unieke waarden van de kolom DamageProperty
binnen elke tijdsbak van 10 minuten van de StartTime
kolom te schatten.
StormEvents
| summarize hll(DamageProperty) by bin(StartTime,10m)
uitvoer
De weergegeven resultatentabel bevat alleen de eerste 10 rijen.
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"],[]] |
Nauwkeurigheid van schatting
Deze functie maakt gebruik van een variant van het HyperLogLog-algoritme (HLL), waarmee een stochastische schatting van de setkardinaliteit wordt uitgevoerd. Het algoritme biedt een 'knop' die kan worden gebruikt om de nauwkeurigheid en uitvoeringstijd per geheugengrootte te verdelen:
Nauwkeurigheid | Fout (%) | Aantal vermeldingen |
---|---|---|
0 | 1.6 | 212 |
1 | 0.8 | 214 |
2 | 0.4 | 216 |
3 | 0.28 | 217 |
4 | 0.2 | 218 |
Notitie
De kolom Aantal vermeldingen is het aantal 1-bytetellers in de HLL-implementatie.
Het algoritme bevat enkele voorzieningen voor het uitvoeren van een perfecte telling (nulfout), als de setkardinaliteit klein genoeg is:
- Wanneer het nauwkeurigheidsniveau wordt
1
, worden 1000 waarden geretourneerd - Wanneer het nauwkeurigheidsniveau wordt
2
, worden 8000 waarden geretourneerd
De foutgrens is probabilistisch, niet een theoretische gebonden. De waarde is de standaarddeviatie van foutverdeling (de sigma) en 99,7% van de schattingen hebben een relatieve fout van minder dan 3 x sigma.
In de volgende afbeelding ziet u de kansverdelingsfunctie van de relatieve schattingsfout, in percentages, voor alle ondersteunde nauwkeurigheidsinstellingen:
Verwante inhoud
- Aggregatiefunctietypen in één oogopslag
- hll() en tdigest() gebruiken
- hll_if() (aggregatiefunctie)
- hll_merge() (aggregatiefunctie)