Freigeben über


Bewährte Methoden für die Kostenoptimierung

In diesem Artikel werden bewährte Methoden zur Unterstützung der Prinzipien der Kostenoptimierung behandelt – strukturiert nach Prinzip.

1. Auswählen optimaler Ressourcen

Verwenden von leistungsoptimierten Datenformaten

Um die Databricks Data Intelligence Platform optimal nutzen zu können, müssen Sie Delta Lake als Speicherframework verwenden. Sie hilft beim Erstellen einfacherer und zuverlässigerer ETL-Pipelines und bietet zahlreiche Leistungsverbesserungen, mit denen Workloads im Vergleich zur Verwendung von Parkett, ORC und JSON erheblich beschleunigt werden können. Weitere Informationen finden Sie unter Optimierungsempfehlungen für Azure Databricks. Wenn die Workload auch auf einem Rechner zur Auftragsbearbeitung ausgeführt wird, führt dies direkt zu kürzeren Betriebszeiten der Rechenressourcen, was zu niedrigeren Kosten führt.

Verwenden von Auftragscompute

Ein Job ist eine Möglichkeit, nicht-interaktiven Code auf einer Databricks-Compute-Instanz auszuführen. Beispielsweise können Sie eine ETL-Workload (Extrahieren, Transformieren und Laden) interaktiv oder nach einem Zeitplan ausführen. Natürlich können Aufträge auch interaktiv über die Notebook-Benutzeroberfläche ausgeführt werden. In Auftragscompute kosten die nicht interaktiven Workloads allerdings deutlich weniger als in universellen Compute Services. Vergleichen Sie „Jobs Compute“ und „All-Purpose Compute“ in der Preisübersicht.

Ein weiterer Vorteil für einige Jobs besteht darin, dass jeder Job auf einer neuen Recheninstanz ausgeführt werden kann und Workloads voneinander isoliert. Multitaskaufträge können jedoch auch Computeressourcen für alle Vorgänge wiederverwenden, sodass die Computestartzeit nur einmal pro Auftrag erfolgt. Weitere Informationen finden Sie unter Konfigurieren von Compute für Aufträge.

Verwenden eines SQL-Warehouse für SQL-Workloads

Für interaktive SQL-Workloads ist ein Databricks SQL-Warehouse die kostengünstigste Engine. Weitere Informationen finden Sie in der Preisübersicht. Alle SQL-Lagerhäuser sind standardmäßig mit Photon ausgestattet, was Ihre vorhandenen SQL- und DataFrame-API-Aufrufe beschleunigt und Ihre Gesamtkosten pro Workload senkt.

Darüber hinaus unterstützen serverlose SQL-Warehouses das intelligente Workload-Management (IWM), eine Reihe von Funktionen, die die serverlose Fähigkeit von Databricks SQL verbessern, eine große Anzahl von Abfragen schnell und kostengünstig zu verarbeiten.

Verwenden Sie aktuelle Runtimes für Ihre Workloads

Die Azure Databricks-Plattform bietet verschiedene Runtimes, die für Datentechnikaufgaben (Databricks Runtime) oder Machine Learning Aufgaben (Databricks Runtime für Machine Learning) optimiert sind. Die Runtimes sind so konzipiert, dass sie die beste Auswahl an Bibliotheken für die Aufgaben bieten und sicherstellen, dass alle bereitgestellten Bibliotheken auf dem neuesten Stand sind und optimal zusammenarbeiten. Die Databricks Laufzeiten werden regelmäßig veröffentlicht und bieten Leistungsverbesserungen zwischen Hauptversionen. Diese Leistungsverbesserungen führen häufig zu Kosteneinsparungen aufgrund einer effizienteren Nutzung von Computeressourcen.

Beschränken der GPU-Verwendung auf die richtigen Workloads

Virtuelle Computer mit GPUs können Berechnungen für Deep Learning erheblich beschleunigen, sind aber wesentlich teurer als reine CPU-Computer. Verwenden Sie GPU-Instanzen nur für Workloads mit GPU-beschleunigten Bibliotheken.

