Was ist Delta Lake?

Delta Lake ist die optimierte Speicherebene, die die Grundlage für die Speicherung von Daten und Tabellen auf der Databricks Lakehouse-Plattform bildet. Delta Lake ist Open-Source-Software, die Parquet-Datendateien mit einem dateibasierten Transaktionsprotokoll für ACID-Transaktionen und skalierbarer Metadatenverarbeitung erweitert. Delta Lake ist vollständig kompatibel mit Apache Spark-APIs und wurde für eine enge Integration mit Structured Streaming entwickelt. So können Sie problemlos eine einzige Kopie der Daten sowohl für Batch- als auch für Streamingvorgänge verwenden und eine inkrementelle Verarbeitung im großen Stil ermöglichen.

Delta Lake ist das Standardspeicherformat für alle Vorgänge in Azure Databricks. Sofern nicht anders angegeben, sind alle Tabellen in Azure Databricks Delta-Tabellen. Databricks hat ursprünglich das Delta Lake-Protokoll entwickelt und ist weiterhin aktiv am Open-Source-Projekt beteiligt. Viele der Optimierungen und Produkte auf der Databricks Lakehouse-Plattform basieren auf den von Apache Spark und Delta Lake gegebenen Garantien. Informationen zu Optimierungen in Azure Databricks finden Sie unter Optimierungsempfehlungen für Azure Databricks.

Referenzinformationen zu Delta Lake-SQL-Befehlen finden Sie unter Delta Lake-Anweisungen.

Das Delta Lake-Transaktionsprotokoll verfügt über ein klar definiertes offenes Protokoll, das von jedem System zum Lesen des Transaktionsprotokolls verwendet werden kann. Siehe Protokoll für das Delta-Transaktionsprotokoll.

Erste Schritte mit Delta Lake

Alle Tabellen in Azure Databricks sind standardmäßig Delta-Tabellen. Unabhängig davon, ob Sie Apache Spark DataFrames oder SQL verwenden, sichern Sie sich alle Vorteile von Delta Lake, indem Sie Ihre Daten mit den Standardeinstellungen in der Lakehouse-Instanz speichern.

Beispiele für einfache Delta Lake-Vorgänge wie Erstellen von Tabellen sowie Lesen, Schreiben und Aktualisieren von Daten finden Sie im Tutorial: Delta Lake.

Databricks enthält viele Empfehlungen für bewährte Methoden für Delta Lake.

Konvertieren und Erfassen von Daten in Delta Lake

Azure Databricks bietet eine Reihe von Produkten, die das Laden von Daten in Ihre Lakehouse-Instanz beschleunigen und vereinfachen.

Eine vollständige Liste der Erfassungsoptionen finden Sie unter Laden von Daten in Azure Databricks Lakehouse.

Aktualisieren und Ändern von Delta Lake-Tabellen

Atomische Transaktionen mit Delta Lake bieten viele Optionen zum Aktualisieren von Daten und Metadaten. Databricks empfiehlt, die direkte Interaktion mit Daten- und Transaktionsprotokolldateien in Delta Lake-Dateiverzeichnissen zu vermeiden, um eine Beschädigung Ihrer Tabellen zu verhindern.

Inkrementelle und Streamingworkloads in Delta Lake

Delta Lake ist für Structured Streaming in Azure Databricks optimiert. Delta Live Tables erweitert native Funktionen durch vereinfachte Infrastrukturbereitstellung, verbesserte Skalierung und verwaltete Datenabhängigkeiten.

Abfragen früherer Versionen einer Tabelle

Bei jedem Schreibvorgang in eine Delta-Tabelle wird eine neue Tabellenversion erstellt. Sie können mithilfe des Transaktionsprotokolls Änderungen an Ihrer Tabelle überprüfen und frühere Tabellenversionen abfragen. Weitere Informationen finden Sie unter Arbeiten mit dem Delta Lake-Tabellenverlauf.

Delta Lake-Schemaerweiterungen

Delta Lake überprüft das Schema beim Schreiben und stellt sicher, dass alle in eine Tabelle geschriebenen Daten den von Ihnen festgelegten Anforderungen entsprechen.

Verwalten von Dateien und Indizieren von Daten mit Delta Lake

Azure Databricks legt viele Standardparameter für Delta Lake fest, die sich auf die Größe der Datendateien und Anzahl der Tabellenversionen auswirken, die im Verlauf beibehalten werden. Delta Lake verwendet eine Kombination aus Parsen von Metadaten und physischem Datenlayout, um die Anzahl der Dateien zu reduzieren, die zur Erfüllung einer Abfrage überprüft werden.

Konfigurieren und Überprüfen von Delta Lake-Einstellungen

Azure Databricks speichert alle Daten und Metadaten für Delta Lake-Tabellen in Cloudobjektspeicher. Viele Konfigurationen können entweder auf Tabellenebene oder innerhalb der Spark-Sitzung festgelegt werden. Sie können die Details der Delta-Tabelle überprüfen, um zu ermitteln, welche Optionen konfiguriert sind.

Datenpipelines unter Verwendung von Delta Lake und Delta Live Tables

Azure Databricks ermutigt Benutzer, eine Medallion-Architektur zu nutzen, um Daten mithilfe einer Reihe von Tabellen zu verarbeiten, während Daten bereinigt und angereichert werden. Delta Live Tables vereinfacht ETL-Workloads durch Optimierung der Ausführung und Automatisierung der Bereitstellung und Skalierung der Infrastruktur. Siehe Delta Live Tables – Schnellstart.

Problembehandlung bei Delta Lake-Features

Nicht alle Delta Lake-Features sind in allen Versionen von Databricks Runtime enthalten. Informationen zur Delta Lake-Versionsverwaltung und Antworten auf häufig gestellte Fragen finden Sie in den folgenden Artikeln:

Dokumentation zur Delta Lake-API

Für die meisten Lese- und Schreibvorgänge in Delta-Tabellen können Sie die Spark SQL- oder Apache Spark DataFrame-APIs verwenden.

Informationen zu Delta Lake-spezifischen SQL-Anweisungen finden Sie unter Delta Lake-Anweisungen.

Azure Databricks stellt die binäre Kompatibilität mit den Delta Lake-APIs in Databricks Runtime sicher. Die Delta Lake API-Version, die in jeder Databricks Runtime-Version enthalten ist, finden Sie in der Delta Lake API-Kompatibilitätsmatrix. Delta Lake-APIs sind für Python, Scala und Java vorhanden: