Direkt zum Hauptinhalt
Produkt

Ungefähre Antworten, exakte Entscheidungen: Neue Sketch-Funktionen für Analysen

Vier neue Sketch-Funktionen in Databricks beschleunigen Perzentile, eindeutige Zählungen und Top-K-Abfragen um Größenordnungen

von Daniel Tenedorio, Kent Marten, Gengliang Wang und Chenhao Li

  • Perzentile in Millisekunden, nicht Minuten: KLL-Quantil-Sketches berechnen P50, P90, P99 über massive Datensätze im konstanten Speicher. Speichern Sie Sketches und führen Sie sie zusammen, um sofort inkrementelle Aktualisierungen zu erhalten.
  • Zielgruppenüberschneidung zu einem Bruchteil der Kosten: Theta- und Tuple-Sketches führen Vereinigungen, Schnitte und Mengendifferenzen für eindeutige Wertemengen durch. Tuple-Sketches assoziieren auch Metriken (Summen, Minima, Maxima) mit jedem Schlüssel für kombinierte Zählungen und Aggregationen.
  • Echtzeit-Trendanalysen ohne Neuberechnung: Ungefähre Top-K-Funktionen identifizieren die häufigsten Elemente im begrenzten Speicher, die über Zeitfenster zusammengeführt werden können.
New Sketch Functions for Analytics
Große Datensätze werden in kompakte, zusammenführbare Skizzen komprimiert, die schnelle Perzentilabfragen und Aggregationen ermöglichen, ohne Rohdaten zu scannen.

Viele analytische Fragen dienen der Entscheidungsunterstützung, nicht der Prüfung. Wenn die Kenntnis von "~4,7 Mio. eindeutige Nutzer ±1 %" zur gleichen Entscheidung führt wie "4.712.389 eindeutige Nutzer", ist die ungefähre Antwort zu einem Bruchteil der Kosten besser.

Jedes Data Warehouse hat eine Handvoll Abfragen, die den meisten Rechenaufwand verursachen: Perzentile, die globale Sortierungen erzwingen, eindeutige Zählungen, die jeden einzelnen Wert verfolgen, Top-K-Ranglisten, die ganze Datensätze neu mischen. Databricks unterstützt jetzt vier neue Sketch-Funktionsfamilien, die auf Apache DataSketches basieren und diese exakten Berechnungen durch Approximationen mit begrenztem Speicher ersetzen. Der Kompromiss: 1-2 % konfigurierbarer relativer Fehler. Der Vorteil: um Größenordnungen weniger Rechenaufwand, plus Skizzen, die Sie speichern, zusammenführen und erneut abfragen können, ohne auf Rohdaten zugreifen zu müssen.

Perzentilberechnungen in Millisekunden, nicht in Minuten

Wenn Sie auf einer Tabelle mit einer Milliarde Zeilen PERCENTILE(response_time_ms, 0.99) aufrufen, muss die Engine jeden Wert global sortieren. Eine vollständige Cluster-Shuffle kann Minuten dauern und Gigabytes an Speicher verbrauchen. Für ein Dashboard, das alle 5 Minuten aktualisiert wird, zahlen Sie diese Kosten immer wieder.

KLL-Skizzen sind kompakte und zusammenführbare Zusammenfassungen, die zur Beantwortung von Quantilfragen entwickelt wurden. Sie ermöglichen es Ihnen, diese Sortierung zu ersetzen und dabei den gleichen begrenzten Speicher zu verwenden, unabhängig davon, ob Sie tausend oder eine Billion Werte verarbeiten. Der typische relative Fehler beträgt 1-2 % und ist konfigurierbar, was gut im handhabbaren Bereich für Latenzüberwachung, Kapazitätsplanung und Anomalieerkennung liegt.

Der eigentliche Vorteil liegt im Workflow, den Skizzen ermöglichen. Erstellen Sie sie einmal während Ihres täglichen ETL. Speichern Sie sie als Spalten in Delta-Tabellen. Wenn ein Dashboard P50/P90/P99 für einen beliebigen Zeitraum benötigt, führen Sie die vorausberechneten Skizzen in Millisekunden zusammen, anstatt Rohdaten erneut zu scannen. Extrahieren Sie mehrere Quantile aus einer einzigen Skizze in einem Durchgang mit kll_get_quantile_bigint(sketch, ARRAY(0.5, 0.9, 0.99)).

Zielgruppenüberschneidungsanalyse ohne hohe Rechenkosten

Wie viele Nutzer haben Ihre Super-Bowl-Werbung gesehen, aber nicht Ihre Instagram-Kampagne? Die Analyse von Zielgruppenüberschneidungen ist Kernstück der Marketingmessung. Sie müssen die Gesamtreichweite (Nutzer, die mindestens eine Kampagne gesehen haben), die Überschneidung (Nutzer, die mehrere Kampagnen gesehen haben) und die exklusive Reichweite (Nutzer, die nur eine Kampagne gesehen haben) kennen. Die exakte Berechnung erfordert jedoch, dass alle Nutzer-IDs im Speicher gesammelt und Mengenoperationen über potenziell Milliarden von Identifikatoren durchgeführt werden. In großem Maßstab wird dies unpraktisch oder unmöglich.

Theta-Skizzen fassen eine Menge eindeutiger Werte in begrenztem Speicher zusammen und unterstützen die vollständige Mengenalgebra: Vereinigungen, Schnittmengen und Differenzen. Erstellen Sie eine Skizze pro Kampagne und kombinieren Sie sie dann mathematisch:

Der exakte Ansatz würde eine UNION zur Deduplizierung und dann einen JOIN zum Finden der Überschneidung erfordern, möglicherweise zweimaliges Shuffling von Roh-Nutzer-IDs über Ihren Cluster. Mit Theta-Skizzen generieren Sie kompakte Binärobjekte im Kilobyte-Bereich, und die Mengenoperationen finden lokal in Mikrosekunden statt. Dies macht tägliche Reichweitenkurven, Inkrementalitätsmessungen und kanalübergreifende Deduplizierung praktikabel.

Echtzeit-Bestenlisten ohne Neuberechnung von Rohdaten

Was ist gerade angesagt? Es ist eine einfache Frage mit einer teuren exakten Antwort: Zählen Sie jeden einzelnen Wert, speichern Sie all diese Zählungen, shufflen Sie sie über Ihren Cluster, sortieren Sie global. Für Event-Streams mit hoher Kardinalität wie Suchprotokolle oder Klickströme ist dies ein Batch-Job, keine Live-Abfrage.

Approximate Top-K-Skizzen verfolgen Ihre am häufigsten vorkommenden Elemente in begrenztem Speicher und ermöglichen es Ihnen, über Partitionen und Zeitfenster hinweg zusammenzuführen, um Ergebnisse sofort zu extrahieren. Seltene Elemente könnten verworfen werden, was in Ordnung ist, da Sie nicht danach suchen.

Mit approx_top_k_combine wird Ihr "Trending diese Woche"-Dashboard zu einer Zusammenführung von 168 vorausberechneten Skizzen anstatt zu einem Scan von Milliarden von Rohereignissen. Für Streaming-Workloads führen Sie die Skizze jedes Micro-Batches zu einer Gesamtsumme zusammen und zeigen Sie die Ergebnisse in Echtzeit an. Was einst ein Batch-Job war, wird zu einer Live-Bestenliste.

Kardinalität und Umsatzattribution in einem Durchgang

Die Zählung eindeutiger Kunden ist eine Abfrage. Die Summe ihres Umsatzes ist eine andere. Beides korrekt zu tun, ohne Kunden, die in mehreren Perioden vorkommen, doppelt zu zählen, ist die Herausforderung.

Betrachten Sie eine gängige Analysefrage: "Wie viele eindeutige Kunden haben diesen Monat einen Kauf getätigt und wie hoch war ihr Gesamtumsatz nach Region?" Typischerweise würden Sie mit einer großen GROUP BY beginnen, Kundennummern deduplizieren und gleichzeitig Käufe über Milliarden von Transaktionen summieren. Und Sie können nicht einfach frühere Ergebnisse addieren, Kunden, die in beiden Perioden vorkommen, werden doppelt gezählt und ihr Umsatz überschätzt.

Tuple-Skizzen lösen dieses Problem, indem sie eindeutige Zählungen und Metrikaggregationen in einer einzigen, zusammenführbaren Struktur kombinieren.

Jede Skizze ordnet einem eindeutigen Kunden seinen aggregierten Umsatz zu. Wenn Sie über Tage hinweg zusammenführen, werden Kundenzählungen automatisch dedupliziert und Umsatzzusammenfassungen akkumuliert. Eine exakte inkrementelle Berechnung würde bedeuten, dass Sie jedes Mal, wenn sich der Datenbereich ändert, von Rohdaten neu verarbeiten müssten.

Erste Schritte mit der richtigen Skizze

Funktionsfamilie

Anwendungsfälle

KLL Quantil-Skizzen

Perzentile (P50, P90, P99)

Theta-Skizzen

Mengenoperationen auf eindeutigen Werten

Approximate Top-K

Häufigste Elemente

Tuple-Skizzen

Eindeutige Zählungen und Metrikaggregationen

Wann Skizzen verwenden: Dashboards, Trendanalysen, Überwachung, Marketing-Attribution – jede Abfrage, bei der ungefähre Antworten akzeptabel sind. Je größer Ihr Datensatz, desto besser. Wenn Sie sich nicht sicher sind, welche Skizze Sie verwenden sollen, bitten Sie Genie Code, Ihnen bei der richtigen Wahl zu helfen.

Wann exakt bleiben: Finanzprüfung, Compliance-Berichterstattung oder jeder Anwendungsfall, bei dem regulatorische oder geschäftliche Anforderungen präzise Werte verlangen.

Diese vier Funktionsfamilien verwandeln lang andauernde Abfragen in die günstigsten in Ihrem Warehouse. Erstellen Sie Skizzen einmal während ETL, speichern Sie sie in Delta, führen Sie sie beim Lesen zusammen. Die Rohdaten sind immer noch da, wenn die Prüfer fragen. Für alles andere ist eine Fehlermarge von 1 % und eine 1000-fache Beschleunigung ein willkommener Kompromiss.

Alle Funktionen funktionieren in SQL-, DataFrame- und Structured Streaming-Pipelines. In Apache Spark erstellte Skizzen sind mit anderen Systemen im Apache DataSketches-Ökosystem interoperabel. Sehen Sie sich die Dokumentation an (1, 2, 3, 4) für Funktionssignaturen und Beispiele und beginnen Sie noch heute mit Skizzen.

Besondere Erwähnung gilt Christopher Boumalhab (cboumalh auf GitHub) für die Implementierung und den Beitrag der Theta-Sketch- und Tuple-Sketch-Funktionsfamilien in Apache Spark.

(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag

Erhalten Sie die neuesten Beiträge in Ihrem Posteingang

Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.