Ausführen eines Updates für eine Delta Live Tables-Pipeline

In diesem Artikel wird erläutert, was ein Update einer Delta Live Tables-Pipeline ist, und wie Sie es ausführen.

Nachdem Sie eine Pipeline erstellt haben und zur Ausführung bereit sind, starten Sie ein Update. Bei einem Pipelineupdate werden die folgenden Aktionen ausgeführt:

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

Sie können nach Problemen im Quellcode einer Pipeline suchen, ohne auf die Erstellung oder Aktualisierung von Tabellen zu warten, indem Sie ein Validate-Update verwenden. Das Validate-Feature ist hilfreich, wenn Sie Pipelines entwickeln oder testen, da Sie Fehler in Ihrer Pipeline (z. B. falsche Tabellen- oder Spaltennamen) schnell finden und beheben können.

Informationen zum Erstellen einer Pipeline finden Sie unter Tutorial: Ausführen der ersten Delta Live Tables-Pipeline.

Starten eines Pipelineupdates

Azure Databricks bietet mehrere Optionen zum Starten von Pipelineupdates, einschließlich der folgenden:

  • Auf der Benutzeroberfläche von Delta Live Tables sind die folgenden Optionen verfügbar:
    • Wählen Sie auf der Detailseite der Pipeline die Schaltfläche Startsymbol „Delta Live Tables“ aus.
    • Wählen Sie in der Liste „Pipelines“ in der Spalte Aktionen die Option Rechtspfeilsymbol aus.
  • Zum Starten eines Updates in einem Notebook klicken Sie in der Notebook-Symbolleiste auf Delta Live Tables > Start. Weitere Informationen finden Sie unter Öffnen oder Ausführen einer Delta Live Tables-Pipeline über ein Notebook.
  • Sie können Pipelines programmgesteuert mithilfe der API oder der Befehlszeilenschnittstelle auslösen. Weitere Informationen finden Sie unter Delta Live Tables API-Leitfaden.
  • Sie können eine Pipeline mithilfe der Benutzeroberfläche von Delta Live Tables oder der Auftragsbenutzeroberfläche als Auftrag planen. Siehe Planen Sie eine Pipeline.

Update von Tabellen und Sichten durch Delta Live Tables

Welche Tabellen und Sichten aktualisiert werden und wie diese Tabellen und Sichten aktualisiert werden, hängt vom Updatetyp ab:

  • Alle aktualisieren: Alle Livetabellen werden aktualisiert, um den aktuellen Zustand ihrer Eingabedatenquellen wiederzugeben. Für alle Streamingtabellen werden neue Zeilen an die Tabelle angefügt.
  • Alle vollständig aktualisieren: Alle Livetabellen werden aktualisiert, um den aktuellen Zustand ihrer Eingabedatenquellen wiederzugeben. Für alle Streamingtabellen versucht Delta Live Tables, alle Daten aus den einzelnen Tabellen zu löschen und dann alle Daten aus der Streamingquelle zu laden.
  • Auswahl aktualisieren: Das Verhalten von refresh selection ist identisch mit refresh all, ermöglicht es Ihnen jedoch, nur ausgewählte Tabellen zu aktualisieren. Ausgewählte Livetabellen werden aktualisiert, um den aktuellen Zustand ihrer Eingabedatenquellen wiederzugeben. Für ausgewählte Streamingtabellen werden neue Zeilen an die Tabelle angefügt.
  • Auswahl vollständig aktualisieren: Das Verhalten von full refresh selection ist identisch mit full refresh all, ermöglicht es Ihnen jedoch, ein vollständiges Update der ausgewählten Tabellen durchzuführen. Ausgewählte Livetabellen werden aktualisiert, um den aktuellen Zustand ihrer Eingabedatenquellen wiederzugeben. Für ausgewählte Streamingtabellen versucht Delta Live Tables, alle Daten aus den einzelnen Tabellen zu löschen und dann alle Daten aus der Streamingquelle zu laden.

Bei bestehenden Livetabellen verhält sich ein Update genauso wie ein SQL-REFRESH für eine materialisierte Sicht. Bei neuen Livetabellen entspricht das Verhalten einem SQL-CREATE-Vorgang.

Starten eines Pipelineupdates für ausgewählte Tabellen