Die meisten Workloads verwenden keine GPU-beschleunigten Bibliotheken und profitieren daher nicht von Instanzen mit GPU-Unterstützung. Arbeitsbereichsadministratoren können GPU-Computer und Computeressourcen einschränken, um unnötige Verwendung zu verhindern. Lesen Sie den Blogbeitrag „Sind GPUs wirklich teuer? Benchmarking GPUs für das Rückschließen in Databricks-Clustern“.

Verwenden von serverlosen Diensten für Ihre Workloads

BI-Anwendungsfälle

BI-Workloads verwenden Daten in der Regel in Bursts und generieren mehrere gleichzeitige Abfragen. Beispielsweise kann jemand, der ein BI-Tool verwendet, ein Dashboard aktualisieren oder eine Abfrage schreiben und dann einfach die Ergebnisse ohne weitere Interaktion mit der Plattform analysieren. In diesem Szenario macht die Datenplattform folgendes:

  • Beendet leerlaufe Computeressourcen, um Kosten zu sparen.
  • Stellt die Rechenressourcen schnell bereit, wenn der Benutzer neue oder aktualisierte Daten mit dem BI-Tool anfordert.

Bei nicht serverlosen Azure Databricks SQL-Warehouses beträgt die Startzeit mehrere Minuten. Viele Benutzer*innen nehmen daher die höheren Kosten in Kauf und beenden sie während Leerlaufzeiten nicht. Serverlose SQL-Warehouses werden dagegen in wenigen Sekunden gestartet und zentral hochskaliert, sodass sowohl sofortige Verfügbarkeit als auch eine Beendigung während Leerlaufzeiten erreicht werden können. Dies führt zu einer hervorragenden Benutzererfahrung sowie insgesamt zu Kosteneinsparungen.

Darüber hinaus werden serverlose SQL-Warehouses früher herunterskaliert als nicht serverlose Warehouses, was nochmals Kosten spart.

ML- und KI-Modellbereitstellung

Die meisten Modelle werden als REST-API für die Integration in Ihre Web- oder Clientanwendung bereitgestellt. Das Modell, das den Dienst bedient, empfängt unterschiedliche Anforderungen im Laufe der Zeit, und eine Modelldienstplattform sollte immer ausreichende Ressourcen bereitstellen, aber nur so viele wie tatsächlich erforderlich (Upscaling und Downscaling).

Mosaic AI Model Serving verwendet serverlose Compute und bietet einen hochverwendbaren und niedrigen Latenzdienst für die Bereitstellung von Modellen. Der Dienst wird automatisch hoch- oder herunterskaliert, um Bedarfsänderungen zu erfüllen, was Infrastrukturkosten spart und gleichzeitig die Latenzleistung optimiert.

Verwenden des richtigen Instanztyps

Die Verwendung der neuesten Generation von Cloudinstanztypen bietet fast immer Leistungsvorteile, da sie die beste Leistung und die neuesten Features bieten.

Basierend auf Ihren Workloads ist es auch wichtig, die richtige Instanzfamilie auszuwählen, um das beste Leistungs-/Preisverhältnis zu erzielen. Einige einfache Faustregeln sind:

  • Für ML optimierter Arbeitsspeicher, schwere Shuffle- und Überlaufworkloads
  • Compute optimiert für strukturierte Streamingworkloads und Wartungsaufträge (z. B. Optimieren und Vakuum)
  • Speicher optimiert für Workloads, die von der Zwischenspeicherung profitieren, z. B. Ad-hoc- und interaktive Datenanalyse
  • GPU optimiert für bestimmte ML- und DL-Workloads
  • Allgemeiner Zweck ohne spezifische Anforderungen

Auswählen der effizientesten Berechnungsgröße

