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.
Az időalapú streamelési forgatókönyvekben gyakori példa a műveletek végrehajtása az időablakokban található adatokon. A Stream Analytics natív támogatást nyújt az ablakozási függvényekhez, így minimális erőfeszítéssel összetett streamfeldolgozási feladatokat hozhat létre.
Az időablaknak öt típusa van:
A Stream Analytics-feladatok lekérdezési szintaxisának GROUP BY záradékában használja az ablakfüggvényeket. A Windows() függvény használatával több ablakban is összesítheti az eseményeket.
Az ablakozási műveletek kimenete az ablak végén jelenik meg. Stream analytics-feladat indításakor megadhatja a feladat kimenetének kezdési időpontját. A rendszer automatikusan lekéri a bejövő streamek korábbi eseményeit, hogy az első ablakot a megadott időpontban jelenítse meg kimenetként. Ha például a Most lehetőséggel kezdi, az azonnal elkezd adatokat bocsát ki. Az ablak kimenete egy esemény, amely a használt összesítő függvény alapján jön létre. A kimeneti esemény az ablak végének időbélyegével rendelkezik, és az összes ablakfüggvény rögzített hosszúságú.
Csúszó ablak
A átfedésmentes ablakfüggvények használatával az adatfolyamokat különböző időszegmensekbe szegmentáltuk, és egy függvényt hajtunk végre rajtuk.
A csúszóablak legfontosabb megkülönböztető jegyei a következők:
- Nem ismétlődnek.
- Nem fedik egymást.
- Egy esemény nem tartozhat egynél több ugróablakhoz.
A példa bemeneti adatai a következők:
| Időbélyeg | CreatedAt (Létrehozás ideje) | TimeZone |
|---|---|---|
| 1 | 2021-10-26T10:15:01 | PST |
| 5 | 2021-10-26T10:15:03 | PST |
| 4 | 2021-10-26T10:15:06 | PST |
| ... | ... | ... |
Íme a minta lekérdezés:
SELECT System.Timestamp() as WindowEndTime, TimeZone, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY TimeZone, TumblingWindow(second,10)
A mintakimenet a következő:
| AblakVégénekIdeje | TimeZone | Számlál |
|---|---|---|
| 2021-10-26T10:15:10 | PST | 5 |
| 2021-10-26T10:15:20 | PST | 2 |
| 2021-10-26T10:15:30 | PST | 4 |
Felugró ablak
A felugró ablakfüggvények előreugranak az időben egy meghatározott időszak szerint. Könnyen lehet úgy tekinteni rájuk, mint a bukó ablakok, amelyek átfedésben lehetnek, és gyakrabban bocsáthatók ki, mint az ablak mérete. Az események egynél több mozgó ablak eredményhalmazához is tartozhatnak. Ha azt szeretné, hogy a felugró ablak ugyanolyan legyen, mint egy bukóablak, adja meg az ugrás méretét, hogy megegyezik az ablak méretével.
A mintaadatok a következők:
| Időbélyeg | CreatedAt (Létrehozás ideje) | Téma |
|---|---|---|
| 1 | 2021-10-26T10:15:01 | Online közvetítés |
| 5 | 2021-10-26T10:15:03 | Online közvetítés |
| 4 | 2021-10-26T10:15:06 | Online közvetítés |
| ... | ... | ... |
Íme a minta lekérdezés:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, HoppingWindow(second,10,5)
A mintakimenet a következő:
| AblakVégénekIdeje | Téma | Számlál |
|---|---|---|
| 2021-10-26T10:15:10 | Online közvetítés | 5 |
| 2021-10-26T10:15:15 | Online közvetítés | 3 |
| 2021-10-26T10:15:20 | Online közvetítés | 2 |
| 2021-10-26T10:15:25 | Online közvetítés | 4 |
| 2021-10-26T10:15:30 | Online közvetítés | 4 |
Csúszó ablak
Csúszó ablakok, ellentétben a gördülő vagy ugró ablakokkal, csak azokban az időpontokban szolgáltatnak kimeneti eseményeket, amikor az ablak tartalma valóban megváltozik. Más szóval, amikor egy esemény belép vagy kilép az ablakon. Tehát minden ablaknak van legalább egy eseménye. A felugró ablakokhoz hasonlóan az események több tolóablakhoz is tartozhatnak.
Íme a minta bemeneti adatok:
| Időbélyeg | CreatedAt (Létrehozás ideje) | Téma |
|---|---|---|
| 1 | 2021-10-26T10:15:10 | Online közvetítés |
| 5 | 2021-10-26T10:15:12 | Online közvetítés |
| 9 | 2021-10-26T10:15:15 | Online közvetítés |
| 7 | 2021-10-26T10:15:15 | Online közvetítés |
| 8 | 2021-10-26T10:15:27 | Online közvetítés |
Íme a minta lekérdezés:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, SlidingWindow(second,10)
HAVING COUNT(*) >=3
Kimenet:
| AblakVégénekIdeje | Téma | Számlál |
|---|---|---|
| 2021-10-26T10:15:15 | Online közvetítés | 4 |
| 2021-10-26T10:15:20 | Online közvetítés | 3 |
Munkamenet ablaka
A munkamenetablak függvényei a hasonló időpontokban érkező eseményeket csoportosítják. Kiszűrik azokat az időszakokat, amikor nincsenek adatok. A munkamenet ablakfüggvényének három fő paramétere van:
- Időkorlát
- Maximális időtartam
- Particionálási kulcs (nem kötelező).
A munkamenetablak az első esemény bekövetkezésekor kezdődik. Ha egy másik esemény az utolsó betöltési eseménytől számított megadott időkorláton belül következik be, az ablak az új eseményre is kiterjed. Ellenkező esetben, ha az időtúllépésen belül nem történik esemény, az ablak az időtúllépéskor bezárul.
Ha az események a megadott időtúllépésen belül maradnak, a munkamenet-időszak a maximális időtartam eléréséig tart. A maximális időtartam-ellenőrzési időközök mérete megegyezik a megadott maximális időtartammal. Ha például a maximális időtartam 10, akkor annak ellenőrzése, hogy az ablak túllépi-e a maximális időtartamot, t = 0, 10, 20, 30 stb.
Amikor megad egy partíciókulcsot, a függvény a kulcs alapján csoportosítja az eseményeket, és egymástól függetlenül alkalmazza a munkamenetablakot az egyes csoportokra. Ez a particionálás olyan esetekben hasznos, amikor különböző munkamenetablakokra van szükség a különböző felhasználókhoz vagy eszközökhöz.
Íme a minta bemeneti adatok:
| Időbélyeg | CreatedAt (Létrehozás ideje) | Téma |
|---|---|---|
| 1 | 2021-10-26T10:15:01 | Online közvetítés |
| 2 | 2021-10-26T10:15:04 | Online közvetítés |
| 3 | 2021-10-26T10:15:13 | Online közvetítés |
| ... | ... | ... |
Íme a minta lekérdezés:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, SessionWindow(second,5,10)
Kimenet:
| AblakVégénekIdeje | Téma | Számlál |
|---|---|---|
| 2021-10-26T10:15:09 | Online közvetítés | 2 |
| 2021-10-26T10:15:24 | Online közvetítés | 4 |
| 2021-10-26T10:15:31 | Online közvetítés | 2 |
| 2021-10-26T10:15:39 | Online közvetítés | 1 |
Pillanatkép ablak
Pillanatkép azonos időbélyeggel rendelkező események csoportosítása ablakokban. Más ablaktípusoktól eltérően, amelyekhez egy adott ablakfüggvény (például SessionWindow()) szükséges, a záradékhoz System.Timestamp() hozzáadva GROUP BY alkalmazhat pillanatképablakot.
Íme a minta bemeneti adatok:
| Időbélyeg | CreatedAt (Létrehozás ideje) | Téma |
|---|---|---|
| 1 | 2021-10-26T10:15:04 | Online közvetítés |
| 2 | 2021-10-26T10:15:04 | Online közvetítés |
| 3 | 2021-10-26T10:15:04 | Online közvetítés |
| ... | ... | ... |
Íme a minta lekérdezés:
SELECT System.Timestamp() as WindowEndTime, Topic, COUNT(*) AS Count
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, System.Timestamp()
A mintakimenet a következő:
| AblakVégénekIdeje | Téma | Számlál |
|---|---|---|
| 2021-10-26T10:15:04 | Online közvetítés | 4 |
| 2021-10-26T10:15:10 | Online közvetítés | 2 |
| 2021-10-26T10:15:13 | Online közvetítés | 1 |
| 2021-10-26T10:15:22 | Online közvetítés | 2 |
Következő lépések
Lásd a következő cikkeket:
- Az Azure Stream Analytics bemutatása
- Get started using Azure Stream Analytics (Bevezetés az Azure Stream Analytics használatába)
- Scale Azure Stream Analytics jobs (Azure Stream Analytics-feladatok méretezése)
- Azure Stream Analytics Query Language Reference (Referencia az Azure Stream Analytics lekérdezési nyelvhez)
- Az Azure Stream Analytics felügyeleti REST API referenciája