Direkt zum Hauptinhalt

Die 5 wichtigsten Systemtabellen-Abfragen zur Analyse Ihrer Databricks-Kosten

Fünf SQL-Abfragen, die Kostentrends aufdecken, Ausgaben nach Teams aufschlüsseln, Anomalien melden und die Rechnung des nächsten Monats prognostizieren

von Drew Vander Wood

  • Sehen Sie schon heute, wohin Ihr Geld fließt, nicht erst nächsten Monat. Drei SQL-Abfragen schlüsseln die Databricks-Ausgaben nach Produkt, SQL-Warehouse und Team auf – unter Verwendung von Systemtabellen, die in Fast-Echtzeit aktualisiert werden.
    • Erfassen Sie Kostenspitzen noch am selben Tag. Eine gleitende 14-Tage-Baseline markiert anomale Tage im Vergleich zu einem gleitenden Mittelwert – bereit zur Verknüpfung mit einer DBSQL-Warnung.
    • Prognostizieren Sie Ihre zukünftige Entwicklung. AI_FORECAST extrapoliert Ihre jüngste Nutzung in einer einzigen Abfrage in eine 30-Tage-Ausgabenprognose – ganz ohne manuelle Zeitreihenmodellierung.

Databricks Systemtabellen bieten eine Fülle von Informationen darüber, wie Sie Databricks nutzen und was es kostet. Mit Fokus auf die Kosten bietet die Tabelle `system.billing.usage` eine global aggregierte Ansicht der Kosten für Ihr gesamtes Databricks-Konto. Zusammen mit `system.billing.list_prices` erhalten Sie so einen tiefen Einblick in die Verteilung Ihrer Ausgaben. Databricks bietet ein vordefiniertes Nutzungs-Dashboard, das einen hervorragenden Ausgangspunkt für das Verständnis der Kosten bietet. Wenn Sie jedoch die zugrunde liegenden Tabellen verstehen und Abfragen darauf erstellen, können Sie Ihre Erkenntnisse auf die nächste Stufe heben – insbesondere, wenn Sie die Visualisierungsfunktionen von Databricks nutzen.

Nachfolgend finden Sie fünf Abfragen, die Ihnen als Ausgangspunkt dienen, um Ihre Ausgaben besser zu verstehen. Wir beginnen mit einer einfachen täglichen Aufschlüsselung der Ausgaben nach Produkt, gehen dann dazu über, die Ausgaben aus der Perspektive bestimmter SQL Warehouses und Tags zu betrachten, und identifizieren schließlich Tage mit anomalen Ausgaben sowie die Prognose zukünftiger Ausgaben mit AI. Alle Abfragen liefern Erkenntnisse über die zurückgegebenen Ergebnisse, sind aber noch effektiver, wenn sie als Datensätze in einem AI/BI-Dashboard verwendet werden, wo die Daten visualisiert und mit Genie weiter abgefragt werden können.

Abfrage 1: Tägliche Ausgaben nach Produkt

Was die Abfrage zeigt

Unsere erste Abfrage ist einfach eine Aufschlüsselung der Ausgaben nach Tag und Produkt. Wir verknüpfen die Nutzungstabelle (unsere Faktentabelle) mit unserer Preistabelle (einer SCD-Typ-2-Dimension), um unsere Ausgaben im Zeitverlauf zu Listenpreisen zu erhalten. Wie oben erwähnt, können Sie die bereitgestellte Listenpreistabelle durch eine benutzerdefinierte Tabelle ersetzen, die alle relevanten Rabatte berücksichtigt, um die genauen Kosten zu sehen.

Wann die Abfrage zu verwenden ist

Diese Abfrage eignet sich hervorragend, um ein Gefühl dafür zu bekommen, wie Ihre Databricks-Umgebung genutzt wird, welche Produkte an Nutzung gewinnen oder verlieren und wie hoch die Gesamtausgaben sind. Ich würde bei der Untersuchung der Databricks-Ausgaben immer hier beginnen.

Worauf Sie achten sollten

Die Tabelle `system.billing.usage` enthält nur Databricks-Kosten. Das bedeutet, dass in allen Fällen, in denen Nicht-Serverless-Compute verwendet wird, die Kosten für die Cloud-Infrastruktur nicht enthalten sind und über die entsprechende Cloud-Konsole (Compute, Netzwerk, Speicher usw.) überprüft werden müssen.

