Hopping Ablak (Azure Stream Analytics)
A átfedésben lévő ablakokkal ellentétben a windowsos modell átfedő ablakokat ütemez. A felugró ablak specifikációja három paraméterből áll: az időegységből, az ablakméretből (az egyes ablakok időtartamából) és a ugrásból (azzal, hogy az egyes ablakok mennyivel haladnak előre az előzőhöz képest). Emellett az eltolás választható negyedik paraméterként is használható. Vegye figyelembe, hogy a ugróablak egyszerűen egy felugró ablak, amelynek "ugrása" megegyezik a "méretével".
Az alábbi ábrán egy stream látható egy eseménysorozattal. Minden doboz egy felugró ablakot jelöl, és azokat az eseményeket, amelyek az adott ablak részeként vannak megszámolva, feltéve, hogy a ugrás 5, a "méret" pedig 10.
Syntax
{HOPPINGWINDOW | HOPPING} ( timeunit , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit , windowsize ) , Hop (timeunit , windowsize ), [Offset(timeunit , offsetsize)])
Megjegyzés
A Hopping ablak a fenti két módon használható. Ha a windowsize és a hopsize azonos időegységű, használhatja az Időtartam és a Ugrás függvény nélkül. Az Duration függvény más típusú ablakokkal is használható az ablak méretének megadásához.
Argumentumok
timeunit
A windowsize vagy a hopsize időegysége. Az alábbi táblázat az összes érvényes időunit-argumentumot felsorolja.
Timeunit | Rövidítések |
---|---|
nap | dd, d |
óra | óó |
perc | mi, n |
másodperc | ss, s |
ezredmásodperc | Ms |
mikroszekundum | Mcs |
windowsize
Egy nagy egész szám, amely az ablak méretét írja le. A windowsize statikus, és futásidőben nem módosítható dinamikusan.
Az ablak maximális mérete minden esetben 7 nap.
ugrás
Egy nagy egész szám, amely a Ugrás méretét írja le.
eltolás
Alapértelmezés szerint a felugró ablakok az ablak végén vannak, és az elején kizárólagosak – például 12:05 és 13:05 között – azok az események, amelyek pontosan 13:05-kor történtek, de nem tartalmazzák a 12:05:05-kor történt eseményeket (ezek az események a 12:00 és 13:00 közötti időszak részét képezik).
Az Eltolás paraméter használatával módosíthatja a viselkedést, és belefoglalhatja az eseményeket az ablak elejébe, és kizárhatja azokat, amelyek a végén történtek.
Példák
SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY TollId, HoppingWindow(Duration(hour, 1), Hop(minute, 5), Offset(millisecond, -1))
Idő szempontja
Minden ablakművelet eseményt ad ki az ablak végén (az ablakok felugrása esetén ez minden ugrási méretben történik). Az Azure Stream Analytics ablakai az ablak kezdő időpontjában nyílnak meg, és az ablak végén bezáródnak. Ha például 5 perces ablaka van 12:00 és 12:05 között, az összes 12:00-nál hosszabb és 12:05-ös időbélyegzőt tartalmazó esemény ebbe az ablakba lesz belefoglalva. Az ablak kimenete egyetlen esemény lesz a használt összesítő függvény alapján, és az időbélyeg megegyezik az ablak befejezési időpontjával. Az ablak kimeneti eseményének időbélyege a SELECT utasításban kivetíthető egy alias használatával a System.Timestamp() tulajdonság használatával.