Azure Databricks führt einen Executor pro Workerknoten aus. Daher werden die Begriffe „Executor“ und „Worker“ im Kontext der Azure Databricks-Architektur synonym verwendet. Die Clustergröße wird häufig in Bezug auf die Anzahl der Worker betrachtet, es gibt jedoch noch weitere wichtige Faktoren, die berücksichtigt werden müssen:

  • Gesamtanzahl der Rechenkerne (Rechenleistung): Die Gesamtanzahl der Kerne über alle ausführenden Einheiten hinweg. Dies bestimmt die maximale Parallelität einer Compute-Instanz.
  • Gesamter Executorspeicher: Die Gesamtmenge des RAM für alle Executors. Bestimmt, wie viele Daten im Arbeitsspeicher gespeichert werden können, bevor sie auf einen Datenträger ausgelagert werden.
  • Lokaler Executorspeicher: Der Typ und die Menge des lokalen Datenträgerspeichers. Der lokale Festplattenspeicher wird in erster Linie für den Fall verwendet, dass es bei Shuffles und Caching zu einem Überlauf kommt.

Weitere Überlegungen betreffen die Art und Größe der Workerinstanz, die sich ebenfalls auf die oben genannten Faktoren auswirken. Berücksichtigen Sie bei der Dimensionierung Ihrer Rechenressourcen Folgendes:

  • Wie viele Daten wird Ihr Workload verbrauchen?
  • Was ist die Rechenkomplexität Ihrer Workload?
  • Woher lesen Sie Daten?
  • Wie werden die Daten im externen Speicher partitioniert?
  • Wie viel Parallelität wird benötigt?

Details und Beispiele finden Sie unter Überlegungen zur Computedimensionierung.

Bewerten Sie leistungsoptimierte Abfrage-Engines

Photon ist ein leistungsfähiges Databricks-natives vektorisiertes Abfragemodul, das Ihre SQL-Workloads und DataFrame-API-Aufrufe beschleunigt (für Datenerfassung, ETL, Streaming, Data Science und interaktive Abfragen). Photon ist mit Apache Spark-APIs kompatibel, was den Einstieg sehr einfach macht. Es sind keine Codeänderungen erforderlich, und es gibt keine Abhängigkeiten.

Die beobachtete Beschleunigung kann zu erheblichen Kosteneinsparungen führen, und bei regelmäßig ausgeführten Aufträgen sollte überprüft werden, ob sie mit Photon nicht nur schneller, sondern auch kostengünstiger sind.

2. Dynamische Zuordnung von Ressourcen

Verwenden von Compute mit automatischer Skalierung

Bei der automatischen Skalierung weist Databricks die Worker dynamisch neu zu, um die Merkmale Ihres Auftrags zu berücksichtigen. Bestimmte Teile Ihrer Pipeline sind möglicherweise rechenintensiver als andere, und Databricks fügt während dieser Phasen Ihres Auftrags automatisch zusätzliche Mitarbeiter hinzu (und entfernt sie, wenn sie nicht mehr benötigt werden). Durch die automatische Skalierung können die Gesamtkosten im Vergleich zu einer Compute-Instanz mit fester Größe gesenkt werden.

Die automatische Rechenleistungsskalierung hat Einschränkungen beim Verkleinern der Clustergröße für strukturierte Streaming-Workloads. Databricks empfiehlt die Verwendung von Lakeflow Declarative Pipelines mit verbesserter automatischer Skalierung für Streaming-Workloads.

Verwenden der automatischen Beendigung

