Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam skenario streaming waktu, pola umum adalah melakukan operasi pada data yang terkandung dalam jendela temporal. Stream Analytics memiliki dukungan asli untuk fungsi windowing, sehingga Anda dapat membuat pekerjaan pemrosesan aliran yang kompleks dengan upaya minimal.
Ada lima jenis jendela temporal:
Gunakan fungsi jendela dalam klausa GROUP BY dari sintaks kueri dalam pekerjaan Azure Stream Analytics Anda. Anda juga dapat menggabungkan peristiwa melalui beberapa jendela dengan menggunakan fungsi Windows().
Semua operasi windowing menghasilkan output di akhir jendela. Saat memulai tugas analitik aliran, Anda dapat menentukan waktu mulai keluaran Tugas. Sistem secara otomatis mengambil peristiwa sebelumnya di aliran masuk untuk menghasilkan jendela pertama pada waktu yang ditentukan. Misalnya, ketika Anda mulai dengan opsi Sekarang , opsi ini mulai segera memancarkan data. Output dari jendela adalah kejadian tunggal berdasarkan fungsi agregat yang digunakan. Peristiwa output memiliki stempel waktu akhir jendela dan semua fungsi jendela didefinisikan dengan panjang tetap.
Jendela bergulir
Gunakan fungsi jendela Tumbling untuk mensegmentasi aliran data ke dalam segmen waktu yang berbeda, dan melakukan fungsi terhadapnya.
Pembedaan utama dari jendela tumbling adalah:
- Mereka tidak mengulangi.
- Mereka tidak tumpang tindih.
- Peristiwa tidak dapat dimasukkan ke dalam lebih dari satu jendela terguling.
Berikut adalah data input untuk contoh:
| Stempel | DibuatPada | TimeZone |
|---|---|---|
| 1 | 2021-10-26T10:15:01 | PST |
| 5 | 2021-10-26T10:15:03 | PST |
| 4 | 2021-10-26T10:15:06 | PST |
| ... | ... | ... |
Berikut contoh kuerinya:
SELECT System.Timestamp() as WindowEndTime, TimeZone, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY TimeZone, TumblingWindow(second,10)
Berikut sampel outputnya:
| WindowEndTime | TimeZone | Jumlah |
|---|---|---|
| 2021-10-26T10:15:10 | Waktu Standar Pasifik | 5 |
| 2021-10-26T10:15:20 | PST | 2 |
| 2021-10-26T10:15:30 | PST | 4 |
Jendela lompat
Fungsi jendela melompat maju dalam waktu pada periode tetap. Mungkin mudah untuk menganggapnya sebagai jendela tumbling yang dapat tumpang tindih dan dipancarkan lebih sering daripada ukuran jendela. Peristiwa dapat menjadi bagian dari lebih dari satu himpunan hasil jendela hopping. Untuk membuat jendela hopping sama dengan jendela tumbling, tentukan ukuran hop agar sama dengan ukuran jendela.
Berikut data sampelnya:
| Stempel | DibuatPada | Topik |
|---|---|---|
| 1 | 2021-10-26T10:15:01 | Siaran Langsung |
| 5 | 2021-10-26T10:15:03 | Siaran Langsung |
| 4 | 2021-10-26T10:15:06 | Siaran Langsung |
| ... | ... | ... |
Berikut contoh kuerinya:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, HoppingWindow(second,10,5)
Berikut sampel outputnya:
| WindowEndTime | Topik | Jumlah |
|---|---|---|
| 2021-10-26T10:15:10 | Siaran Langsung | 5 |
| 2021-10-26T10:15:15 | Siaran Langsung | 3 |
| 2021-10-26T10:15:20 | Siaran Langsung | 2 |
| 2021-10-26T10:15:25 | Siaran Langsung | 4 |
| 2021-10-26T10:15:30 | Siaran Langsung | 4 |
Jendela geser
Jendela geser, tidak seperti jendela jatuh atau melompat, mengeluarkan peristiwa hanya pada titik waktu saat konten jendela benar-benar mengalami perubahan. Dengan kata lain, saat peristiwa masuk atau keluar dari jendela. Jadi, setiap jendela memiliki setidaknya satu peristiwa. Sama seperti jendela hopping, peristiwa dapat berada di lebih dari satu jendela geser.
Berikut adalah contoh data input:
| Stempel | DibuatPada | Topik |
|---|---|---|
| 1 | 2021-10-26T10:15:10 | Siaran Langsung |
| 5 | 2021-10-26T10:15:12 | Siaran Langsung |
| 9 | 2021-10-26T10:15:15 | Siaran Langsung |
| 7 | 2021-10-26T10:15:15 | Siaran Langsung |
| 8 | 2021-10-26T10:15:27 | Siaran Langsung |
Berikut contoh kuerinya:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, SlidingWindow(second,10)
HAVING COUNT(*) >=3
Keluaran:
| WindowEndTime | Topik | Jumlah |
|---|---|---|
| 2021-10-26T10:15:15 | Siaran Langsung | 4 |
| 2021-10-26T10:15:20 | Siaran Langsung | 3 |
Jendela sesi
Jendela sesi mengelompokkan peristiwa yang tiba pada waktu yang berdekatan. Mereka memfilter periode waktu di mana tidak ada data. Fungsi jendela sesi memiliki tiga parameter utama:
- Jeda Waktu
- Durasi maksimum
- Kunci partisi (opsional).
Jendela sesi dimulai ketika peristiwa pertama terjadi. Jika peristiwa lain terjadi dalam batas waktu yang ditentukan dari peristiwa terakhir yang diserap, jendela akan meluas untuk menyertakan peristiwa baru. Jika tidak ada peristiwa yang terjadi dalam waktu habis, jendela akan ditutup saat waktu habis.
Jika peristiwa terus terjadi dalam batas waktu yang ditentukan, jendela sesi terus diperpanjang hingga durasi maksimum tercapai. Interval pemeriksaan durasi maksimum berukuran sama dengan durasi maks yang ditentukan. Misalnya, jika durasi maksimum adalah 10, maka pemeriksaan pada apakah jendela melebihi durasi maksimum terjadi pada t = 0, 10, 20, 30, dan sebagainya.
Saat Anda memberikan kunci partisi, fungsi mengelompokkan peristiwa berdasarkan kunci tersebut dan menerapkan jendela sesi ke setiap grup secara independen. Pemartisian ini berguna untuk kasus di mana Anda memerlukan jendela sesi yang berbeda untuk pengguna atau perangkat yang berbeda.
Berikut adalah contoh data input:
| Stempel | DibuatPada | Topik |
|---|---|---|
| 1 | 2021-10-26T10:15:01 | Siaran Langsung |
| 2 | 2021-10-26T10:15:04 | Siaran Langsung |
| 3 | 2021-10-26T10:15:13 | Siaran Langsung |
| ... | ... | ... |
Berikut contoh kuerinya:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, SessionWindow(second,5,10)
Keluaran:
| WindowEndTime | Topik | Jumlah |
|---|---|---|
| 2021-10-26T10:15:09 | Siaran Langsung | 2 |
| 2021-10-26T10:15:24 | Siaran Langsung | 4 |
| 2021-10-26T10:15:31 | Siaran Langsung | 2 |
| 2021-10-26T10:15:39 | Siaran Langsung | 1 |
Jendela snapshot
Cuplikan peristiwa grup Windows yang memiliki tanda waktu yang sama. Tidak seperti jenis windowing lainnya, yang memerlukan fungsi jendela tertentu (seperti SessionWindow()), Anda dapat menerapkan jendela rekam jepret System.Timestamp() dengan menambahkan ke GROUP BY klausa.
Berikut adalah contoh data input:
| Stempel | DibuatPada | Topik |
|---|---|---|
| 1 | 2021-10-26T10:15:04 | Siaran Langsung |
| 2 | 2021-10-26T10:15:04 | Siaran Langsung |
| 3 | 2021-10-26T10:15:04 | Siaran Langsung |
| ... | ... | ... |
Berikut contoh kuerinya:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, System.Timestamp()
Berikut sampel outputnya:
| WindowEndTime | Topik | Jumlah |
|---|---|---|
| 2021-10-26T10:15:04 | Siaran Langsung | 4 |
| 2021-10-26T10:15:10 | Siaran Langsung | 2 |
| 2021-10-26T10:15:13 | Siaran Langsung | 1 |
| 2021-10-26T10:15:22 | Siaran Langsung | 2 |
Langkah selanjutnya
Lihat artikel berikut: