Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
✅ Azure Stream Analytics
Az Azure Stream Analytics lekérdezésének minden szakaszában minden eseményhez van időbélyeg társítva. A System.Timestamp() egy rendszertulajdonság, amely az esemény időbélyegének lekérésére használható.
Az alábbiakban bemutatjuk, hogyan rendeli hozzá az Azure Stream Analytics az 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 ideje lesz haszná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 a legkorábbi logikai idő, amikor az eredmény meghatározható.
Nézzük meg, hogy az Azure Stream Analytics alapszintű lekérdezési műveletei (szűrők, előrejelzések, aggregációk és illesztések) hogyan generálják az eredmény időbélyegeit.
Projection
SELECT
Prop1,
Prop2,
Prop3 - Prop4 / 12,
System.Timestamp() t
FROM input
A előrejelzé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.
Filter
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 aggregátum eredményének időbélyege annak az időablaknak a vége, amelynek az eredmény megfelel. Tekintse meg az Azure Stream Analytics különböző ablaktípusokat ismertető ablakokat ismertető cikkeit.
INNER JOIN
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. bemenet és a bemenet2 egyező eseménypárjainak.
Az e1 és az e2 bemenetből származó e1 eseménynek az input2-ből származó egyezését 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étféle eredményt ad. Néhány egyező eseménypárnak felel meg az 1. és a 2. bemenetből; mások csak egy eseménynek felelnek meg az 1. bemenetből, és azt jelzik, hogy nem található egyező esemény a bemenet2-ből.
Az egyezést jelképező eseményeket (mind a bemeneti1, mind a bemeneti2) az egyező bemenetek időbélyegeinek legújabb időbélyegei (a fenti INNER JOIN esetében is) időbélyegzésével mérik.
A nem egyezéseket jelző eseményeket (a bemeneti2 értéke NULL) a legújabb logikai idő határozza meg, amikor egy egyező bemeneti2 esemény történhetett volna. A fenti példában például az input1 időbélyege + 10 perc.