Freigeben über


Optimieren von zustandslosen Streamingabfragen

Auf dieser Seite werden Optimierungsfeatures beschrieben, die für zustandslose Streamingabfragen in Databricks Runtime 18.0 und höher verfügbar sind.

Stateless Structured Streaming-Abfragen verarbeiten Daten ohne Zwischenzustand. Diese Abfragen verwenden keine zustandsbehafteten Operatoren wie Streamingaggregationen, dropDuplicates oder Stream-Stream-Verknüpfungen. Beispiele sind Abfragen, die Stream-Static Joins verwenden, MERGE INTO mit Delta-Tabellen, und andere Vorgänge, die nur verfolgen, welche Zeilen von der Quelle zum Ziel verarbeitet wurden.

Ausführung adaptiver Abfragen und automatisch optimiertes Shuffle

Azure Databricks unterstützt adaptive Abfrageausführung (AQE) und autooptimierte Shuffle (AOS) für zustandslose Streamingabfragen. Diese Features helfen beim Optimieren von Streamingworkloads, die stream-statische Verknüpfungen verwenden, MERGE INTO mit Delta-Tabellen und ähnlichen Vorgängen.

Um AQE für zustandslose Streamingabfragen zu aktivieren, legen Sie die folgende Konfiguration auf true. Dies ist standardmäßig aktiviert:

spark.sql.adaptive.streaming.stateless.enabled true

Um AOS für zustandslose Streamingabfragen zu aktivieren, aktivieren Sie AQE, und legen Sie die folgende Konfiguration fest:

spark.sql.shuffle.partitions auto

Ändern von Shuffle-Partitionen beim Neustart der Abfrage

Zustandslose Streamingabfragen unterstützen das Ändern der Anzahl von Shuffle-Partitionen beim Neustart einer Abfrage. Auf diese Weise können Sie die Parallelität anpassen, um unterschiedliche Eingabevolumes zu berücksichtigen.

Dieses Feature ist besonders nützlich für historische Backfill-Szenarien. So können Sie z. B. historisches Ausfüllen mit höherer Parallelität verarbeiten und dann die Parallelität für Echtzeiteingaben reduzieren.

Wenn Sie die Anzahl der Shuffle-Partitionen ändern möchten, legen Sie die folgende Konfiguration auf den gewünschten Wert fest, und starten Sie die Abfrage neu.

spark.sql.shuffle.partitions <number>