Sie sollten Daten nur für ausgewählte Tabellen in Ihrer Pipeline erneut verarbeiten. Beispielsweise ändern Sie bei der Entwicklung nur eine einzige Tabelle und möchten die Testzeit verkürzen, oder ein Pipelineupdate schlägt fehl, und Sie möchten nur die fehlgeschlagenen Tabellen aktualisieren.

Hinweis

Die selektive Aktualisierung kann nur mit ausgelösten Pipelines verwendet werden.

So starten Sie auf der Seite Pipelinedetails ein Update, bei dem nur die ausgewählten Tabellen aktualisiert werden:

  1. Klicken Sie auf Select tables for refresh (Tabellen für die Aktualisierung auswählen). Das Dialogfeld Select tables for refresh wird angezeigt.

    Wenn die Schaltfläche Tabellen für die Aktualisierung auswählen nicht angezeigt wird, sollten Sie sicherstellen, dass auf der Seite Pipelinedetails das neueste Update angezeigt wird und das Update abgeschlossen wurde. Wenn ein DAG für das neueste Update nicht angezeigt wird (z. B. weil das Update fehlgeschlagen ist), wird die Schaltfläche Tabellen für die Aktualisierung auswählen nicht angezeigt.

  2. Klicken Sie auf jede Tabelle, um die zu aktualisierenden Tabellen auszuwählen. Die ausgewählten Tabellen werden hervorgehoben und beschriftet. Klicken Sie erneut auf die Tabelle, um sie aus dem Update zu entfernen.

  3. Klicken Sie auf Auswahl aktualisieren.

    Hinweis

    Auf der Schaltfläche Auswahl aktualisieren wird die Anzahl der ausgewählten Tabellen in Klammern angezeigt.

Wenn Sie die Daten erneut verarbeiten möchten, die bereits für die ausgewählten Tabellen erfasst wurden, klicken Sie neben der Schaltfläche Auswahl aktualisieren auf das blaue, nach unten zeigende Caretzeichen, und klicken Sie auf Full Refresh selection.

Starten eines Pipelineupdates für fehlgeschlagene Tabellen

Wenn ein Pipelineupdate aufgrund von Fehlern in einer oder mehreren Tabellen im Pipelinegraphen fehlschlägt, können Sie das Update nur der fehlgeschlagenen Tabellen und Downstreamabhängigkeiten starten.

Hinweis

Ausgeschlossene Tabellen werden nicht aktualisiert, auch wenn sie von einer fehlgeschlagenen Tabelle abhängig sind.

Klicken Sie auf der Seite Pipelinedetails auf Refresh failed tables (Fehlgeschlagene Tabellen aktualisieren), um fehlgeschlagene Tabellen zu aktualisieren.

So können Sie nur ausgewählte fehlgeschlagene Tabellen aktualisieren:

  1. Klicken Sie neben der Schaltfläche Refresh failed tables auf den Abwärtspfeil, und klicken Sie auf Select tables for refresh. Das Dialogfeld Select tables for refresh wird angezeigt.

  2. Klicken Sie auf jede Tabelle, um die zu aktualisierenden Tabellen auszuwählen. Die ausgewählten Tabellen werden hervorgehoben und beschriftet. Klicken Sie erneut auf die Tabelle, um sie aus dem Update zu entfernen.

  3. Klicken Sie auf Auswahl aktualisieren.

    Hinweis

    Auf der Schaltfläche Auswahl aktualisieren wird die Anzahl der ausgewählten Tabellen in Klammern angezeigt.

Wenn Sie die Daten erneut verarbeiten möchten, die bereits für die ausgewählten Tabellen erfasst wurden, klicken Sie neben der Schaltfläche Auswahl aktualisieren auf das blaue, nach unten zeigende Caretzeichen, und klicken Sie auf Full Refresh selection.

Überprüfen einer Pipeline auf Fehler, ohne auf die Aktualisierung von Tabellen zu warten

Wichtig

Das Feature Validate-Update von Delta Live Tables befindet sich in der öffentlichen Vorschau.

Um zu überprüfen, ob der Quellcode einer Pipeline gültig ist, ohne ein vollständiges Update auszuführen, verwenden Sie Validate. Mit einem Validate-Update werden die Definitionen von Datasets und Flows aufgelöst, die in der Pipeline definiert sind, aber es werden keine Datasets materialisiert oder veröffentlicht. Fehler, die während der Überprüfung gefunden wurden (z. B. falsche Tabellen- oder Spaltennamen), werden auf der Benutzeroberfläche gemeldet.

