Bagikan melalui


Mengonfigurasi interval pemicu Streaming Terstruktur

Apache Spark Structured Streaming memproses data secara bertahap; mengontrol interval pemicu untuk pemrosesan batch memungkinkan Anda menggunakan Streaming Terstruktur untuk beban kerja termasuk pemrosesan hampir real time, me-refresh database setiap 5 menit atau sekali per jam, atau batch memproses semua data baru selama sehari atau minggu.

Karena Databricks Auto Loader menggunakan Streaming Terstruktur untuk memuat data, memahami cara kerja pemicu memberi Anda fleksibilitas terbesar untuk mengontrol biaya sambil menyerap data dengan frekuensi yang diinginkan.

Menentukan interval pemicu berbasis waktu

Streaming Terstruktur mengacu pada interval pemicu berbasis waktu sebagai "batch mikro interval tetap". processingTime Menggunakan kata kunci, tentukan durasi waktu sebagai string, seperti .trigger(processingTime='10 seconds').

Ketika Anda menentukan interval trigger yang terlalu kecil (kurang dari sepuluh detik), sistem mungkin akan melakukan pemeriksaan yang tidak perlu untuk melihat apakah data baru tiba. Konfigurasikan waktu pemrosesan Anda untuk menyeimbangkan persyaratan latensi dan tingkat data yang tiba di sumbernya.

Mengonfigurasi pemrosesan batch inkremental

Penting

Di Databricks Runtime 11.3 LTS ke atas, Trigger.Once pengaturan tidak digunakan lagi. Databricks menyarankan Anda menggunakan Trigger.AvailableNow untuk semua beban kerja pemrosesan batch bertahap.

Opsi pemicu yang sekarang tersedia menggunakan semua rekaman yang tersedia sebagai batch bertambah bertahap dengan kemampuan untuk mengonfigurasi ukuran batch dengan opsi seperti maxBytesPerTrigger (opsi ukuran bervariasi menurut sumber data).

Azure Databricks mendukung penggunaan Trigger.AvailableNow untuk pemrosesan batch bertahap dari banyak sumber Streaming Terstruktur. Tabel berikut ini menyertakan versi Databricks Runtime minimum yang didukung yang diperlukan untuk setiap sumber data:

Sumber Versi Runtime Databricks Minimum
Sumber file (JSON, Parquet, dll.) 9.1 LTS
Delta Lake 10.4 LTS
Loader Otomatis 10.4 LTS
Apache Kafka 10.4 LTS
Kinesis 13.1

Apa itu interval pemicu default?

Default Streaming Terstruktur ke batch mikro interval tetap 500ms. Databricks menyarankan Anda selalu menentukan yang disesuaikan trigger untuk meminimalkan biaya yang terkait dengan pemeriksaan apakah data baru telah tiba dan memproses batch berukuran kecil.

Mengubah interval pemicu di antara eksekusi

Anda dapat mengubah interval pemicu antara eksekusi saat menggunakan titik pemeriksaan yang sama.

Jika pekerjaan Streaming Terstruktur berhenti saat mikro-batch sedang diproses, mikro-batch tersebut harus diselesaikan sebelum interval pemicu baru berlaku. Dengan demikian, Anda mungkin mengamati pemrosesan mikro-batch dengan pengaturan yang ditentukan sebelumnya setelah mengubah interval pemicu.

Saat berpindah dari interval berbasis waktu ke penggunaan AvailableNow, ini dapat mengakibatkan pemrosesan mikro-batch sebelum memproses semua rekaman yang tersedia sebagai batch inkremental.

Saat berpindah dari AvailableNow ke interval berbasis waktu, ini mungkin mengakibatkan terus memproses semua rekaman yang tersedia saat pekerjaan terakhir AvailableNow dipicu. Ini adalah perilaku yang wajar.

Catatan

Jika Anda mencoba memulihkan dari kegagalan kueri yang terkait dengan batch inkremental, mengubah interval pemicu tidak menyelesaikan masalah ini karena batch masih harus diselesaikan. Databricks merekomendasikan untuk meningkatkan kapasitas komputasi yang digunakan untuk memproses batch untuk mencoba menyelesaikan masalah. Dalam kasus yang jarang terjadi, Anda mungkin perlu memulai ulang aliran dengan titik pemeriksaan baru.

Apa itu mode pemrosesan berkelanjutan?

Apache Spark mendukung interval pemicu tambahan yang dikenal sebagai Pemrosesan Berkelanjutan. Mode ini telah diklasifikasikan sebagai eksperimental sejak Spark 2.3; berkonsultasi dengan tim akun Azure Databricks Anda untuk memastikan Anda memahami trade-off dari model pemrosesan ini.

Perhatikan bahwa mode pemrosesan berkelanjutan ini tidak berhubungan sama sekali dengan pemrosesan berkelanjutan seperti yang diterapkan dalam Tabel Langsung Delta.