System.Timestamp() (Stream Analytics)
Setiap peristiwa di setiap tahap kueri di Azure Stream Analytics memiliki tanda waktu yang terkait dengannya. System.Timestamp() adalah properti sistem yang dapat digunakan untuk mengambil tanda waktu peristiwa.
Di bawah ini, kami menjelaskan cara Azure Stream Analytics menetapkan tanda waktu ke peristiwa.
Tanda waktu peristiwa input
Tanda waktu peristiwa input dapat ditentukan oleh nilai kolom (atau ekspresi) yang ditentukan dalam klausa TIMESTAMP BY :
SELECT System.Timestamp() t
FROM input
TIMESTAMP BY MyTimeField
Jika klausa TIMESTAMP BY tidak ditentukan untuk input tertentu, waktu kedatangan peristiwa digunakan sebagai tanda waktu. Misalnya Waktu antrean peristiwa akan digunakan jika terjadi input Event Hub.
Tanda waktu peristiwa yang dihasilkan
Ketika komputasi dilakukan, tanda waktu peristiwa yang dihasilkan adalah waktu logis paling awal di mana hasil ini dapat ditentukan.
Mari kita lihat bagaimana operasi kueri dasar di Azure Stream Analytics (filter, proyeksi, agregasi, dan gabungan) menghasilkan tanda waktu untuk hasilnya.
Proyeksi
SELECT
Prop1,
Prop2,
Prop3 - Prop4 / 12,
System.Timestamp() t
FROM input
Proyeksi tidak mengubah tanda waktu peristiwa, tanda waktu hasil sama dengan tanda waktu input.
Filter
SELECT *
FROM input
WHERE prop1 > prop2
Filter tidak mengubah tanda waktu peristiwa. Tanda waktu hasil sama dengan tanda waktu input.
JENDELA GROUP BY dari waktu ke waktu
SELECT
userId,
AVG(prop1),
SUM(prop2),
System.Timestamp() t
FROM input
GROUP BY TumblingWindow(minute, 1), userId
Tanda waktu hasil agregat adalah akhir jendela waktu yang sesuai dengan hasil ini. Silakan lihat artikel Windowing (Azure Stream Analytics) yang menjelaskan berbagai jenis jendela di Azure Stream Analytics.
GABUNGAN DALAM
SELECT
System.Timestamp()
FROM input1
JOIN input2
ON DATEDIFF(minute, input1, input2) BETWEEN 0 AND 10
Gabungan dalam menghasilkan hasil yang sesuai dengan pasangan peristiwa yang cocok dari input1 dan input2.
Peristiwa yang mewakili kecocokan peristiwa e1 dari input1 dan e2 dari input2 ditandai dengan tanda waktu terbaru e1 dan e2.
GABUNGAN LUAR KIRI
SELECT
System.Timestamp()
FROM input1
LEFT JOIN input2
ON DATEDIFF(minute, input1, input2) BETWEEN -2 AND 10
Gabungan luar kiri menghasilkan hasil dari dua jenis. Beberapa sesuai dengan sepasang peristiwa yang cocok dari input1 dan input2; yang lain hanya sesuai dengan peristiwa dari input1, dan menunjukkan bahwa tidak ada peristiwa yang cocok dari input2 yang ditemukan.
Peristiwa yang mewakili kecocokan (memiliki input1 dan input2) ditandai dengan tanda waktu terbaru dari input yang cocok (seperti dalam kasus INNER JOIN di atas).
Peristiwa yang mewakili non-kecocokan (input2 adalah NULL) diberi tanda waktu oleh waktu logis terbaru di mana peristiwa input2 yang cocok dapat terjadi. Misalnya, dalam contoh di atas, ini adalah tanda waktu input1 + 10 menit.