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.
✅ Azure Stream Analytics ✅ Fabric Eventstream
Windowing menyediakan cara untuk mengagregasi peristiwa selama berbagai interval waktu tergantung pada definisi jendela tertentu. Ada empat jenis jendela temporal yang dapat dipilih: Tumbling, Hopping, Sliding, dan Session.
Fungsi Windows() memperluas konsep ini untuk secara bersamaan menghitung hasil dari beberapa definisi jendela yang berbeda. Fungsi Windows() memungkinkan Anda menentukan lebih dari satu definisi jendela. Logika kueri dihitung untuk masing-masing definisi jendela ini, dan hasilnya adalah gabungan dari semua hasil jendela.
Karena hasil fungsi Windows() berisi kombinasi beberapa jendela, Anda perlu membedakan antara hasil yang berbeda. Ini dilakukan dengan menetapkan identitas ke setiap jendela yang dapat diakses menggunakan fungsi sistem System.Window(). Id. System.Window() mengembalikan rekaman dengan Id sebagai bidangnya.
Ada dua cara untuk menentukan Windows:
Tetapkan identitas unik menggunakan fungsi Window(),Window ( ID , window_definition ), di mana ID adalah identitas window_definition dan merupakan nilai varchar(maks) yang tidak peka huruf besar/kecil dalam konstruksi Windows.
Tanpa identitas, dalam hal ini System.Window(). Id menghasilkan nilai null.
Sintaksis
| Windows ( window_definition, … )
| Windows ( Window ( id , window_definition ), … )
window_definition =
| HoppingWindow ( …
| TumblingWindow ( …
| SlidingWindow ( …
| SessionWindow ( …
| Hopping ( …
| Tumbling ( …
| Sliding ( …
| Session ( …
Nota
Konstruksi Windows tidak dapat ditumpuk. Identitas harus diberikan ke semua definisi jendela atau diberikan kepada tidak ada.
Ada nama definisi jendela yang dipersingkat, seperti "Tumbling", yang dapat digunakan di Windows() untuk menghindari pengulangan kata "jendela" seperti di Windows(Window('MyWindow', TumblingWindow(…. Nama yang disingkat juga dapat digunakan di luar konstruksi Windows.
Ini bukan kesalahan untuk menggunakan System.Window(). Id tanpa konstruksi Windows, tetapi nilainya akan null karena tidak ada identitas yang diberikan ke jendela.
Jika definisi jendela ditentukan menggunakan fungsi Window(), maka semua definisi jendela harus menggunakan fungsi Window() dan semua ID yang tidak peka huruf besar/kecil harus unik. Null tidak diperbolehkan.
Fungsi System.Window()
Fungsi System.Window() hanya dapat digunakan dalam klausa SELECT dari pernyataan GROUP BY untuk mengambil metadata tentang jendela waktu pengelompokan.
Fungsi mengembalikan nilai jenis Rekaman yang berisi id bidang tunggal, yang menyimpan identitas jendela tempat peristiwa berada.
Contoh
Buat jendela untuk menghitung mobil untuk setiap durasi 10, 20, 30, 40, 50, dan 60 menit tanpa identitas jendela.
SELECT
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
TumblingWindow(minute, 10),
TumblingWindow(minute, 20),
TumblingWindow(minute, 30),
TumblingWindow(minute, 40),
TumblingWindow(minute, 50),
TumblingWindow(minute, 60))
Buat jendela dengan hop 1 menit dan empat durasi yang berbeda - 1 menit, 15 menit, 30 menit dan 60 menit.
SELECT
System.Window().Id,
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
Window('1 min', TumblingWindow(minute, 1)),
Window('15 min', HoppingWindow(minute, 15, 1)),
Window('30 min', HoppingWindow(minute, 30, 1)),
Window('60 min', HoppingWindow(minute, 60, 1)))
Buat jendela dengan ukuran yang berbeda dan filter hasil berdasarkan durasi jendela yang ditentukan dalam tabel Referensi.
WITH HoppingWindowResults AS
(
SELECT
System.Window().Id,
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
Window('H10', Hopping(minute, 10, 5)),
Window('H20', Hopping(minute, 20, 5)),
Window('H30', Hopping(minute, 30, 5)),
Window('H40', Hopping(minute, 40, 5)),
Window('H50', Hopping(minute, 50, 5)),
Window('H60', Hopping(minute, 60, 5)))
)
SELECT HoppingWindowResults.*
FROM HoppingWindowResults
JOIN ReferenceTable ON
HoppingWindowResults.TollId = ReferenceTable.TollId
AND HoppingWindowResults.Id = ReferenceTable.windowId