Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Streamingtabelle ist eine Delta-Tabelle mit zusätzlicher Unterstützung für Streaming oder inkrementelle Datenverarbeitung. Eine Streamingtabelle kann von einem oder mehreren Datenströmen in einer Pipeline adressiert werden.
Hinweise dazu, wann Streaming-Tabellen anstelle von materialisierten Ansichten oder Ansichten verwendet werden, finden Sie unter Was sind Pipelines?.
Streamingtabellen sind aus folgenden Gründen eine gute Wahl für die Datenaufnahme:
- Jede Eingabezeile wird nur einmal behandelt, wodurch die überwiegende Mehrheit der Erfassungsworkloads modelliert wird (d. a. indem Zeilen an eine Tabelle angefügt oder heraufgestrigt werden).
- Sie können große Mengen von Daten verarbeiten, die nur hinzugefügt werden können.
Streamingtabellen sind auch eine gute Wahl für Streamingtransformationen mit geringer Latenz, da sie über Zeilen und Zeitfenster hinweg Berechnungen anstellen können, hohe Datenmengen verarbeiten und eine Verarbeitung mit niedriger Latenz ermöglichen.
Das folgende Diagramm zeigt, wie Flüsse aus Streamingquellen gelesen und inkrementell in eine Streamingtabelle in einer Pipeline geschrieben werden.
Bei jeder Aktualisierung lesen die Flüsse, die einer Streamingtabelle zugeordnet sind, die geänderten Informationen in einer Streamingquelle und fügen neue Informationen an diese Tabelle an.
Streamingtabellen sind eigentum und werden von einer einzigen Pipeline aktualisiert. Sie definieren Streamingtabellen explizit im Quellcode der Pipeline. Tabellen, die von einer Pipeline definiert sind, können von keiner anderen Pipeline geändert oder aktualisiert werden. Sie können mehrere Flüsse definieren, die an eine einzelne Streamingtabelle angefügt werden sollen.
Azure Databricks erstellt interne Tabellen zur Unterstützung der Streamingtabellenverarbeitung. Diese Tabellen erscheinen in system.information_schema.tables, sind jedoch im Katalog Explorer oder auf anderen Arbeitsbereichs-UI-Seiten nicht sichtbar.
Note
Wenn Sie eine eigenständige Streamingtabelle außerhalb von Lakeflow Spark Declarative Pipelines erstellen, erstellt Azure Databricks eine Pipeline, die zum Aktualisieren der Tabelle verwendet wird. Sie können die Pipeline anzeigen, indem Sie Aufträge und Pipelines aus dem linken Navigationsbereich in Ihrem Arbeitsbereich auswählen. Sie können der Ansicht die Spalte " Pipelinetyp" hinzufügen. Streamingtabellen, die in einer Pipeline definiert sind, haben den Typ ETL. Eigenständige Streamingtabellen haben den Typ MV/ST.
Weitere Informationen zu Flows finden Sie unter Daten inkrementell laden und verarbeiten mit Lakeflow Spark deklarativen Pipeline-Flows.
Streamingtabellen für die Dateneinspeisung
Streamingtabellen sind nur für Anfügedatenquellen vorgesehen und verarbeiten Eingaben nur einmal. Dies macht sie gut geeignet für Erfassungsworkloads, bei denen Daten kontinuierlich eingehen und zuverlässig erfasst werden müssen, ohne vorhandene Datensätze erneut zu verarbeiten. Azure Databricks unterstützt das Laden von Daten in Streaming-Tabellen aus Cloudobjektspeichern (mit Auto Loader) und aus Streaming-Nachrichtenbussen wie Apache Kafka, Azure Event Hubs und Google Pub/Sub. Anleitungen zur Datenerfassung und Codebeispiele finden Sie unter Daten in Pipelines laden.
Note
Um Quelldaten zu streamen, die sich im Zeitverlauf ändern (z. B. Datensätze, die an der Quelle aktualisiert oder gelöscht werden), verwenden Sie AUTO CDC, um diese Änderungen auf eine Streamingtabelle anzuwenden, anstatt sie anzuhängen. Siehe Erfassung von Änderungsdaten und Schnappschüsse.
Das folgende Diagramm veranschaulicht, wie Nur-Anfüge-Streamingtabellen funktionieren.
Eine Zeile, die bereits an eine Streamingtabelle angefügt wurde, wird nicht mit späteren Aktualisierungen der Pipeline erneut abgefragt. Wenn Sie die Abfrage ändern (z. B. von SELECT LOWER (name) zu SELECT UPPER (name)), werden vorhandene Zeilen nicht in Großbuchstaben aktualisiert, aber neue Zeilen sind Großbuchstaben. Sie können eine vollständige Aktualisierung auslösen, um alle vorherigen Daten aus der Quelltabelle neu abzufragen. Dadurch werden alle Zeilen in der Streamingtabelle aktualisiert.
Streamingtabellen und Streaming mit geringer Latenz
Streamingtabellen sind für Streaming mit geringer Latenz über den gebundenen Zustand ausgelegt. Streamingtabellen verwenden die Prüfpunktverwaltung, wodurch sie gut für Streaming mit geringer Latenz geeignet sind. Sie erwarten jedoch Ströme, die natürlich gebunden oder mit einem Wasserzeichen begrenzt sind.
Ein natürlich gebundener Datenstrom wird von einer Streamingdatenquelle erzeugt, die einen klar definierten Start- und End-Vorgang aufweist. Ein Beispiel für einen natürlich gebundenen Datenstrom ist das Lesen von Daten aus einem Verzeichnis mit Dateien, in denen keine neuen Dateien hinzugefügt werden, nachdem ein anfänglicher Batch von Dateien platziert wurde. Der Datenstrom wird als gebunden betrachtet, da die Anzahl der Dateien endlich ist und der Datenstrom endet, nachdem alle Dateien verarbeitet wurden.
Sie können auch ein Wasserzeichen verwenden, um einen Strom zu binden. Ein Wasserzeichen in strukturiertem Streaming ist ein Mechanismus, mit dem späte Daten behandelt werden können, indem angegeben wird, wie lange das System auf verzögerte Ereignisse warten soll, bevor das Zeitfenster als abgeschlossen betrachtet wird. Ein ungebundener Datenstrom ohne Wasserzeichen kann dazu führen, dass eine Pipeline aufgrund von Speicherdruck fehlschlägt.
Für Betriebsarbeitslasten, die die niedrigste mögliche Latenz benötigen, können Sie die Pipeline im Echtzeitmodus ausführen, um Datensätze mit unter zweiter End-to-End-Latenz zu verarbeiten.
Weitere Informationen findest du unter:
- Verwenden des Echtzeitmodus in Lakeflow Spark Declarative Pipelines
- Optimierung der zustandsbehafteten Verarbeitung mit Wasserzeichen
Einschränkungen der Streamingtabelle
Streamingtabellen haben die folgenden Einschränkungen:
-
Begrenzte Entwicklung: Sie können die Abfrage ändern, ohne das gesamte Dataset neu zu komputieren. Ohne vollständige Aktualisierung sieht eine Streamingtabelle nur einmal jede Zeile, sodass unterschiedliche Abfragen unterschiedliche Zeilen verarbeitet haben. Wenn Sie z. B. zu einem Feld in der Abfrage hinzufügen
UPPER(), werden nach der Änderung nur Zeilen in Großbuchstaben verarbeitet. Dies bedeutet, dass Sie alle vorherigen Versionen der Abfrage kennen müssen, die in Ihrem Dataset ausgeführt werden. Um vorhandene Zeilen erneut zu verarbeiten, die vor der Änderung verarbeitet wurden, ist eine vollständige Aktualisierung erforderlich. - Zustandsverwaltung: Streamingtabellen haben eine niedrige Latenz und erfordern Datenströme, die entweder natürlich begrenzt oder mit einem Wasserzeichen versehen sind. Weitere Informationen finden Sie unter Optimierung der zustandsbehafteten Verarbeitung mit Wasserzeichen.
- Verknüpfungen werden nicht neu berechnet: Verknüpfungen in Streamingtabellen werden nicht neu berechnet, wenn sich Dimensionen ändern. Diese Eigenschaft kann für "schnelle, aber falsche" Szenarien gut sein. Wenn Ihre Ansicht immer korrekt sein soll, können Sie eine materialisierte Ansicht verwenden. Materialisierte Ansichten sind immer richtig, da sie Verknüpfungen automatisch neu kompensieren, wenn sich Dimensionen ändern. Weitere Informationen finden Sie unter Materialisierte Ansichten. Ein Beispiel für das Verknüpfen eines Datenstroms zu einer statischen Dimensionstabelle finden Sie unter Stream-static joins.
-
Keine
CLONEUnterstützung: Streamingtabellen können nicht als Quelle oder Ziel eines tiefen oder flachen Klons verwendet werden. Weitere nicht unterstützte Befehle finden Sie unter "Einschränkungen". -
REFRESHBerechtigung, die zum Anzeigen der Pipeline erforderlich ist: Um die Pipeline anzuzeigen, auf der eine Streamingtabelle basiert, benötigt ein Benutzer ohne Administratorrechte zusätzlich zu den Berechtigungen für die Pipeline dieREFRESHBerechtigung für die Streamingtabelle. Sehen Sie sich an, wer eine Pipeline und deren Ausgabe anzeigen kann?.