Was ist Delta Live Tables?
Delta Live Tables ist ein deklaratives Framework für die Erstellung zuverlässiger, verwaltbarer und testbarer Datenverarbeitungspipelines. Sie müssen lediglich die gewünschten Transformationen für Ihre Daten definieren. Delta Live Tables kümmert sich um Aufgabenorchestrierung, Clusterverwaltung, Überwachung, Datenqualität und Fehlerbehandlung.
Hinweis
Delta Live Tables erfordert den Premium-Plan. Kontaktieren Sie Ihr Databricks-Kontoteam für weitere Informationen.
Anstatt Ihre Datenpipelines mithilfe einer Reihe separater Apache Spark-Aufgaben zu definieren, definieren Sie Streamingtabellen und materialisierte Sichten, die das System erstellen und auf dem neuesten Stand halten soll. Delta Live Tables verwaltet die Transformation Ihrer Daten basierend auf Abfragen, die Sie für jeden Verarbeitungsschritt definieren. Sie können die Datenqualität auch mit Delta Live Tables-Erwartungen erzwingen, mit denen Sie die erwartete Datenqualität definieren und festlegen können, wie Datensätze behandelt werden sollen, die diesen Erwartungen nicht entsprechen.
Weitere Informationen zu den Vorteilen des Erstellens und Ausführens Ihrer ETL-Pipelines mit Delta Live Tables finden Sie auf der Delta Live Tables-Produktseite.
Was sind Delta Live Tables-Datasets?
Delta Live Tables-Datasets sind Streamingtabellen, materialisierte Sichten und Ansichten, die als Ergebnis deklarativer Abfragen verwaltet werden. Die folgende Tabelle beschreibt, wie die einzelnen Datasets verarbeitet werden:
Datasettyp | Wie werden Datensätze über definierte Abfragen verarbeitet? |
---|---|
Streamingtabelle | Jeder Datensatz wird genau einmal verarbeitet. Dies setzt eine reine Anfügequelle voraus. |
Materialisierte Sicht | Datensätze werden nach Bedarf verarbeitet, um genaue Ergebnisse für den aktuellen Datenzustand zurückzugeben. Materialisierte Sichten sollten für Datenverarbeitungsaufgaben wie Transformationen, Aggregationen oder die Vorabberechnung langsamer Abfragen und häufig verwendeter Berechnungen verwendet werden. |
Ansicht | Datensätze werden jedes Mal verarbeitet, wenn die Ansicht abgefragt wird. Verwenden Sie Ansichten für zwischengeschaltete Transformationen und Datenqualitätsprüfungen, die nicht in öffentlichen Datasets veröffentlicht werden sollten. |
Die folgenden Abschnitte enthalten ausführlichere Beschreibungen der einzelnen Datasettypen. Weitere Informationen zur Auswahl von Datasettypen zum Implementieren Ihrer Datenverarbeitungsanforderungen finden Sie unter Verwendung von Ansichten, materialisierten Sichten und Streamingtabellen.
Streamingtabelle
Eine Streamingtabelle ist eine Delta-Tabelle mit zusätzlicher Unterstützung für Streaming oder inkrementelle Datenverarbeitung. Mit Streamingtabellen können Sie ein wachsendes Dataset zeilenweise verarbeiten. Dabei wird jede Zeile nur einmal betrachtet. Da die meisten Datasets im Laufe der Zeit kontinuierlich wachsen, eignen sich Streamingtabellen für die meisten Erfassungsworkloads. Streamingtabellen sind optimal für Pipelines, die Datenfrische und geringe Wartezeiten erfordern. Streamingtabellen können auch für Transformationen im großen Stil nützlich sein, da die Ergebnisse beim Eintreffen neuer Daten inkrementell berechnet werden können, um die Ergebnisse auf dem neuesten Stand zu halten, ohne dass alle Quelldaten mit jedem Update vollständig neu verarbeitet werden müssen. Streamingtabellen sind für Datenquellen mit reinem Anfügen konzipiert.
Hinweis
Obwohl Streamingtabellen standardmäßig reine Anfüge-Datenquellen erfordern, können Sie dieses Verhalten mit dem Flag skipChangeCommits überschreiben, wenn eine Streamingquelle eine andere Streamingtabelle ist, die Updates oder Löschvorgänge erfordert.
Materialisierte Sicht
Eine materialisierte Sicht (oder Livetabelle) ist eine Ansicht, in der die Ergebnisse vorkompiliert wurden. Materialisierte Sichten werden entsprechend dem Update-Zeitplan der Pipeline aktualisiert, in der sie enthalten sind. Materialisierte Sichten sind leistungsstark, da sie alle eingehenden Änderungen verarbeiten können. Jedes Mal, wenn die Pipeline aktualisiert wird, werden die Abfrageergebnisse neu berechnet, um Änderungen in Upstream-Datasets widerzuspiegeln, die möglicherweise aufgrund von Compliance, Korrekturen, Aggregationen oder allgemeinen CDC aufgetreten sind. Delta Live Tables implementiert materialisierte Sichten als Delta-Tabellen, abstrahiert jedoch Komplexitäten, die mit einer effizienten Anwendung von Updates verbunden sind, und ermöglicht es Benutzern, sich auf das Schreiben von Abfragen zu konzentrieren.
Ansichten
Alle Ansichten in Azure Databricks berechnen Ergebnisse aus Quelldatasets, wenn sie abgefragt werden, und nutzen Optimierungen für das Zwischenspeichern, sofern verfügbar. Delta Live Tables veröffentlicht keine Ansichten im Katalog, sodass nur innerhalb der Pipeline, in der sie definiert sind, auf Ansichten verwiesen werden kann. Ansichten sind nützlich als Zwischenabfragen, die nicht für Endbenutzer oder Systeme verfügbar gemacht werden sollten. Databricks empfiehlt die Verwendung von Ansichten zur Durchsetzung von Datenqualitätsbeschränkungen oder zur Transformation und Anreicherung von Datasets, die mehrere nachgelagerte Abfragen steuern.
Deklarieren Ihres ersten Datasets in Delta Live Tables
Delta Live Tables führt neue Syntax für Python und SQL ein. Erste Schritte mit der Syntax von Delta Live Tables finden Sie in den Python- und SQL-Beispielen im Tutorial: Führen Sie Ihre erste Delta Live Tables-Pipeline aus.
Hinweis
Delta Live Tables trennt Dataset-Definitionen von der Updateverarbeitung und Delta Live Tables-Notebooks sind nicht für die interaktive Ausführung vorgesehen. Weitere Informationen finden Sie unter Was ist eine Delta Live Tables-Pipeline?.
Was ist eine Delta Live Tables-Pipeline?
Eine Pipeline ist die Haupteinheit, die zur Konfiguration und Ausführung von Datenverarbeitungs-Workflows mit Delta Live Tables verwendet wird.
Eine Pipeline enthält materialisierte Sichten und Streamingtabellen, die in Python- oder SQL-Quelldateien deklariert wurden. Delta Live Tables leitet die Abhängigkeiten zwischen diesen Tabellen ab, um sicherzustellen, dass Updates in der richtigen Reihenfolge erfolgen. Für jedes Dataset vergleicht Delta Live Tables den aktuellen Zustand mit dem gewünschten Zustand und fährt fort, Datasets mithilfe effizienter Verarbeitungsmethoden zu erstellen oder zu aktualisieren.
Die Einstellungen von Delta Live Tables-Pipelines lassen sich in zwei allgemeine Kategorien einteilen:
- Konfigurationen, die eine Sammlung von Notizbüchern oder Dateien (als Quellcode bezeichnet) definieren, die Delta Live Tables-Syntax zum Deklarieren von Datasets verwenden.
- Konfigurationen, die die Pipeline-Infrastruktur, die Verarbeitung von Updates und das Speichern von Tabellen im Arbeitsbereich steuern.
Die meisten Konfigurationen sind optional, aber einige erfordern sorgfältige Aufmerksamkeit, insbesondere die Konfiguration von Produktionspipelines. Dabei handelt es sich z. B. um:
- Um Daten außerhalb der Pipeline verfügbar zu machen, müssen Sie ein Zielschema für die Veröffentlichung im Hive-Metastore oder einen Zielkatalog und ein Zielschema für die Veröffentlichung in Unity Catalog deklarieren.
- Datenzugriffsberechtigungen werden über den Cluster konfiguriert, der für die Ausführung verwendet wird. Stellen Sie sicher, dass Ihr Cluster über die entsprechenden Berechtigungen für Datenquellen und den Zielspeicherort verfügt, sofern angegeben.
Ausführliche Informationen zur Verwendung von Python und SQL zum Schreiben von Quellcode für Pipelines finden Sie unter Delta Live Tables: SQL-Sprachreferenz und Delta Live Tables: Python-Sprachreferenz.
Weitere Informationen zu Pipelineeinstellungen und Konfigurationen finden Sie unter Konfigurieren einer Delta Live Tables-Pipeline.
Bereitstellen Ihrer ersten Pipeline und Auslösen von Updates
Bevor Sie Daten mit Delta Live Tables verarbeiten, müssen Sie eine Pipeline konfigurieren. Sobald eine Pipeline konfiguriert ist, können Sie ein Update auslösen, um die Ergebnisse für jedes Dataset in Ihrer Pipeline zu berechnen. Informationen zu den ersten Schritten mit Delta Live Tables-Pipelines finden Sie unter Tutorial: Ausführen Ihrer ersten Delta Live Tables-Pipeline.
Was ist ein Pipeline-Update?
Pipelines stellen die Infrastruktur bereit und berechnen den Datenstatus neu, wenn Sie ein Update starten. Ein Update führt Folgendes aus:
- Startet einen Cluster mit der richtigen Konfiguration.
- Ermittelt alle definierten Tabellen und Sichten und sucht nach Analysefehlern wie ungültigen Spaltennamen, fehlenden Abhängigkeiten und Syntaxfehlern.
- Erstellt oder aktualisiert Tabellen und Sichten mit den neuesten verfügbaren Daten.
Pipelines können abhängig von den Kosten- und Wartezeit-Anforderungen Ihres Anwendungsfalls kontinuierlich oder nach einem Zeitplan ausgeführt werden. Weitere Informationen finden Sie unter Ausführen eines Updates für eine Delta Live Tables-Pipeline.
Erfassen von Daten mit Delta Live Tables
Delta Live Tables unterstützt alle in Azure Databricks verfügbaren Datenquellen.
Databricks empfiehlt die Verwendung von Streamingtabellen für die meisten Anwendungsfälle für die Datenerfassung. Für Dateien, die im Cloudobjektspeicher ankommen, empfiehlt Databricks Autoloader. Sie können Daten mit Delta Live Tables direkt von den meisten Nachrichtenbussen erfassen.
Weitere Informationen zum Konfigurieren des Zugriffs auf Cloudspeicher finden Sie unter Cloudspeicherkonfiguration.
Für Formate, die vom Autoloader nicht unterstützt werden, können Sie Python oder SQL verwenden, um jedes von Apache Spark unterstützte Format abzufragen. Siehe Laden von Daten mit Delta Live Tables.
Überwachen und Erzwingen der Datenqualität
Sie können Erwartungen verwenden, um Datenqualitätskontrollen für den Inhalt eines Datasets zu definieren. Im Gegensatz zu einer CHECK
Einschränkung in einer herkömmlichen Datenbank, die das Hinzufügen von Datensätzen verhindert, bei denen die Einschränkung fehlschlägt, bieten Erwartungen Flexibilität bei der Verarbeitung von Daten, bei denen die Data Quality-Anforderungen nicht erfüllt werden. Mit dieser Flexibilität können Sie Daten verarbeiten und speichern, die Sie als unübersichtlich und Daten erwarten, die strenge Qualitätsanforderungen erfüllen müssen. Siehe Verwalten der Datenqualität mit Delta Live Tables.
Wie hängen Delta Live Tables und Delta Lake zusammen?
Delta Live Tables erweitert die Funktionalität von Delta Lake. Da von Delta Live Tables erstellte und verwaltete Tabellen Delta-Tabellen sind, verfügen sie über die gleichen Garantien und Features, die von Delta Lake bereitgestellt werden. Siehe Was ist Delta Lake?.
Delta Live Tables fügt zusätzlich zu den vielen Tabelleneigenschaften, die in Delta Lake festgelegt werden können, mehrere Tabelleneigenschaften hinzu. Weitere Informationen finden Sie unter Referenz zu Eigenschaften von Delta Live Tables und Referenz zu Eigenschaften von Delta-Tabellen.
Erstellen und Verwalten von Tabellen durch Delta Live Tables
Azure Databricks verwaltet automatisch Tabellen, die mit Delta Live Tables erstellt wurden. Es bestimmt, wie Updates verarbeitet werden müssen, um den aktuellen Status einer Tabelle korrekt zu berechnen und führt eine Reihe von Wartungs- und Optimierungsaufgaben durch.
Für die meisten Vorgänge sollten Sie Delta Live Tables erlauben, alle Updates, Einfügevorgänge und Löschvorgänge in einer Zieltabelle zu verarbeiten. Ausführliche Informationen und Einschränkungen finden Sie unter Beibehalten von manuellen Löschungen oder Updates.
Wartungsaufgaben, die von Delta Live Tables ausgeführt werden
Delta Live Tables führt Wartungsaufgaben innerhalb von 24 Stunden nach dem Update einer Tabelle aus. Die Wartung kann die Abfrageleistung verbessern und Kosten senken, indem alte Tabellenversionen entfernt werden. Standardmäßig führt das System einen vollständigen OPTIMIZE-Vorgang aus gefolgt von VACUUM. Sie können OPTIMIZE für eine Tabelle deaktivieren, indem Sie pipelines.autoOptimize.managed = false
in den Tabelleneigenschaften für die Tabelle festlegen. Wartungsaufgaben werden nur ausgeführt, wenn ein Pipelineupdate in den 24 Stunden vor deren Planung durchgeführt wurde.
Begrenzungen
Es gelten die folgenden Einschränkungen:
- Alle in Delta Live Tables erstellten Tabellen sind Delta-Tabellen.
- Delta Lake-Zeitreiseabfragen werden nur mit Streamingtabellen unterstützt und werden nicht mit materialisierten Ansichten unterstützt. Weitere Informationen finden Sie unter Arbeiten mit dem Delta Lake-Tabellenverlauf.
- Delta Live Tables-Tabellen können nur einmal definiert werden, d.h. sie können nur das Ziel eines einzigen Vorgangs in allen Delta Live Tables-Pipelines sein.
- Identitätsspalten werden bei Tabellen, die das Ziel von
APPLY CHANGES INTO
sind, nicht unterstützt und können bei Updates für materialisierte Sichten neu berechnet werden. Aus diesem Grund empfiehlt Databricks die Verwendung von Identitätsspalten in Delta Live Tables nur mit Streamingtabellen. Weitere Informationen finden Sie unter Verwenden von Identitätsspalten in Delta Lake. - Ein Azure Databricks-Arbeitsbereich ist auf 100 gleichzeitige Pipelineupdates beschränkt.
Eine Liste der Anforderungen und Einschränkungen, die für die Verwendung von Delta Live Tables mit Unity-Katalog spezifisch sind, finden Sie unter Verwenden des Unity-Katalogs mit Ihren Delta Live Tables-Pipelines
Zusätzliche Ressourcen
- Delta Live Tables wird von der Databricks-REST-API vollständig unterstützt. Siehe DLT-API.
- Informationen zu Pipeline- und Tabelleneinstellungen finden Sie in der Referenz zu Eigenschaften von Delta Live Tables.
- Delta Live Tables: SQL-Sprachreferenz
- Delta Live Tables: Python-Sprachreferenz