Dieser Beitrag ist der zweite Teil einer zweiteiligen Reihe zur Optimierung der Performance von Databricks-AI/BI-Dashboards im großen Scale.
Im vorherigen Beitrag haben wir uns darauf konzentriert, wie Layout, Filter, Parameter und Caching bestimmen, wie viel Arbeit das System bei jedem Klick leistet. Diese Optimierungen reichen oft aus, damit sich Dashboards schnell anfühlen.
In diesem Beitrag konzentrieren wir uns auf die Plattformgrundlagen, die auch bei wachsender Nutzung für Schnelligkeit sorgen. Wir befassen uns mit der Auswahl und Dimensionierung von Warehouses, der Datenmodellierung und Schemaauswahl, dem Dateilayout und Clustering sowie der Frage, wann man sich auf die Materialisierung anstelle einer Neuberechnung verlassen sollte, um eine stabile, vorhersagbare Performance zu erzielen.
Stimmen Sie die Form Ihres Dashboards (Seiten, Abfragemix, Benutzer-Burstiness) auf den Typ und die Größe des DBSQL-Warehouse ab, damit das System die Arbeit schnell und ohne Warteschlangenbildung annehmen kann.
Da sichtbare Widgets gemeinsam übermittelt werden, erzeugen Dashboards naturgemäß kurzlebige Nebenläufigkeitsspitzen. Wenn das Warehouse die Lastspitze nicht abfangen kann, kommt es zu Warteschlangen (Peak Queued Queries > 0) und inkonsistenten Ladezeiten für Kacheln – besonders zu Spitzenzeiten.
Weitere Informationen finden Sie unter: https://docs.databricks.com/aws/en/compute/sql-warehouse/warehouse-behavior
Gut konzipierte Datenmodelle sind ein grundlegendes Performance Feature für AI/BI-Dashboards. Das Sternschema bleibt das effektivste und vorhersehbarste Modellierungsmuster für interaktive Analysen, da es direkt damit übereinstimmt, wie BI-Abfragen geschrieben und optimiert werden.
In einem Sternschema enthält eine zentrale Faktentabelle messbare Ereignisse (Vertrieb, Transaktionen, Klicks) und wird mit umgebenden Dimensionstabellen (Datum, Kunde, Produkt, Region) verknüpft. Diese Struktur minimiert die Komplexität von Joins, reduziert die Datenduplizierung und ermöglicht effiziente Aggregationen mit einfachen, stabilen Abfragemustern. Dadurch führen Dashboards weniger Joins aus, scannen weniger Daten und profitieren konsistenter von Caching und Abfrageoptimierung.
Ein kritisches, aber oft übersehenes Detail sind die Datentypen der Join-Schlüssel. Dimensions- und Faktentabellen-Joins sollten integerbasierte Surrogatschlüssel und keine Strings verwenden. Integer-Joins sind deutlich schneller, benötigen weniger Speicher, verbessern die Cache-Effizienz und ermöglichen es Photon, Joins über hochoptimierte vektorisierte Pfade auszuführen. String-basierte Joins erhöhen die CPU-Kosten und können mit wachsender Datenmenge und Gleichzeitigkeit zu einem versteckten Engpass werden.
In Databricks passt dieses Muster natürlich zur Lakehouse-Architektur. Die Gold-Schicht sollte als Fakten und Dimensionen modelliert werden, die als Unity Catalog-Tabellen gespeichert sind und eine verwaltete, wiederverwendbare semantische Grundlage für AI/BI-Dashboards, Metrikansichten und materialisierte Ansichten bieten.
Das Fazit ist einfach: Modellieren Sie, wie BI-Abfragen tatsächlich ausgeführt werden. Ein Sternschema mit Integer-Join-Schlüsseln in der Gold-Schicht liefert einfacheres SQL, schnellere Joins und eine besser vorhersagbare Performance bei der Scale.
Gestalten Sie Ihr Datenlayout so, dass Dashboards pro Abfrage wesentlich weniger Daten lesen, und lassen Sie die Engine dann Parquet -Statistiken und selektive Lesevorgänge nutzen.
Databricks SQL ist am schnellsten, wenn Folgendes möglich ist:
Die beiden größten Vorteile sind also: Dateien in optimale Größen komprimieren und
Daten clustern, damit Prädikate Dateien eliminieren.
Weitere Details finden Sie hier: https://www.databricks.com/discover/pages/optimize-data-workloads-guide
Ein klassisches Anti-Muster: ein Dashboard-Filter wie WHERE customer_id = ? sieht selektiv aus, aber wenn die Daten nicht geclustert sind, greift die Engine dennoch auf einen großen Teil der Dateien zu, da die übereinstimmenden Zeilen überall verstreut sind.
Ergebnis: Weniger Dateizugriffe, mehr übersprungene Blöcke und eine kürzere Gesamtlaufzeit für die gleichen Erkenntnisse, ohne fehleranfällige Indizes oder manuelle Abstimmung.
Weitere Informationen finden Sie unter:
In Optimierung Nr. 7: Best Practices für die Datenmodellierung anwenden haben wir uns auf die Bedeutung des Sternschemas mit klar definierten Fakten, Dimensionen und KPIs konzentriert. Metric Views sind eine direkte Fortsetzung dieser Prinzipien in Databricks AI/BI.
Metrikansichten sind auf BI-Semantik ausgelegt: Sie bestehen aus Kennzahlen und Dimensionen, was sie zu einer natürlichen Abstraktion für die Modellierung von KPIs macht. Sie ermöglichen es Teams, Geschäftsmetriken einmalig zu definieren und dieselben KPIs konsistent über mehrere Dashboards, Agents und andere Client-Tools hinweg wiederzuverwenden. Dies reduziert Redundanzen, verhindert KPI-Drift und sorgt dafür, dass die Analyselogik bei zunehmender Nutzung abgestimmt bleibt.
Mit der Materialisierung für Metrikenansichten berechnet und pflegt Databricks automatisch häufig verwendete Aggregate. Diese Aggregate werden inkrementell aktualisiert, und zur Abfragezeit schreibt der Optimierer Dashboard-Abfragen transparent auf das am besten passende vorausberechnete Ergebnis um. Dadurch scannen Dashboard-Abfragen pro Interaktion weitaus weniger Daten – ohne dass Teams separate Aggregationstabellen oder benutzerdefinierte Pipelines verwalten müssen.
Wenn Metric Views nicht verwendet werden, kann derselbe Ansatz mit Materialized Views angewendet werden. Zum Beispiel kann eine aggregierte Version einer großen Faktentabelle vorberechnet und gespeichert werden, sodass Dashboards einen wesentlich kleineren, optimierten Datensatz abfragen können. Dies verbessert die Performance erheblich, indem die Menge der gescannten Daten reduziert und das wiederholte Neuberechnen aufwendiger Aggregationen für jede Benutzerinteraktion vermieden wird.
Alle diese Techniken optimieren dasselbe: weniger Daten scannen. Durch die einmalige Definition von KPIs und die Vorabberechnung häufig verwendeter Aggregate mit Metric Views oder Materialized Views vermeiden Dashboards die wiederholte Aggregation großer Faktentabellen. Weniger gescannte Bytes führen direkt zu schnelleren Abfragen, einer vorhersagbareren Latenz und einer besseren Performance bei Scale.
Weitere Informationen finden Sie unter:
Datentypen beeinflussen direkt, wie viele Daten Databricks SQL für jede Dashboard-Abfrage lesen, verschieben und verarbeiten muss. Selbst bei perfektem SQL und Caching erhöhen ineffiziente Datentypen unbemerkt die IO, den Speicherdruck und die CPU-Kosten – was sich in langsameren Kacheln und geringerer Gleichzeitigkeit äußert.
Unter der Haube arbeitet Databricks SQL mit spaltenbasierten Parquet-Dateien. Kleinere, gut gewählte Datentypen bedeuten:
Einige Mechanismen sind am wichtigsten:
Bei BI-Workloads fallen diese Entscheidungen schnell ins Gewicht: Eine Dashboard-Seite kann Dutzende von Abfragen ausführen, von denen jede Millionen von Zeilen scannt. Schmale, gut typisierte Spalten reduzieren die Scan-Zeit, verbessern die Cache-Trefferquoten und ermöglichen Photon, mit maximaler Effizienz zu arbeiten.
Faustregel: Behandeln Sie das Schemadesign als Performance-Feature. Optimieren Sie Datentypen einmal im Lakehouse, und jedes Dashboard – aktuell und zukünftig – profitiert automatisch.
Das Thema, das sich durch alle zehn Best Practices zieht, ist einfach: Zahlen Sie nicht jedes Mal den vollen Preis für eine Dashboard-Interaktion. Sorgen Sie dafür, dass das System pro Ansicht weniger Arbeit leistet (weniger Fan-Out, weniger gescannte Daten), und sorgen Sie dafür, dass die Arbeit, die es leistet, wiederverwendbar ist (gemeinsam genutzte Datasets, deterministische Abfragen, Caches und vorberechnete Aggregate). Wenn diese Teile zusammenpassen, wird die Performance unter Parallelität stabil – und die Kosten werden vorhersagbar.
Konkret sollten Sie in der Lage sein, diese Fragen für Ihre meistgenutzten Dashboards mit „Ja“ zu beantworten:
Wählen Sie ein Dashboard aus, das tatsächlich genutzt wird, führen Sie eine schnelle Baseline-Messung durch (First Paint, Interaktionslatenz, Spitzenwert der Abfragen in der Warteschlange, Spill, Cache-Trefferquote), wenden Sie einige der wirkungsvollsten Änderungen an und messen Sie erneut. Wenn Sie das konsequent tun, wird Ihre AI/BI mit wachsenden Datenmengen und Benutzerzahlen von „manchmal schnell“ zu zuverlässig schnell.
(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag
Produto
June 12, 2024/11 min de leitura

