Megosztás a következőn keresztül:


hll() (aggregációs függvény)

A hll() függvény az egyedi értékek számának becslése egy értékkészletben. Ezt úgy teszi, hogy a függvényt használó adatcsoport összesítésének köztes eredményeit számítja ki az dcountösszegző operátoron belül.

Olvassa el a mögöttes algoritmust (HyperLogLog) és a becslés pontosságát.

Megjegyzés

Ezt a függvényt az összegző operátorral együtt használja a rendszer.

Tipp

  • A hll_merge függvénnyel egyesítheti több hll() függvény eredményeit.
  • A dcount_hll függvénnyel kiszámíthatja a vagy hll_merge függvény kimenetétől hll() eltérő értékek számát.

Fontos

A hll(), hll_if() és hll_merge() eredményei tárolhatók és később lekérhetők. Előfordulhat például, hogy létre szeretne hozni egy napi egyedi felhasználói összefoglalót, amely aztán a heti számok kiszámítására használható. Az eredmények pontos bináris ábrázolása azonban idővel változhat. Nincs garancia arra, hogy ezek a függvények azonos eredményeket adnak az azonos bemenetekhez, ezért nem javasoljuk, hogy támaszkodjanak rájuk.

Syntax

hll(expr [,pontosság])

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
Kifejezés string ✔️ Az összesítés kiszámításához használt kifejezés.
Pontosság int A sebesség és a pontosság közötti egyensúlyt szabályozó érték. Ha nincs meghatározva, az alapértelmezett érték a következő 1: . A támogatott értékekért lásd: Becslés pontossága.

Válaszok

A csoport különböző kitevőszámának köztes eredményeit adja eredményül.

Példa

Az alábbi példában a függvény az hll() oszlop egyedi értékeinek számát becsüli meg az DamageProperty oszlop minden 10 perces időgyűjtőjében StartTime .

StormEvents
| summarize hll(DamageProperty) by bin(StartTime,10m)

A megjelenített eredménytábla csak az első 10 sort tartalmazza.

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"],[]]

Becslés pontossága

Ez a függvény a HyperLogLog (HLL) algoritmus egy variánsát használja, amely a beállított számosság sztochasztikus becslését végzi el. Az algoritmus egy "gombot" biztosít, amellyel kiegyensúlyozni lehet a memóriaméretenkénti pontosságot és végrehajtási időt:

Pontosság Hiba (%) Bejegyzésszám
0 1.6 212
1 0,8 214
2 0,4 216
3 0,28 217
4 0,2 218

Megjegyzés

A "bejegyzésszám" oszlop az 1 bájtos számlálók száma a HLL-implementációban.

Az algoritmus tartalmaz néhány rendelkezést a tökéletes szám (nulla hiba) elvégzésére, ha a beállított számosság elég kicsi:

  • Ha a pontossági szint , 1a rendszer 1000 értéket ad vissza
  • Ha a pontossági szint , 2a rendszer 8000 értéket ad vissza

A hibakötés valószínűségi, nem elméleti kötött. Az érték a hibaeloszlás szórása (a szigma), és a becslések 99,7%-a 3 x szigma alatti relatív hibával fog rendelkezni.

Az alábbi képen a relatív becslési hiba valószínűségeloszlási függvénye látható százalékban az összes támogatott pontossági beállítás esetében:

A hll hibaeloszlást ábrázoló grafikon.