Zurück zur Übersicht

Begriff

HyperLogLog

Computer Science Algorithms S3
2 Quellen 0 Lernpfade 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Du hast 100 Millionen Besucher auf deiner Webseite. Du willst wissen: "Wie viele unique Visitors (unterschiedliche IPs) waren das?" Genau zu zählen (SELECT COUNT(DISTINCT ip)) ist extrem teuer (du musst alle IPs speichern -> GB an RAM). HyperLogLog (HLL) schätzt diese Zahl mit minimalem Speicher. Es braucht nur 12 KB (!), um Milliarden von Elementen zu zählen. Der Fehler liegt bei ca. 0.8% (vernachlässigbar für Analytics). Der Trick: Es schaut sich die Zufälligkeit der Binärdaten an (wie viele Nullen am Anfang stehen).

Merksatz: Ein probabilistischer Algorithmus zur Schätzung der Kardinalität (Anzahl eindeutiger Elemente) einer sehr großen Menge, der extrem wenig Speicherspeicher benötigt.


Quick-Check

  1. Genauigkeit?
    Bei Redis (16k Register) ca. 0.81%. Für "10.000 Besucher" sagt es vielleicht "9.920". Für Marketing reicht das. Für Banking nicht.
  2. Vereinigung?
    Genial: Du kannst zwei HLL-Strukturen einfach "mergen" (Max pro Bucket). So kannst du "Daily Users" zu "Weekly Users" zusammenfassen, ohne die Originaldaten zu haben.
  3. Name?
    LogLog (weil es den Logarithmus des Logarithmus der Anzahl speichert -> 64 Bit reichen für $2^{64}$ Elemente). HyperLogLog ist die verbesserte Version.