Um ein Validate-Update auszuführen, wählen Sie auf der Detailseite der Pipeline neben Start die Option Blaues Feld mit Pfeil nach unten und dann Validate aus.

Nach Abschluss des Validate-Updates werden im Ereignisprotokoll nur Ereignisse im Zusammenhang mit dem Validate-Update angezeigt, und im DAG werden keine Metriken angezeigt. Wenn Fehler gefunden werden, finden Sie die zugehörigen Details im Ereignisprotokoll.

Es werden nur die Ergebnisse des neuesten Validate-Updates angezeigt. Wenn das Validate-Update das zuletzt ausgeführte Update war, können Sie die Ergebnisse anzeigen, indem Sie es unter Updateverlauf auswählen. Wenn nach dem Validate-Update ein weiteres Update ausgeführt wird, sind die Ergebnisse auf der Benutzeroberfläche nicht länger verfügbar.

Fortlaufende und ausgelöste Pipelineausführung

Wenn für die Pipeline der Ausführungsmodus mit Triggern verwendet wird, beendet das System die Verarbeitung nach dem erfolgreichen Update aller Tabellen oder ausgewählter Tabellen in der Pipeline einmal, um sicherzustellen, dass jede Tabelle, die Teil des Updates ist, basierend auf den Daten aktualisiert wird, die beim Starten des Updates verfügbar waren.

Wenn die Pipeline im Ausführungsmodus Fortlaufend ausgeführt wird, verarbeitet Delta Live Tables neue Daten, sobald sie in Datenquellen eintreffen, um Tabellen während der gesamten Pipeline aktuell zu halten.

Der Ausführungsmodus ist unabhängig vom Typ der zu berechnenden Tabelle. Sowohl materialisierte Sichten als auch Streamingtabellen können in beiden Ausführungsmodi aktualisiert werden. Um unnötige Verarbeitung im fortlaufenden Ausführungsmodus zu vermeiden, überwachen Pipelines abhängige Deltatabellen automatisch und führen nur dann ein Update durch, wenn sich der Inhalt dieser abhängigen Tabellen geändert hat.

Hinweis

Die Delta Live Tables-Runtime kann keine Änderungen in Nicht-Delta-Datenquellen erkennen. Die Tabelle wird weiterhin regelmäßig aktualisiert, jedoch mit einem höheren Standardtriggerintervall, um zu verhindern, dass übermäßige Neucomputation jegliche inkrementelle Verarbeitung im Cluster verlangsamt.

Tabelle mit einem Vergleich der Ausführungsmodi von Datenpipelines

In der folgenden Tabelle werden die Unterschiede zwischen diesen Ausführungsmodi beschrieben:

Ausgelöst Fortlaufend
Wann wird das Update beendet? Automatisch nach Abschluss Kontinuierlich ausgeführt, bis der Vorgang manuell beendet wird
Welche Daten werden verarbeitet? Daten, die beim Start des Updates verfügbar sind Alle Daten, sobald sie in den konfigurierten Quellen eingehen
Für welche Anforderungen an die Datenaktualität ist dieser Modus am besten geeignet? Datenupdates werden alle 10 Minuten, stündlich oder täglich ausgeführt. Datenupdates sollten in Abständen zwischen 10 Sekunden und wenigen Minuten ausgeführt werden.

Ausgelöste Pipelines können den Ressourcenverbrauch und die Kosten reduzieren, da der Cluster nur lange genug ausgeführt wird, um die Pipeline auszuführen. Neue Daten werden jedoch erst verarbeitet, wenn die Pipeline ausgelöst wird. Kontinuierliche Pipelines erfordern einen ständig ausgeführten Cluster, der teurer ist, aber die Verarbeitungslatenz reduziert.

Sie können den Ausführungsmodus über den Pipelinemodus in den Einstellungen konfigurieren.

Auswählen von Pipelinegrenzen

Eine Delta Live Tables-Pipeline kann Updates einer einzelnen Tabelle, vieler Tabellen mit abhängigen Beziehungen, vieler Tabellen ohne Beziehungen oder mehrerer unabhängiger Flows von Tabellen mit abhängigen Beziehungen verarbeiten. Dieser Abschnitt enthält Überlegungen zum Aufteilen von Pipelines.

Größere Delta Live Tables-Pipelines bieten eine Reihe von Vorteilen. Dabei handelt es sich z. B. um:

  • Effizienterer Einsatz von Clusterressourcen
  • Verringern der Anzahl von Pipelines in Ihrem Arbeitsbereich
  • Reduzieren der Komplexität der Workfloworchestrierung

Allgemeinen Empfehlungen für die Aufteilung der Pipelineverarbeitung:

  • Aufteilen von Funktionen auf verschiedene Teams. Beispielsweise kann Ihr Datenteam Pipelines zur Datentransformation verwalten, während Ihre Datenanalysten Pipelines zur Analyse der transformierten Daten verwalten.
  • Aufteilen der Funktionalität auf verschiedene Anwendungen, um die Kopplung zu reduzieren und die Wiederverwendung allgemeiner Funktionen zu vereinfachen.

Entwicklungs- und Produktionsmodi

Sie können die Pipelineausführung optimieren, indem Sie zwischen Entwicklungs- und Produktionsmodi wechseln. Verwenden Sie die Schaltflächen mit dem Symbol zum Umschalten der Delta Live Tables-Umgebung auf der Pipeline-Benutzeroberfläche, um zwischen diesen beiden Modi zu wechseln. Standardmäßig werden Pipelines im Entwicklungsmodus ausgeführt.

Wenn Sie Ihre Pipeline im Entwicklungsmodus ausführen, führt das Delta Live Tables-System Folgendes aus:

  • Wiederverwendet einen Cluster, um den Mehraufwand für Neustarts zu vermeiden. Wenn der Entwicklungsmodus aktiviert ist, werden Cluster standardmäßig Cluster zwei Stunden lang ausgeführt. Sie können dies mit der Einstellung pipelines.clusterShutdown.delay unter Konfigurieren Ihrer Computeeinstellungen ändern.
  • Deaktiviert Pipeline-Wiederholungsversuche, sodass Sie Fehler sofort erkennen und beheben können.

Im Produktionsmodus führt das Delta Live Tables-System Folgendes aus:

  • Startet den Cluster für bestimmte wiederherstellbare Fehler neu, einschließlich Speicherverlusten und veralteten Anmeldeinformationen.
  • Bei bestimmten Fehlern wird die Ausführung erneut ausgeführt, z. B. bei einem Fehler beim Starten eines Clusters.

Hinweis

Der Wechsel zwischen Entwicklungs- und Produktionsmodi steuert nur das Ausführungsverhalten von Clustern und Pipelines. Speicherorte und Zielschemas im Katalog zum Veröffentlichen von Tabellen müssen als Teil der Pipelineeinstellungen konfiguriert werden und sind beim Wechseln zwischen Modi nicht betroffen.

Planen einer Pipeline

Sie können eine ausgelöste Pipeline manuell starten oder die Pipeline nach einem Zeitplan mit einem Azure Databricks-Auftrag ausführen. Sie können einen Auftrag mit einer einzelnen Pipelineaufgabe direkt in der Delta Live Tables-Benutzeroberfläche erstellen und planen oder eine Pipelineaufgabe einem Workflow mit mehreren Aufgaben auf der Auftragsbenutzeroberfläche hinzufügen.

So erstellen Sie einen Einzelaufgabenauftrag und einen Zeitplan für den Auftrag in der Delta Live Tables-Benutzeroberfläche:

  1. Klicken Sie auf Zeitplan > Zeitplan hinzufügen. Die Schaltfläche Zeitplan wird aktualisiert, um die Anzahl der vorhandenen Zeitpläne zu zeigen, wenn die Pipeline in einem oder mehreren geplanten Aufträgen enthalten ist, z. B. Zeitplan (5).
  2. Geben Sie im Feld Auftragsname einen Namen für den Auftrag ein.
  3. Legen Sie den Zeitplan auf Geplant fest.
  4. Geben Sie den Zeitraum, die Startzeit und die Zeitzone an.
  5. Konfigurieren Sie eine oder mehrere E-Mail-Adressen, um Warnungen zu Pipelinestart, Erfolg oder Fehler zu erhalten.
  6. Klicken Sie auf Erstellen.