Abfrage 2: Warehouse-Kostentrends

Was die Abfrage zeigt

Databricks SQL Warehouses sind ein unglaublich leistungsstarkes Tool für SQL-Analysten, Dashboards und Genie-Agents. Das Verständnis ihrer Kostentrends ist für jeden, der ein Databricks-Konto verwaltet, von entscheidender Bedeutung. Abfrage 2 ermöglicht es Ihnen, Trends bei der täglichen Nutzung von Warehouses zu erkennen, was – da Sie für den Verbrauch bezahlen – analog zu deren Nutzung ist.

Wann die Abfrage zu verwenden ist

Bei Databricks zahlen Sie für den Verbrauch. Die Entwicklung der Kosten für ein Warehouse zu sehen, ist also analog zur Entwicklung seiner Nutzung (zumindest in dem Sinne, dass die Betriebszeit mit der Nutzung korreliert). Diese Abfrage kann also im Wesentlichen die Nutzung von Warehouses zeigen, wobei eine höhere Nutzung auf eine längere Betriebszeit oder mehr Zeit im hochskalierten Zustand zurückzuführen sein kann. Nachdem Sie ein Warehouse mit dieser Abfrage für eine weitere Analyse identifiziert haben, können Sie dieses Warehouse mit der Systemtabelle `system.compute.warehouse_events` oder der Überwachungsseite für das Warehouse genauer untersuchen und prüfen, ob das Warehouse andere Skalierungs- oder Autostop-Einstellungen verwenden könnte. Die Warehouse-Nutzung kann auch schnelle Einblicke darüber geben, wie darauf aufbauende Dashboards oder Genie-Spaces genutzt werden und ob mehr getan werden sollte, um sie bei den Geschäftsanwendern bekannt zu machen.

Worauf Sie achten sollten

Standardmäßig umfasst diese Abfrage alle Warehouses, die im untersuchten Zeitraum aktiv waren, einschließlich der gelöschten. Es gibt eine enthaltene Spalte (is_deleted), die als weiterer Filter verwendet werden kann, wenn Sie gelöschte Warehouses aus der Analyse ausschließen möchten.

Abfrage 3: Tag-basierte Kostenzuordnung

Balkendiagramm mit einem Beispiel für die tag-basierte Kostenzuordnung im Zeitverlauf

Was die Abfrage zeigt

Tags sind eine leistungsstarke Funktion, mit der Sie die Nutzung über Benutzer, Projekte, Teams oder Workspaces hinweg verfolgen können. Konkret können benutzerdefinierte Tags über Compute-Richtlinien erzwungen werden und Serverless-Nutzungsrichtlinien, und Sie können diese Tags dann bei der Analyse der Systemtabellen-Nutzungsdaten verwenden. Sie könnten beispielsweise festlegen, dass das Tagging nach Team erzwungen wird, wobei die zulässigen Werte Geschäftsbereichen wie Marketing, Finanzen und Engineering zugeordnet sind. Verwenden Sie dann diese Abfrage, bei der Sie das Tag, nach dem Sie gruppieren, parametrisiert haben, um die Nutzung nach Team anzuzeigen.

Wann diese Abfrage verwendet werden sollte

Diese Abfrage kann immer dann verwendet werden, wenn eine Tagging-Strategie im Einsatz ist und Sie die Kosten basierend auf den Werten des Tags anzeigen möchten. Nicht jeder Datensatz in Ihrer Tabelle muss getaggt sein. Wenn der Tag-Schlüssel für den Datensatz nicht vorhanden ist, wird er als „nicht getaggt“ erfasst und kann dann aus Ihrer Analyse herausgefiltert oder verwendet werden, um Stellen zu identifizieren, an denen das Tagging nicht ordnungsgemäß erzwungen wird.

Worauf Sie achten sollten

Wie bereits erwähnt, werden nicht getaggte Datensätze als „nicht getaggt“ zurückgegeben. Dies kann hilfreich sein, um Bereiche zu identifizieren, in denen das Tagging nicht erzwungen wird, ist jedoch möglicherweise unerwünscht, da das Tag nur für einen Teil der Nutzung relevant sein könnte. Sie können die Abfrage ändern, indem Sie `u.custom_tags[:tag_key] is not null` in die WHERE-Klausel aufnehmen, um Datensätze ohne das Tag vollständig herauszufiltern, oder Sie können noch weiter gehen, indem Sie nach mehr als einem Tag filtern oder der GROUP BY-Klausel der Abfrage mehrere Tags hinzufügen.

Abfrage 4: Tägliche Kostenanomalie-Erkennung

Was die Abfrage zeigt

Gute Kontrollen über Compute-Richtlinien, Job-Timeout-Einstellungen und Budgets helfen Databricks-Plattformadministratoren, die Ausgaben innerhalb der Grenzen zu halten. Es besteht jedoch immer die Möglichkeit, dass ein Benutzer mit ausreichenden Berechtigungen einen Job oder ein Warehouse erstellt, das zu lange läuft oder über die Erwartungen hinaus skaliert bleibt und so einen unerwarteten Ausgabenanstieg verursacht. Abfrage 4 wurde entwickelt, um dies so schnell wie möglich zu erkennen. Sie nutzt ganz einfach den gleitenden 14-Tage-Durchschnitt der Ausgaben und kategorisiert die täglichen Ausgaben als erhöht, wenn sie mehr als eine Standardabweichung über dem Durchschnitt liegen, oder als Anomalie, wenn sie mehr als zwei Standardabweichungen darüber liegen.

Wann diese Abfrage verwendet werden sollte

Diese Abfrage eignet sich hervorragend für die Verwendung in einem Dashboard zur Kostenüberwachung. Sie können diese Idee auch als Basis für eine Warnung verwenden, die Administratoren automatisch per E-Mail benachrichtigt, wenn die Ausgaben des Vortrags erhöht oder anomal waren.

Worauf Sie achten sollten

Wenn Ihre Arbeitslast von Tag zu Tag sehr unbeständig ist, können die Standardabweichungen bei Ihrer Nutzung sehr hoch sein, und diese Abfrage wird wahrscheinlich nur die allergrößten Nutzungsspitzen erfassen.

Abfrage 5: Ausgabenprognose

Beispieldiagramm mit historischen und prognostizierten Ausgaben

Was die Abfrage zeigt

In den vorherigen vier Abfragen haben wir uns auf den Rückblick auf die Ausgaben konzentriert, aber zukünftige Ausgaben sind entscheidend, um das Gesamtbild Ihrer Databricks-Nutzung zu verstehen. Normalerweise würde dies eine komplexe Prognosemodellierung erfordern, aber unter den Databricks SQL AI Functions befindet sich die leistungsstarke Funktion ai_forecast, mit der Sie einen Zeitreihen-Datensatz, wie z. B. die Databricks-Nutzungsdaten, in die Zukunft extrapolieren können. Sie können die Datenmenge, die in die Funktion eingespeist wird, anpassen, die Ergebnisse in einem Diagramm visualisieren und sehr schnell eine Prognose Ihrer Databricks-Ausgaben erstellen.

Wann diese Abfrage verwendet werden sollte

Auch diese Abfrage eignet sich hervorragend für die Integration in ein Dashboard zur Kostenüberwachung, damit Sie eine Vorstellung von Ihren zukünftigen Ausgaben haben, was bei der Planung und Budgetierung hilft.

Worauf Sie achten sollten

Diese Abfrage erstellt Prognosen auf der Grundlage historischer Daten. Wenn Sie sie für die Zukunftsplanung verwenden, stellen Sie sicher, dass Sie alle zukünftigen, völlig neuen Arbeitslasten berücksichtigen, die Sie eventuell planen und die von dieser Prognose nicht vorhergesagt werden können.

Systemtabellen-Abfragen ausprobieren 

Das einmalige Ausführen dieser Abfragen zeigt Ihnen, was passiert ist. Das Anheften an ein AI/BI-Dashboard verändert die Art und Weise, wie Ihr Team Ausgaben verwaltet. Fügen Sie jede einzelne als Datensatz hinzu, verknüpfen Sie Datumsbereichs- und Tag-Parameter und machen Sie das Dashboard zu Ihrer wöchentlichen Kostenübersicht. Von hier aus gibt es zwei nächste Schritte: Setzen Sie ein Lesezeichen für die Referenz für Databricks-Systemtabellen, um den vollständigen Katalog der abfragbaren Tabellen zu erhalten, und erkunden Sie weitere Beispielabfragen , um Ihr Toolkit über diese fünf hinaus zu erweitern. Noch kein Workspace? Kostenlose Testversion starten.    

(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.