hll() (agregační funkce)
Funkce hll()
představuje způsob, jak odhadnout počet jedinečných hodnot v sadě hodnot. Provede to tak, že vypočítá mezivýsledky agregace v rámci operátoru sumarizace pro skupinu dat pomocí dcount
funkce .
Přečtěte si o základním algoritmu (HyperLogLog) a o přesnosti odhadu.
Poznámka
Tato funkce se používá ve spojení s operátorem summarize.
Tip
- Pomocí funkce hll_merge sloučíte výsledky více
hll()
funkcí. - Funkce dcount_hll slouží k výpočtu počtu jedinečných hodnot z výstupu
hll()
funkcí nebohll_merge
.
Důležité
Výsledky hll(), hll_if() a hll_merge() je možné uložit a později načíst. Můžete například chtít vytvořit denní souhrn jedinečných uživatelů, který pak můžete použít k výpočtu týdenních počtů. Přesné binární znázornění těchto výsledků se však může v průběhu času měnit. Neexistuje žádná záruka, že tyto funkce pro identické vstupy vygenerují identické výsledky, a proto nedoporučujeme spoléhat se na ně.
Syntax
hll
(
výraz [,
přesnost])
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
Výraz | string |
✔️ | Výraz použitý pro výpočet agregace. |
Přesnost | int |
Hodnota, která řídí rovnováhu mezi rychlostí a přesností. Pokud není zadáno, výchozí hodnota je 1 . Podporované hodnoty najdete v tématu Přesnost odhadu. |
Návraty
Vrátí mezivýsledky jedinečného počtu výrazů ve skupině.
Příklad
V následujícím příkladu hll()
se funkce používá k odhadu počtu jedinečných DamageProperty
hodnot sloupce v rámci každého 10minutového časového intervalu StartTime
sloupce.
StormEvents
| summarize hll(DamageProperty) by bin(StartTime,10m)
Zobrazená tabulka výsledků obsahuje pouze prvních 10 řádků.
StartTime | hll_DamageProperty |
---|---|
2007-01-01T0: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"],[]] |
Přesnost odhadu
Tato funkce používá variantu algoritmu HyperLogLog (HLL), který provádí stochastický odhad kardinality sady. Algoritmus poskytuje "knoflík", který lze použít k vyvážení přesnosti a doby provádění podle velikosti paměti:
Přesnost | Chyba (%) | Počet položek |
---|---|---|
0 | 1.6 | 212 |
1 | 0.8 | 214 |
2 | 0.4 | 216 |
3 | 0,28 | Č. 217 |
4 | 0.2 | 218 |
Poznámka
Sloupec "počet položek" je počet 1-bajtové čítače v implementaci HLL.
Algoritmus obsahuje několik ustanovení pro provedení dokonalého počtu (chyba nula), pokud je nastavená kardinalita dostatečně malá:
- Pokud je
1
úroveň přesnosti , vrátí se 1 000 hodnot. - Pokud je
2
úroveň přesnosti , vrátí se 8 000 hodnot.
Chybová hranice je pravděpodobnostní, nikoli teoretická. Hodnota je směrodatnou odchylkou rozdělení chyb (sigma) a 99,7 % odhadů bude mít relativní chybu pod 3 x sigma.
Následující obrázek ukazuje funkci rozdělení pravděpodobnosti chyby relativního odhadu v procentech pro všechna podporovaná nastavení přesnosti:
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro