Produktionsüberlegungen für strukturiertes Streaming

Dieser Artikel enthält Empfehlungen zum Konfigurieren von Workloads für die inkrementelle Produktionsverarbeitung mit strukturiertem Streaming auf Azure Databricks, um Latenz- und Kostenanforderungen für Echtzeit- oder Batchanwendungen zu erfüllen. Das Verständnis grundlegender Konzepte des strukturierten Streamings auf Azure Databricks kann Ihnen dabei helfen, häufige Probleme beim Skalieren des Umfangs und der Geschwindigkeit von Daten sowie beim Übergang von der Entwicklung in die Produktion zu vermeiden.

Azure Databricks hat Delta Live Tables eingeführt, um die Komplexität der Verwaltung der Produktionsinfrastruktur für die strukturierte Streaming-Arbeitsauslastung zu verringern. Databricks empfiehlt die Verwendung von Delta Live Tables für neue strukturierte Streaming-Pipelines; siehe Was ist Delta Live Tables.

Hinweis

Die automatische Computeskalierung hat Einschränkungen beim Herunterskalieren der Clustergröße für strukturierten Streaming-Workloads. Databricks empfiehlt die Verwendung von Delta Live-Tabellen mit erweiterter automatischer Skalierung für Streaming-Workloads. Weitere Informationen finden Sie unter Optimieren der Clusternutzung von Delta Live Tables-Pipelines mit erweiterter automatischer Skalierung.

Verwenden von Notebooks für strukturierte Streaming-Arbeitsauslastung

Für die interaktive Entwicklung mit Databricks-Notebooks müssen Sie Ihre Notebooks an einen Cluster anfügen, um Abfragen manuell auszuführen. Sie können Databricks-Notebooks für die automatisierte Bereitstellung und automatische Wiederherstellung nach Abfragefehlern mithilfe von Workflows planen.

Sie können strukturierte Streaming-Abfragen in Notebooks während der interaktiven Entwicklung oder zur interaktiven Überwachung von Produktions-Workloads visualisieren. Sie sollten eine strukturierte Streaming-Abfrage nur dann in der Produktion visualisieren, wenn jemand die Ausgabe des Notebooks regelmäßig überwacht. Zwar sind die Parameter trigger und checkpointLocation optional, doch empfiehlt Databricks als bewährte Methode, diese in der Produktion immer anzugeben.

Steuern der Batchgröße und -frequenz für strukturiertes Streaming auf Azure Databricks

Strukturiertes Streaming auf Azure Databricks verfügt über erweiterte Optionen, um Kosten und Wartezeit beim Streaming mit Auto Loader und Delta Lake zu kontrollieren.

Was ist zustandsbehaftetes Streaming?

Eine zustandsbehaftete strukturierte Streaming-Abfrage erfordert inkrementelle Aktualisierungen von Zwischenzustandsinformationen, während eine zustandslose strukturierte Streaming-Abfrage nur Informationen darüber verfolgt, welche Datensätze von der Datenquelle zur Senke verarbeitet wurden.

Zustandsbehaftete Vorgänge umfassen Streaming-Aggregation, Streaming dropDuplicates, Stream-Stream-Joins, mapGroupsWithState und flatMapGroupsWithState.

Die für zustandsbehaftete strukturierte Streaming-Abfragen erforderlichen Zwischenstatusinformationen können zu unerwarteten Wartezeit- und Produktionsproblemen führen, wenn sie nicht ordnungsgemäß konfiguriert sind.

In Databricks Runtime 13.3 LTS und höher können Sie mit RocksDB Prüfpunkte im Änderungsprotokoll aktivieren, um die Prüfpunktdauer und End-to-End-Latenz für strukturierte Streamingworkloads zu verringern. Databricks empfiehlt, Änderungsprotokollprüfpunkte für alle zustandsbehafteten Abfragen von strukturiertem Streaming zu aktivieren. Weitere Informationen unter Aktivieren der Änderungsprotokollprüfpunkte.