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 ✅ Fabric Eventstream
Megjegyzés:
A Fabric Eventstream ugyanarra a futtatókörnyezetre épül, mint az Azure Stream Analytics. Ezért a cikkben ismertetett fogalmak az Azure Stream Analyticsre és a Fabric Eventstreamre is érvényesek.
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ó.
Itt bemutatjuk, hogyan rendeli 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ény enqueued ideje például akkor használatos, ha a bemenet az Azure Event Hubs.
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 kivetíté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ő ablakokkal kapcsolatos 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. 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-hez hasonlóan) időbélyeggel mérik.
A nem egyezéseket jelképező 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 példában például az 1. bemenet időbélyege + 10 perc.