Delen via


Stateless streaming queries optimaliseren

Op deze pagina worden optimalisatiefuncties beschreven die beschikbaar zijn voor stateless streamingquery's in Databricks Runtime 18.0 en hoger.

Stateless Structured Streaming-query's verwerken gegevens zonder tussenliggende status te behouden. Deze query's maken geen gebruik van stateful operators, zoals streamingaggregaties, dropDuplicates of stream-stream joins. Voorbeelden hiervan zijn query's die stroom-statische joins gebruiken, MERGE INTO met Delta-tabellen en andere bewerkingen die alleen bijhouden welke rijen van bron naar sink zijn verwerkt.

Adaptieve queryuitvoering en automatisch geoptimaliseerde shuffle

Azure Databricks ondersteunt Adaptive Query Execution (AQE) en Auto Optimized Shuffle (AOS) voor stateless streaming-query's. Deze functies helpen bij het optimaliseren van streamingworkloads die gebruikmaken van stream-statische joins, MERGE INTO met Delta-tabellen en vergelijkbare bewerkingen.

Als u AQE wilt inschakelen voor stateless streamingquery's, stelt u de volgende configuratie in op true. Dit is standaard ingeschakeld:

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

Als u AOS wilt inschakelen voor stateless streamingquery's, schakelt u AQE in en stelt u de volgende configuratie in:

spark.sql.shuffle.partitions auto

Wijzig shuffle-partities tijdens het herstarten van de query

Stateless streaming queries ondersteunen het wijzigen van het aantal shuffle-partities wanneer u een query opnieuw start. Hierdoor kunt u parallellisme aanpassen om verschillende invoervolumes aan te passen.

Deze functie is vooral handig voor historische backfill-scenario's. U kunt bijvoorbeeld historische backfill verwerken met hoger parallelisme en vervolgens het parallelisme verminderen voor realtime invoer.

Als u het aantal willekeurige partities wilt wijzigen, stelt u de volgende configuratie in op de gewenste waarde en start u de query opnieuw op:

spark.sql.shuffle.partitions <number>