Apache Flink adalah kerangka pemrosesan aliran sumber terbuka untuk memproses aliran data yang tidak dibatasi dan dibatasi. Dalam operasi jendela waktu Flink, pemicu adalah konsep yang sangat penting, yang menentukan kapan jendela harus dihitung dan hasilnya dikeluarkan. Pemicu menentukan kondisi kapan jendela siap diproses (yaitu saat penghitungan dipicu). tipe jendela
jendela waktu(Waktu Windows): Windows berdasarkan pembagian waktu, seperti jendela waktu bergulir (Tumbling Time Windows) dan jendela waktu geser (Sliding Time Windows).
jendela waktu acara(Jendela Waktu Peristiwa): Jendela berdasarkan stempel waktu peristiwa, yang dapat menangani data yang tidak berurutan.
Pemicu
Pemicu digunakan untuk menentukan kondisi kapan jendela siap untuk perhitungan. Flink menyediakan beberapa pemicu bawaan dan memungkinkan pengguna untuk menyesuaikan pemicu sesuai kebutuhan.
Pemicu bawaan
Pemicu Waktu Pemrosesan: Pemicu berdasarkan waktu pemrosesan yang diaktifkan setiap kali interval waktu yang ditentukan tercapai.
Pemicu Waktu Peristiwa : Pemicu berdasarkan waktu kejadian, terpicu ketika waktu akhir jendela tercapai. Ini cocok untuk memproses aliran data waktu peristiwa yang terurut atau tidak berurutan.
Hitungan Pemicu: Pemicu berdasarkan jumlah elemen, dipicu ketika jumlah elemen di jendela mencapai ambang batas yang ditentukan.
Pemicu khusus
Pengguna dapat membuat pemicu khusus dengan mengimplementasikan antarmuka Pemicu. Pemicu khusus dapat memutuskan kapan akan memicu penghitungan jendela berdasarkan logika kompleks. Pemicu khusus biasanya perlu menerapkan metode berikut:
padaElemen(elemen, stempel waktu, jendela, ctx): Dipanggil ketika sebuah elemen ditambahkan ke jendela.
padaWaktuAcara(waktu, jendela, ctx, keluar): Dipanggil ketika waktu acara jendela tiba.
padaWaktuPemrosesan(time, window, ctx, out): Dipanggil ketika waktu pemrosesan window tiba.
padaGabungkan(lainnya): Dipanggil ketika dua jendela digabungkan (misalnya, digunakan dalam jendela sesi).
bisaMenggabungkan(): Menunjukkan apakah pemicu mendukung penggabungan jendela.
memengaruhi
Fungsi utama pemicu adalah untuk mengontrol waktu penghitungan jendela, menjadikan operasi jendela Flink lebih fleksibel dan kuat. Dengan memilih pemicu yang tepat, Anda dapat mengoptimalkan kinerja dan pemanfaatan sumber daya aplikasi pemrosesan aliran Anda.
Contoh
Berikut adalah contoh sederhana menggunakan jendela dan pemicu Flink (dengan asumsi Java API digunakan):