Inkrementelles Laden und Verarbeiten von Daten mit Lakeflow Spark Declarative Pipelines-Flüssen

Daten werden in Pipelines durch Abläufe verarbeitet. Jeder Fluss besteht aus einer Abfrage und in der Regel einem Ziel. Der Prozess verarbeitet die Abfrage entweder als Batch oder inkrementell als Datenstrom in das Ziel. Ein Flow befindet sich innerhalb einer Pipeline in den Lakeflow Spark Declarative Pipelines.

In der Regel werden Flüsse automatisch definiert, wenn Sie eine Abfrage in einer Pipeline erstellen, die ein Ziel aktualisiert, aber Sie können auch explizit zusätzliche Flüsse für eine komplexere Verarbeitung definieren, z. B. das Anfügen an ein einzelnes Ziel aus mehreren Quellen.

Aktualisierungen

Ein Fluss wird jedes Mal ausgeführt, wenn die definierende Pipeline aktualisiert wird. Der Fluss erstellt oder aktualisiert Tabellen mit den neuesten verfügbaren Daten. Abhängig vom Typ des Flusses und dem Status der Änderungen an den Daten kann die Aktualisierung eine inkrementelle Aktualisierung durchführen, die nur neue Datensätze verarbeitet oder eine vollständige Aktualisierung durchführt, die alle Datensätze aus der Datenquelle neu verarbeitet.

Standardflüsse und Anfügeflüsse

Wenn Sie eine Abfrage in einer Pipeline erstellen, die ein Ziel aktualisiert, wird automatisch ein Standardfluss definiert. Bei einer Streamingtabelle ist der Standardfluss ein Anfügefluss , der neue Zeilen mit jeder Aktualisierung hinzufügt und denselben Namen wie das Ziel hat. Das Erstellen eines Flusses und seines Ziels in einem einzigen Schritt ist die am häufigsten verwendete Methode zur Verwendung von Pipelines, und Sie können ihn zum Aufnehmen oder Transformieren von Daten verwenden.

Sie können Flüsse auch separat von einem Ziel definieren, wodurch mehrere Flüsse Daten an ein einzelnes Ziel anfügen können. Dies ist nützlich, wenn Sie Folgendes benötigen:

  • Fügen Sie Streamingquellen hinzu, die an eine vorhandene Streamingtabelle angefügt werden, ohne dass eine vollständige Aktualisierung erforderlich ist.
  • Füllen Sie eine Streamingtabelle mit fehlenden historischen Daten zurück.
  • Kombinieren Sie Daten aus mehreren Quellen, ohne eine UNION Klausel zu verwenden.

Beispiele zum Erstellen von Standard- und expliziten Flüssen finden Sie unter Verwenden von Flüssen in Lakeflow Spark Declarative Pipelines.

Typen von Flüssen

Die Standardflüsse für Streamingtabellen und materialisierte Ansichten sind Anfügeflüsse. Sie können auch Flows erstellen, um aus Change Data Capture-Datenquellen zu lesen. In der folgenden Tabelle werden die verschiedenen Arten von Flüssen beschrieben.

Flow-Typ Beschreibung
Anfügen Append-Flüsse sind die häufigste Art von Datenfluss, bei denen neue Datensätze aus der Quelle bei jeder Aktualisierung an das Ziel geschrieben werden. Sie entsprechen dem Anfügemodus im strukturierten Streaming. Sie können das ONCE Flag hinzufügen, das eine Batchabfrage angibt, deren Daten nur einmal in das Ziel eingefügt werden sollen, es sei denn, das Ziel wird vollständig aktualisiert. Eine beliebige Anzahl von Append-Flows kann in ein bestimmtes Ziel schreiben.
Standardflüsse (erstellt mit der Zielstreamingtabelle oder der materialisierten Sicht) haben denselben Namen wie das Ziel. Andere Ziele weisen keine Standardflüsse auf.
Automatisches CDC (zuvor Änderungen übernehmen) Ein Auto-CDC-Fluss erfasst eine Abfrage, die Daten zur Änderungsdatenerfassung (Change Data Capture, CDC) enthält. Automatisierte CDC-Flows können nur Streamingtabellen als Ziel verwenden, und die Quelle muss eine Streamingquelle sein (auch bei ONCE Flüssen). Mehrere automatische CDC-Ströme können auf eine einzelne Streamingtabelle ausgerichtet werden. Eine Streamingtabelle, die als Ziel für einen automatischen CDC-Fluss fungiert, kann nur von anderen automatischen CDC-Flüssen bestimmt werden.
Weitere Informationen zu CDC-Daten finden Sie unter Auto CDC-APIs: Vereinfachen der Änderungsdatenerfassung mit Pipelines.
Update (öffentliche Vorschau) Update-Flows geben globale Streaming-Aggregate ohne Wasserzeichenmarkierung an eine Senke aus und emittieren dabei nur die Datensätze, die sich in jedem Batch geändert haben.
Updateflüsse sind nur in Python verfügbar. Siehe update_flow.

Weitere Ressourcen

Weitere Informationen zu Flüssen und deren Verwendung finden Sie in den folgenden Themen: