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.