Azure Databricks bietet eine Reihe von Features zur Kostenkontrolle, mit denen Sie Ressourcen im Leerlauf verringern sowie steuern können, wann Computeressourcen bereitgestellt werden können.

  • Konfigurieren Sie die automatische Beendigung für alle interaktiven Compute-Ressourcen. Nach einer angegebenen Leerlaufzeit wird die Compute-Ressource heruntergefahren. Weitere Informationen finden Sie unter Automatische Beendigung.
  • Für Anwendungsfälle, in denen Compute nur während der Geschäftszeiten erforderlich ist, können Computeressourcen mit der automatischen Beendigung konfiguriert werden, und ein geplanter Prozess kann die Computeressource neu starten (und ggf. Daten bei Bedarf vorbereiten), bevor Benutzer und Benutzerinnen wieder an ihrem Arbeitsplatz sind. Siehe CACHE SELECT.
  • Wenn die Computestartzeiten zu lang sind, sollten Sie die Verwendung von Clusterpools in Betracht ziehen, siehe bewährte Methoden für Pools. Azure Databricks-Pools sind einsatzbereite Instanzen im Leerlauf. Wenn Clusterknoten mithilfe der sich im Leerlauf befindenden Instanzen erstellt werden, werden die Start- und Autoskalierungszeiten des Clusters reduziert. Wenn die Pools keine Leerlaufinstanzen haben, erweitern sich die Pools, indem sie eine neue Instanz vom Instanzanbieter anordnen, um die Anforderung des Clusters aufzunehmen.

Solange sich Instanzen im Pool im Leerlauf befinden, werden in Azure Databricks keine Databricks Units DBUs berechnet, was zu Kosteneinsparungen führt. Es gilt die Abrechnung des Instanzenanbieters.

Verwenden von Computerichtlinien zum Steuern von Kosten

Rechenrichtlinien können viele kostenspezifische Einschränkungen für Rechenressourcen erzwingen. Siehe Betriebliche Exzellenz - Verwenden von Rechenrichtlinien. Zum Beispiel:

3. Überwachen und Kontrollieren der Kosten

Die Kostenverwaltung in Databricks ist ein wichtiger Aspekt bei der Optimierung der Cloud-Ausgaben bei gleichzeitiger Aufrechterhaltung der Leistung. Der Prozess kann in drei Schlüsselbereiche unterteilt werden:

  • Konfiguration
  • Überwachung
  • Verwaltung

Die folgenden bewährten Methoden decken diese drei Bereiche ab.

Einrichten von Tagging für die Kostenzuordnung

Um die Kosten im Allgemeinen zu überwachen und die Datenbricks-Nutzung exakt den Geschäftseinheiten und Teams Ihrer Organisation zuzuordnen (z. B. für Chargebacks in Ihrer Organisation), können Sie Arbeitsbereiche, Cluster, SQL-Lagerhäuser und Pools kategorisieren.

In der Einrichtungsphase sollten Organisationen effektive Taggingpraktiken implementieren. Dies umfasst das Erstellen von Tagbenennungskonventionen in der gesamten Organisation. Es ist wichtig, sowohl allgemeine Tags zu verwenden, die die Verwendung bestimmter Benutzergruppen als auch genauere Tags zuweisen, die hochspezifische Einblicke bieten, z. B. basierend auf Rollen, Produkten oder Diensten.

Beginnen Sie mit dem Taggen bereits zu Beginn der Nutzung von Databricks. Zusätzlich zu den von Databricks festgelegten Standardtags richten Sie mindestens die benutzerdefinierten Tags _Business Units_ und _Projects_ ein und füllen sie für Ihre spezifische Organisation aus. Wenn Sie zwischen Entwicklung, Qualitätssicherung und Produktionskosten unterscheiden müssen, sollten Sie das Tag Environment zu Arbeitsbereichen hinzufügen und Ressourcen berechnen.

Die Tags werden sowohl an Nutzungsprotokolle als auch an Cloudanbieterressourcen für die Kostenanalyse weitergegeben. Die Gesamtkosten umfassen Databricks Units (DBUs) sowie virtuelle Computer, Datenträger und damit verbundene Netzwerkkosten. Beachten Sie, dass die DBU-Kosten für serverlose Dienste bereits die Kosten für virtuelle Computer enthalten.

Da das Hinzufügen von Tags nur die zukünftige Verwendung betrifft, ist es besser, mit einer detaillierteren Taggingstruktur zu beginnen. Es ist immer möglich, Tags zu ignorieren, wenn die praktische Verwendung im Laufe der Zeit zeigt, dass sie keine Auswirkungen auf Kostenverständnis und Attribution haben. Fehlende Tags können jedoch nicht zu früheren Ereignissen hinzugefügt werden.

