hll() (Aggregationsfunktion)
Die hll()
-Funktion ist eine Möglichkeit, die Anzahl der eindeutigen Werte in einer Gruppe von Werten zu schätzen. Dies geschieht durch Berechnung von Zwischenergebnissen für die Aggregation innerhalb des summarize-Operators für eine Datengruppe mithilfe der dcount
-Funktion.
Erfahren Sie mehr über den zugrunde liegenden Algorithmus (HyperLogLog og) und die Schätzgenauigkeit.
Hinweis
Diese Funktion wird in Verbindung mit dem summarize-Operator verwendet.
Tipp
- Verwenden Sie die funktion hll_merge , um die Ergebnisse mehrerer
hll()
Funktionen zusammenzuführen. - Verwenden Sie die dcount_hll-Funktion , um die Anzahl unterschiedlicher Werte aus der Ausgabe der
hll()
Funktionen oderhll_merge
zu berechnen.
Wichtig
Die Ergebnisse von hll(), hll_if() und hll_merge() können gespeichert und später abgerufen werden. Beispielsweise können Sie eine tägliche Zusammenfassung für eindeutige Benutzer erstellen, die dann zum Berechnen der wöchentlichen Anzahl verwendet werden kann. Die genaue binäre Darstellung dieser Ergebnisse kann sich jedoch im Laufe der Zeit ändern. Es gibt keine Garantie, dass diese Funktionen identische Ergebnisse für identische Eingaben erzeugen, und daher raten wir davon ab, sich darauf zu verlassen.
Syntax
hll
(
Expr [,
Genauigkeit])
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Typ | Erforderlich | BESCHREIBUNG |
---|---|---|---|
expr | string |
✔️ | Der Ausdruck, der für die Aggregationsberechnung verwendet wird. |
Genauigkeit | int |
Der Wert, der das Gleichgewicht zwischen Geschwindigkeit und Genauigkeit steuert. Wenn nichts angegeben wird, beträgt der Standardwert 1 . Unterstützte Werte finden Sie unter Schätzgenauigkeit. |
Gibt zurück
Gibt die Zwischenergebnisse der unterschiedlichen Anzahl von Expr in der Gruppe zurück.
Beispiel
Im folgenden Beispiel wird die hll()
Funktion verwendet, um die Anzahl der eindeutigen Werte der DamageProperty
Spalte innerhalb jedes 10-Minütigen Zeitbehälters der StartTime
Spalte zu schätzen.
StormEvents
| summarize hll(DamageProperty) by bin(StartTime,10m)
Die angezeigte Ergebnistabelle enthält nur die ersten 10 Zeilen.
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"],[]] |
Schätzgenauigkeit
Diese Funktion verwendet eine Variante des HyperLogLogLog-Algorithmus (HLL), der eine stochastische Schätzung der Festgelegtenkardinalität durchführt. Der Algorithmus stellt einen „Knopf“ bereit, über den Genauigkeit und Ausführungszeit pro Arbeitsspeichergröße ausgeglichen werden können:
Genauigkeit | Fehler (%) | Entry count |
---|---|---|
0 | 1.6 | 212 |
1 | 0,8 | 214 |
2 | 0.4 | 216 |
3 | 0.28 | 217 |
4 | 0.2 | 218 |
Hinweis
Die Spalte „entry count“ ist die Anzahl von 1-Byte-Leistungsindikatoren in der HLL-Implementierung.
Der Algorithmus enthält einige Vorkehrungen für eine perfekte Anzahl (null Fehler), wenn die festgelegte Kardinalität klein genug ist:
- Wenn die Genauigkeitsgrad
1
ist, werden 1.000 Werte zurückgegeben. - Wenn die Genauigkeitsgrad
2
ist, werden 8.000 Werte zurückgegeben.
Die Fehlerbindung ist probabilistisch und keine theoretische Grenze. Der Wert ist die Standardabweichung der Fehlerverteilung (Sigma), und 99,7 % der Schätzungen weisen einen relativen Fehler von unter 3 x Sigma auf.
Die folgende Abbildung zeigt die Wahrscheinlichkeitsverteilungsfunktion des relativen Schätzfehlers in Prozent für alle unterstützten Genauigkeitseinstellungen:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für