Konzepte des strukturierten Streamings

Apache Spark Structured Streaming ermöglicht es Ihnen, Streaming-Anwendungen und Pipelines mit denselben Spark-APIs zu erstellen, die Sie für die Batch-Verarbeitung verwenden. In Azure Databricks werden zwei Verarbeitungsmodi unterstützt:

  • Echtzeitmodus (RTM): Entwickelt für operative Workloads im Subsekundenbereich, wie z. B. Betrugserkennung und Echtzeitpersonalisierung. RTM verarbeitet Datensätze, sobald sie eintreffen, mit einer End-to-End-Latenz von nur fünf Millisekunden. Siehe Echtzeit-Modus-Konzepte.
  • Mikro-Batch-Modus: Entwickelt für analytische Pipelines sowie Extract, Transform and Load (ETL)-Workloads. Im Mikro-Batch-Modus werden Ströme in kleinen Chargen verarbeitet, wodurch die Rechenkosten mit den in Sekunden oder Minuten gemessenen Latenzanforderungen in Einklang gebracht werden. Mikro-Batch-Verarbeitung ist der Standardmodus.

Beide Modi verwenden dieselben Structured Streaming APIs. Für Abfragen, die von beiden Modi unterstützt werden, kannst du zwischen den Modi über den Trigger und die Compute-Konfiguration wechseln. Siehe Einrichten des Echtzeitmodus.

Structured Streaming unterstützt auch das Streaming in Lakeflow-Pipelines, die auf Apache Spark™ Declarative Pipelines basieren. Pipelines verwalten Orchestrierung, Checkpoints und Wiederherstellung, und du definierst Transformationen in SQL oder Python.

Für eine schrittweise Anleitung siehe Ausführen Ihrer ersten Strukturierten Streaming-Workload.

Aus einem Datenstrom lesen

Verwenden Sie strukturiertes Streaming, um Daten aus unterstützten Datenquellen inkrementell aufzunehmen.

Funktion Beschreibung
Autoloader Inkrementelle und effiziente Verarbeitung neuer Datendateien beim Eintreffen im Cloudspeicher.
Streaminglese- und -schreibvorgänge für Delta Lake-Tabellen Verwenden Sie Delta Lake-Tabellen als Streaming-Quellen und -Senken mit Garantien für eine genau einmalige Verarbeitung.
SQL- und Spark-APIs Verbinden Sie sich mit Nachrichtenbussen, Warteschlangen und Unternehmensanwendungen über SQL- und Spark-APIs.
Mikrobatchgröße Beschränken Sie Eingaberaten, um konsistente Batchgrößen beizubehalten und Verarbeitungsverzögerungen zu verhindern.

Schreiben in eine Datensenke

Konfigurieren Sie, wie Strukturiertes Streaming Daten an Zielsysteme übermittelt.

Funktion Beschreibung
Prüfpunkte Speichern Sie den Verarbeitungszustand, um Fehlertoleranz und eine genau einmalige Übermittlungssemantik zu gewährleisten.
Ausgabemodus Wählen Sie zwischen Anfüge-, Aktualisierungs- und Abschlussmodi für zustandsbehaftete Streamingabfragen aus.
Triggerintervalle Legen Sie Triggerintervalle fest, um Latenz und Kosten für Ihre Verarbeitungsanforderungen auszugleichen.
Echtzeitmodus im strukturierten Streaming Daten für Echtzeitworkloads mit einer End-to-End-Latenz von nur fünf Millisekunden verarbeiten.

Zustands- und zustandslose Verarbeitung

Zustandslose Abfragen verarbeiten Zeilen, ohne den Zustand beizubehalten. Zustandsbehaftete Abfragen verwalten einen Zwischenzustand für Aggregationen, Verknüpfungen und Deduplizierung.

Funktion Beschreibung
Zustandslose Streamingabfragen Optimieren Sie Abfragen, die Daten verarbeiten, ohne den Zwischenzustand beizubehalten.
Wasserzeichen Kontrollieren Sie, wie lange das strukturierte Streaming bei zustandsbehafteten Vorgängen auf verspätet eingehende Daten wartet.
Zustandsbehaftetes Streaming Verwalten Von Aggregationen, Streamstreamverknüpfungen und Deduplizierung mithilfe von zustandsbezogenen Operatoren.

Überwachen und Verwalten

Verfolgen Sie die Abfrageleistung, wenden Sie Optimierungen an, und steuern Sie den Datenzugriff für strukturierte Streaming-Workloads der Produktion.

Funktion Beschreibung
Überwachen mit StreamingQueryListener Nachverfolgen von Abfragefortschritts- und Leistungsmetriken mithilfe der Spark UI- und Listener-API.
Tutorial: Überwachen Sie eine Abfrage mit StreamingQueryListener Fügen Sie einen Listener an und protokollieren Sie die Fortschrittsmetriken der Abfragen an eine Unity-Catalog-Tabelle.
Mit Unity-Katalog steuern Konfigurieren Sie den Unity-Katalog für Streamingworkloads mit Governance und Zugriffssteuerung.