Einrichten von Budgets und Warnungen zur Überwachung von Kontoausgaben

Budgets ermöglichen es Ihnen, die Nutzung über Ihr gesamtes Konto hinweg zu überwachen. Sie bieten eine Möglichkeit zum Festlegen finanzieller Ziele und ermöglichen es Ihnen, entweder kontoweite Ausgaben nachzuverfolgen oder Filter anzuwenden, um die Ausgaben bestimmter Teams, Projekte oder Arbeitsbereiche nachzuverfolgen. Wenn Ihr Konto serverlose Compute verwendet, sollten Sie die Budgetrichtlinien verwenden, um die serverlose Nutzung Ihres Kontos zuzuordnen. Weitere Informationen finden Sie unter Zuordnen der serverlosen Nutzung zu Budgetrichtlinien.

Es wird empfohlen, E-Mail-Benachrichtigungen einzurichten , wenn das monatliche Budget erreicht wird, um unerwartete Überlastungen zu vermeiden.

Überwachen der Kosten zur Anpassung der Ausgaben an die Erwartungen

Kostenbeobachtungsdashboards helfen beim Visualisieren von Ausgabenmustern und Budgetrichtlinien dabei, serverlose Berechnungsnutzung für bestimmte Benutzer, Gruppen oder Projekte zu attributieren und eine genauere Kostenzuordnung zu ermöglichen. Um den Überblick über die Ausgaben zu behalten, bietet Databricks eine Reihe von Tools und Features zum Nachverfolgen und Analysieren von Kosten:

  • Überwachen Sie die Nutzung in der Kontokonsole: Databricks bietet AI/BI-Dashboards für die Kostenverwaltung in der Kontokonsole, die von Kontoadministratoren in einen beliebigen Unity-Katalog-fähigen Arbeitsbereich in ihrem Konto importiert werden können. Auf diese Weise können Sie entweder die Kontonutzung oder eine einzelne Arbeitsbereichsnutzung überwachen.

  • Verwenden Sie Budgets, um Kontoausgaben zu überwachen: Mithilfe von Budgets können Sie die Nutzung über Ihr Konto hinweg überwachen.
    Budgetrichtlinien können verwendet werden, um die Nutzung von serverloser Technologie zuzuordnen, indem Tags auf alle serverlosen Rechenaktivitäten angewendet werden, die einem der Richtlinie zugewiesenen Benutzer zugeordnet sind.

  • Überwachen und Verwalten der Kosten für ausgehende Delta Sharing-Daten: Im Gegensatz zu anderen Plattformen für die Datenfreigabe erfordert Delta Sharing keine Datenreplikation. Dieses Modell bietet viele Vorteile, allerdings kann Ihr Cloudanbieter möglicherweise Gebühren für ausgehende Daten erheben, wenn Sie Daten cloud- oder regionsübergreifend freigeben. Siehe Überwachen und Verwalten von Kosten für ausgehende Delta Sharing-Daten (für Anbieter), um die Gebühren für ausgehende Daten zu überwachen und zu verwalten.

  • Überwachen Sie die Kosten mithilfe von Systemtabellen: Die Systemtabelle system.billing.usage ermöglicht die Überwachung der Kosten. Benutzerdefinierte Tags, die auf Arbeitsbereiche und Computeressourcen angewendet werden, werden an diese Systemtabelle weitergegeben. Sie können die Kosten für serverlose Berechnung, Auftragskosten und modellgestützte Kosten überwachen.

  • Überwachen von Kosten mithilfe des Azure Cost Manager: Kostenanalyse ist ein Tool zur Analyse von Kosten in Azure. Die Tags von Azure Databricks-Ressourcen stehen in diesem Tool zur detaillierten Analyse zur Verfügung.

Verwalten von Kosten zur Anpassung der Nutzung an den Organisationsanforderungen

