Share via


System.Timestamp() (Stream Analytics)

Az Azure Stream Analytics lekérdezésének minden szakaszában minden eseményhez tartozik egy időbélyeg. A System.Timestamp() egy rendszertulajdonság, amely az esemény időbélyegének lekérésére használható.

Az alábbiakban azt ismertetjük, hogy az Azure Stream Analytics hogyan rendel időbélyegeket az eseményekhez.

Bemeneti események időbélyege

A bemeneti esemény időbélyege a TIMESTAMP BY záradékban megadott oszlopérték (vagy kifejezés) alapján határozható meg:

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

Ha nincs megadva TIMESTAMP BY záradék egy adott bemenethez, az esemény érkezési ideje időbélyegként lesz használva. Az Eseményközpont bemenete esetén például az esemény enqueued időpontja lesz felhasználva.

Eredményként kapott esemény időbélyege

Számítások végrehajtásakor az eredményként kapott esemény időbélyege az a legkorábbi logikai időpont, amikor ez az eredmény meghatározható.

Vizsgáljuk meg, hogyan generálják az eredmény időbélyegeit az Azure Stream Analytics alapszintű lekérdezési műveletei (szűrők, leképezések, összesítések és illesztések).

Vetület

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

A leképezések nem módosítják az esemény időbélyegét, az eredmény időbélyege megegyezik a bemenet időbélyegével.

Szűrő

SELECT *  
FROM input  
WHERE prop1 > prop2  
  

A szűrők nem módosítják az esemény időbélyegét. Az eredmény időbélyege megegyezik a bemenet időbélyegével.

GROUP BY over time window

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

Az összesítés eredményének időbélyege annak az időkeretnek a vége, amelyre ez az eredmény megfelel. Tekintse meg az Azure Stream Analytics különböző ablaktípusokat ismertető ablakokkal (Azure Stream Analytics) foglalkozó cikkeit.

BELSŐ ILLESZTÉS

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

A belső illesztés olyan eredményeket hoz létre, amelyek megfelelnek az 1. és 2. bemenet egyező eseménypárjainak.

Az e1 és az e2 bemenetből származó e1 esemény egyezését jelölő eseményt az e1 és az e2 időbélyegeinek legújabb időbélyege határozza meg.

BAL OLDALI KÜLSŐ ILLESZTÉS

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

A bal oldali külső illesztés két típusú eredményt ad. Néhány egyező eseménypárnak felel meg az 1. és a 2. bemenetből; mások csak egy bemeneti1 eseménynek felelnek meg, és azt jelzik, hogy nem található egyező esemény a input2-ből.

Az egyezést jelképező eseményeket (mind a bemenet1, mind a bemenet2) az egyező bemenetek időbélyegeinek legújabb időbélyegei (mint a fenti INNER JOIN esetében) időbélyegzői jelzik.

A nem egyezéseket jelző eseményeket (a bemeneti2 értéke NULL) a legutóbbi logikai időpont határozza meg, amikor egyező bemeneti2 esemény történhetett. A fenti példában például az input1 időbélyege + 10 perc.