Optimalkan kueri streaming tanpa status

Halaman ini menjelaskan fitur pengoptimalan yang tersedia untuk kueri streaming stateless di Databricks Runtime 18.0 ke atas.

Kueri Streaming Terstruktur Stateless memproses data tanpa mempertahankan status perantara. Kueri ini tidak menggunakan operator stateful seperti agregasi streaming, dropDuplicates, atau gabungan stream-stream. Contohnya termasuk kueri yang menggunakan gabungan statis aliran, MERGE INTO dengan tabel Delta, dan operasi lain yang hanya melacak baris mana yang telah diproses dari sumber ke sink.

Eksekusi Kueri Adaptif dan Pengacakan Otomatis yang Dioptimalkan

Azure Databricks mendukung Adaptive Query Execution (AQE) dan Auto Optimized Shuffle (AOS) untuk kueri streaming stateless. Fitur-fitur ini membantu mengoptimalkan beban kerja streaming yang menggunakan aliran-gabungan statis, MERGE INTO dengan tabel Delta, dan operasi serupa.

Untuk mengaktifkan AQE pada kueri streaming tanpa status, atur konfigurasi berikut menjadi true. Ini diaktifkan secara default:

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

Untuk mengaktifkan AOS untuk kueri streaming stateless, aktifkan AQE dan atur konfigurasi berikut:

spark.sql.shuffle.partitions auto

Ubah partisi pemrosesan ulang ketika kueri dimulai ulang

Kueri streaming tanpa status mendukung perubahan jumlah partisi shuffle ketika memulai ulang kueri. Ini memungkinkan Anda untuk menyesuaikan paralelisme untuk mengakomodasi volume input yang bervariasi.

Fitur ini sangat berguna untuk skenario isi ulang historis. Misalnya, Anda dapat memproses isi ulang historis dengan paralelisme yang lebih tinggi dan kemudian mengurangi paralelisme untuk input real-time.

Untuk mengubah jumlah partisi acak, atur konfigurasi berikut ke nilai yang Anda inginkan dan mulai ulang kueri:

spark.sql.shuffle.partitions <number>