Aracılığıyla paylaş


System.Timestamp()

✅ Azure Stream Analytics

Azure Stream Analytics'te sorgunun her aşamasındaki her olayın kendisiyle ilişkilendirilmiş bir zaman damgası vardır. System.Timestamp(), olayın zaman damgasını almak için kullanılabilecek bir sistem özelliğidir.

Aşağıda Azure Stream Analytics'in olaylara nasıl zaman damgaları atadığı açıklanmaktadır.

Giriş olayları zaman damgası

Giriş olayının zaman damgası TIMESTAMP BY yan tümcesinde belirtilen sütun değeri (veya ifade) ile tanımlanabilir:

SELECT System.Timestamp() t   
FROM input   
TIMESTAMP BY MyTimeField  
  

Belirli bir giriş için TIMESTAMP BY yan tümcesi belirtilmezse, olayın varış zamanı zaman damgası olarak kullanılır. Örneğin Olay Hub'ı girişi durumunda olayın sıralanan zamanı kullanılır.

Sonuçta ortaya çıkan olay zaman damgası

Hesaplamalar gerçekleştirildiğinde, sonuçta elde edilen olayın zaman damgası, bu sonucun belirlenebileceği en erken mantıksal zamandır.

Şimdi Azure Stream Analytics'teki temel sorgu işlemlerinin (filtreler, projeksiyonlar, toplamalar ve birleştirmeler) sonucun zaman damgalarını nasıl oluşturduğuna bakalım.

Projection

SELECT  
      Prop1,  
      Prop2,  
      Prop3 - Prop4 / 12,
      System.Timestamp() t  
FROM input  
  

Projeksiyonlar olayın zaman damgasını değiştirmez, sonucun zaman damgası girişin zaman damgasıyla aynıdır.

Filter

SELECT *  
FROM input  
WHERE prop1 > prop2  
  

Filtreler olayın zaman damgasını değiştirmez. Sonucun zaman damgası, girişin zaman damgasıyla aynıdır.

Zaman içinde GROUP BY penceresi

SELECT  
      userId,  
      AVG(prop1),  
      SUM(prop2),  
      System.Timestamp() t  
FROM input  
GROUP BY TumblingWindow(minute, 1), userId  
  

Toplam sonucunun zaman damgası, bu sonucun karşılık gelen zaman penceresinin sonudur. Lütfen Azure Stream Analytics'teki farklı pencere türlerini açıklayan Pencereleme makalelerine bakın.

INNER JOIN

SELECT  
      System.Timestamp()  
FROM input1  
JOIN input2  
ON DATEDIFF(minute, input1, input2) BETWEEN 0 AND 10  
  

İç birleşim, input1 ve input2'den eşleşen olay çiftlerine karşılık gelen sonuçlar üretir.

Girdi1 ve giriş2'den e2'den gelen e1 olayının eşleşmesini temsil eden olay, e1 ve e2'nin en son zaman damgalarıyla zaman damgasını alır.

SOL DıŞ BIRLEŞIM

SELECT  
      System.Timestamp()  
FROM input1  
LEFT JOIN input2  
ON DATEDIFF(minute, input1, input2) BETWEEN -2 AND 10  
  

Sol dış birleşim iki tür sonuç üretir. Bazıları input1 ve input2'den eşleşen bir olay çiftine karşılık gelir; diğerleri yalnızca input1'den bir olaya karşılık gelir ve input2'den eşleşen bir olay bulunamadığını belirtir.

Bir eşleşmeyi temsil eden olaylar (hem giriş1 hem de giriş2 içerir) eşleşen girişlerin en son zaman damgalarıyla zaman damgasını alır (yukarıdaki INNER JOIN örneğinde olduğu gibi).

Eşleşme olmayanları temsil eden olaylar (giriş2 NULL) eşleşen bir input2 olayının oluşabileceği en son mantıksal zamana göre zaman damgasını alır. Örneğin yukarıdaki örnekte input1'in zaman damgası + 10 dakikadır.