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.