Optimierungsempfehlungen für Azure Databricks

Azure Databricks bietet viele Optimierungen, die eine Vielzahl von Workloads auf dem Lakehouse unterstützen, von umfangreicher ETL-Verarbeitung bis zu spontanten interaktiven Abfragen. Viele dieser Optimierungen werden automatisch durchgeführt. Sie erhalten ihre Vorteile einfach dadurch, dass Sie Azure Databricks verwenden. Darüber hinaus erfordern die meisten Databricks-Runtime-Features Delta Lake, die Standardspeicherebene, die zum Erstellen von Tabellen in Azure Databricks verwendet wird.

Azure Databricks konfiguriert Standardwerte, die die meisten Workloads optimieren. Das Ändern der Konfigurationseinstellungen verbessert jedoch in einigen Fällen die Leistung.

Leistungsverbesserungen für Databricks Runtime

Hinweis

Verwenden Sie das neueste Databricks Runtime, um die neuesten Leistungsverbesserungen zu nutzen. Alle hier dokumentierten Verhaltensweisen sind in Databricks Runtime 10.4 LTS und höher standardmäßig aktiviert.

  • Datenträgercaching beschleunigt wiederholte Lesevorgänge bei Parquetdaten-Dateien, indem Daten auf Datenträgervolumes geladen werden, die Computeclustern angehängt sind.
  • Dynamische Dateibeschneidung verbessert die Abfrageleistung, indem Verzeichnisse übersprungen werden, die keine Datendateien enthalten, die Abfragevorzeichen entsprechen.
  • Zusammenführung mit geringem Shuffle reduziert die Anzahl von Datendateien, die von MERGE-Vorgängen neu geschrieben werden, und reduziert die Notwendigkeit, ZORDER-Cluster neu zu berechnen.
  • Apache Spark 3.0 hat adaptive Abfrageausführung eingeführt, die eine verbesserte Leistung für viele Vorgänge bietet.

Databricks-Empfehlungen für verbesserte Leistung

  • Sie können Tabellen in Azure Databricks klonen, um tiefe oder flache Kopien von Quelldatensätzen zu erstellen.
  • Der kostenbasierte Optimierer beschleunigt die Abfrageleistung durch die Nutzung von Tabellenstatistiken.
  • Sie können Spark SQL verwenden, um mit semistrukturierten JSON-Daten zu interagieren, ohne Zeichenfolgen zu analysieren.
  • Funktionen höherer Ordnung bieten integrierte, optimierte Leistung für viele Vorgänge, die keine gemeinsamen Spark-Operatoren haben. Funktionen höherer Ordnung bieten einen Leistungsvorteil gegenüber benutzerdefinierten Funktionen.
  • Azure Databricks bietet eine Reihe integrierter Operatoren und spezielle Syntax für die Arbeit mit komplexen Datentypen, einschließlich Arrays, Strukturen und JSON-Zeichenfolgen.
  • Sie können Einstellungen für Verknüpfungen manuell optimieren, die Bereiche enthalten oder Daten mit substanzieller Verzerrung enthalten.

Opt-In-Verhaltensweisen

  • Azure Databricks bietet standardmäßig eine serialisierbare Isolationsgarantie; Das Ändern der Isolationsebene zu serialisierbar kann den Durchsatz für gleichzeitige Vorgänge verringern, kann jedoch erforderlich sein, wenn die Serialisierbarkeit des Lesevorgangs erforderlich ist.
  • Mithilfe von Bloom-Filterindizes können Sie die Wahrscheinlichkeit des Scannens von Datendateien verringern, die keine Datensätze enthalten, die einer bestimmten Bedingung entsprechen.