Das Kostenmanagement geht über die technische Umsetzung hinaus, um umfassendere Organisationsstrategien einzuschließen:

  • Entwickeln und planen Sie einen Haushaltungsauftrag, um Tags (inkrementell) anzuwenden oder zu bereinigen. Der Auftrag muss robust sein, um nicht durch Probleme einzelner Ressourcen unterbrochen zu werden. Alle Änderungen sollten in ein Überwachungsprotokoll geschrieben werden.
  • Führen Sie regelmäßige Kostenprüfungen durch, um alle aktiven Ressourcen, ihre Ausgaben und ihre Ausrichtung an organisatorische Anforderungen zu überprüfen. Das Teilen monatlicher Kostenberichte hilft beim Nachverfolgen von Verbrauchssteigerungen und Anomalien und fördert proaktives Kostenmanagement in allen Teams.
  • Optimieren Sie die Ressourcenzuordnung durch Strategien wie Autoskalierung und automatische Beendigung, die Ressourcen dynamisch basierend auf den Anforderungen der Arbeitslast zuweisen; siehe die anderen bewährten Methoden in diesem Kapitel.
  • Bildung von Teams zu den Kostenauswirkungen ihrer Ressourcennutzung und Vermittlung bewährter Methoden zur Kostenoptimierung.
  • Verwenden Sie Computerichtlinien als Tool, um den Typ und die Größe von Computeressourcen zu steuern, die bestimmte Benutzer erstellen und darauf zugreifen können.

Insgesamt muss die Kostenoptimierung als laufender Prozess betrachtet werden, und Strategien müssen im Falle einer Skalierung, neuer Projekte oder unerwarteter Kostenspitzen regelmäßig überarbeitet werden. Nutzen Sie sowohl die systemeigenen Kostenverwaltungsfunktionen von Databricks als auch Tools von Drittanbietern für umfassende Steuerung und Optimierung.

4. Entwerfen von kostengünstigen Workloads

Ein ausgewogenes Verhältnis zwischen permanentem und ausgelöstem Streaming herstellen.

Im Zusammenhang mit Streaming denken Menschen meist an Begriffe wie „Echtzeit“, „rund um die Uhr“ oder „Always-On“. Wenn die Datenerfassung in Echtzeit erfolgt, müssen die zugrunde liegenden Computeressourcen 24/7 ausgeführt werden, was kostenaufwendige Kosten jede einzelne Stunde des Tages verursacht.

Nicht jeder Anwendungsfall, der auf einem kontinuierlichen Ereignisstrom basiert, erfordert jedoch, dass diese Ereignisse sofort dem Analysedatensatz hinzugefügt werden. Wenn die Geschäftsanforderung für den Anwendungsfall nur alle paar Stunden oder jeden Tag frische Daten erfordert, kann diese Anforderung nur mit wenigen Läufen pro Tag erfüllt werden, was zu einer erheblichen Verringerung der Arbeitsauslastungskosten führt. Databricks empfiehlt die Verwendung von strukturiertem Streaming mit dem Trigger AvailableNow für inkrementelle Workloads, bei denen es nicht auf kurze Wartezeiten ankommt. Weitere Informationen finden Sie unter Konfigurieren der inkrementellen Batchverarbeitung.

Schaffen eines ausgewogenen Verhältnisses zwischen On-Demand- und Kapazitätsüberschussinstanzen

Spotinstanzen nutzen überschüssige Ressourcen virtueller Computer in der Cloud, die zu einem niedrigeren Preis verfügbar sind. Um Kosten zu sparen, unterstützt Azure Databricks das Erstellen von Clustern mit Spot-Instanzen. Databricks empfiehlt, dass die erste Instanz (der Spark-Treiber) immer eine bedarfsgesteuerte virtuelle Maschine sein sollte. Spot-Instanzen sind eine gute Wahl für Workloads, bei denen eine längere Dauer akzeptabel ist, weil der Cloudanbieter eine Spot-Instanz (oder mehrere Spot-Instanzen) entfernt hat.