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.
Bevezetés
Ebben a megoldásban megtudhatja, hogyan használhatja az Azure Stream Analyticset valós idejű elemzések lekérésére az adataiból. A fejlesztők egyszerűen kombinálhatják az adatstreameket, például a kattintásstreameket, a naplókat és az eszköz által generált eseményeket előzményrekordokkal vagy referenciaadatokkal az üzleti megállapítások kinyeréséhez. A Microsoft Azure-ban üzemeltetett teljes körűen felügyelt, valós idejű streamszámítási szolgáltatásként az Azure Stream Analytics beépített rugalmasságot, alacsony késést és méretezhetőséget biztosít, hogy percek alatt üzembe tudjon futni.
A megoldás befejezése után a következőket tudja elvégezni:
- Ismerkedjen meg az Azure Stream Analytics portállal.
- Streamelési feladat konfigurálása és üzembe helyezése.
- Valós problémák megfogalmazása és megoldása a Stream Analytics lekérdezési nyelvével.
- Streamelési megoldások fejlesztése az ügyfelek számára a Stream Analytics megbízható használatával.
- A problémák elhárításához használja a figyelési és naplózási felületet.
Előfeltételek
A megoldás elvégzéséhez a következő előfeltételek szükségesek:
Bevezetés a forgatókönyvbe: "Hello, Toll!"
Az útdíjfizetési állomás gyakori jelenség. A világ számos gyorsforgalmi útján, hídján és alagutakon találkozhat velük. Minden útdíjszedő állomás több fizetős standdal rendelkezik. A kézi standokon nem kell fizetnie az útdíjat egy résztvevőnek. Az automatizált standokon az egyes standok tetején található érzékelő egy RFID-kártyát vizsgál, amely a jármű szélvédőjéhez van rögzítve, miközben ön áthalad a fizetős standon. Könnyen ábrázolható a járművek áthaladása ezeken az útdíj-állomásokon eseményfolyamként, amelyen érdekes műveletek végezhetők.
Bejövő adatok
Ez a megoldás két adatfolyammal működik. A fizetőállomások bejáratánál és kijáratánál elhelyezett érzékelők az első streamet állítják elő. A második stream egy statikus keresési adatkészlet, amely járműregisztrációs adatokat is tartalmazó.
Adatstreamek bevitele
A belépési adatstream információkat tartalmaz az autóról, amikor útdíjköteles állomásokra lépnek be. A kilépési adateseményeket a rendszer élőben streameli egy eseményközpontba a mintaalkalmazásban található webalkalmazásból.
| TollID | EntryTime | LicensePlate | State | Make | Model | VehicleType | VehicleWeight | Toll | Tag |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 |2014-09-10 12:01:00.000 |JNB 7001 |NY |Honda |CRV |1 |0 |7 | |
| 1 |2014-09-10 12:02:00.000 |YXZ 1001 |NY |Toyota |Camry |1 |0 |4 |123456789 |
| 3 |2014-09-10 12:02:00.000 |ABC 1004 |CT |Ford |Taurus |1 |0 |5 |456789123 |
| 2 |2014-09-10 12:03:00.000 |XYZ 1003 |CT |Toyota |Corolla |1 |0 |4 | |
| 1 |2014-09-10 12:03:00.000 |BNJ 1007 |NY |Honda |CRV |1 |0 |5 |789123456 |
| 2 |2014-09-10 12:05:00.000 |CDE 1007 |NJ |Toyota |4x4 |1 |0 |6 |321987654 |
Az oszlopok rövid leírása:
Oszlop | Leírás |
---|---|
Útdíjazonosító | Az útdíjfizetési stand azonosítója, amely egyedileg azonosítja az útdíj-standot |
EntryTime | A jármű útdíjbehajtási standra való belépésének dátuma és időpontja (UTC) |
LicensePlate | A jármű rendszáma |
Állapot | Állapot a Egyesült Államok |
Gyártó | Az autó gyártója |
Modell | Az autó modellszáma |
VehicleType | Személygépjárművek esetén 1 vagy haszongépjármű esetén 2 |
WeightType | Jármű tömege tonnában; 0 személygépjárművek esetén |
Toll | Az útdíj értéke USD-ben |
Címke | A fizetést automatizáló autó e-címkéje; üres, ahol a fizetés manuálisan történt |
Kilépés az adatfolyamból
A kilépési adatfolyam információkat tartalmaz az útdíjfizetési állomásról kilépő autókról. A kilépési adateseményeket a rendszer élőben streameli egy eseményközpontba a mintaalkalmazásban található webalkalmazásból.
TollId | ExitTime | LicensePlate |
---|---|---|
0 | 2014-09-10T12:03:00.0000000Z | JNB 7001 |
0 | 2014-09-10T12:03:00.0000000Z | YXZ 1001 |
3 | 2014-09-10T12:04:00.0000000Z | ABC 1004 |
2 | 2014-09-10T12:07:00.0000000Z | XYZ 1003 |
0 | 2014-09-10T12:08:00.0000000Z | BNJ 1007 |
2 | 2014-09-10T12:07:00.0000000Z | CDE 1007 |
Az oszlopok rövid leírása:
Oszlop | Leírás |
---|---|
Útdíjazonosító | Az útdíjfizetési stand azonosítója, amely egyedileg azonosítja az útdíj-standot |
ExitTime | A jármű útdíjfizetési standról való kilépésének dátuma és időpontja (UTC) |
LicensePlate | A jármű rendszáma |
Haszongépjármű-regisztrációs adatok
A megoldás egy haszongépjármű-regisztrációs adatbázis statikus pillanatképét használja. Ezek az adatok JSON-fájlként lesznek mentve a mintában szereplő Azure Blob Storage-ba.
LicensePlate | RegistrationId | Lejárt |
---|---|---|
SVT 6023 | 285429838 | 0 |
XLZ 3463 | 362715656 | 0 |
BAC 1005 | 876133137 | 0 |
RIV 8632 | 992711956 | 0 |
SNY 7188 | 592133890 | 0 |
ELH 9896 | 678427724 | 0 |
Az oszlopok rövid leírása:
Oszlop | Leírás |
---|---|
LicensePlate | A jármű rendszáma |
RegistrationId | A jármű regisztrációs azonosítója |
Lejárt | A jármű forgalmi állapota: 0, ha a járműregisztráció aktív, 1, ha a regisztráció lejárt |
Az Azure Stream Analytics környezetének beállítása
A megoldás elvégzéséhez Microsoft Azure-előfizetésre van szüksége. Ha nem rendelkezik Azure-fiókkal, ingyenes próbaverziót kérhet.
Mindenképpen kövesse a cikk végén található "Az Azure-fiók törlése" című szakasz lépéseit, hogy a lehető legjobban kihasználhassa az Azure-kreditet.
A minta üzembe helyezése
Számos olyan erőforrás van, amely néhány kattintással egyszerűen üzembe helyezhető egy erőforráscsoportban. A megoldásdefiníció a GitHub-adattárban található: https://github.com/Azure/azure-stream-analytics/tree/master/Samples/TollApp.
A TollApp-sablon üzembe helyezése az Azure Portalon
A TollApp-környezet Azure-ban való üzembe helyezéséhez használja ezt a hivatkozást a TollApp Azure-sablon üzembe helyezéséhez.
Ha a rendszer kéri, jelentkezzen be az Azure Portalra.
Válassza ki azt az előfizetést, amelyben a különböző erőforrásokat számlázzák.
Adjon meg például egy új erőforráscsoportot egyedi névvel
MyTollBooth
.Válasszon egy Azure-beli helyet.
Adjon meg egy intervallumot másodpercben. Ezt az értéket használja a minta webalkalmazás, hogy milyen gyakran küldjön adatokat egy eseményközpontba.
Ellenőrizze , hogy elfogadja-e a használati feltételeket.
Válassza a Rögzítés az irányítópulton lehetőséget, hogy később könnyen megtalálhassa az erőforrásokat.
Válassza a Vásárlás lehetőséget a mintasablon üzembe helyezéséhez.
Néhány pillanat múlva megjelenik egy értesítés, amely megerősíti, hogy az üzembe helyezés sikeres volt.
Az Azure Stream Analytics TollApp-erőforrásainak áttekintése
Jelentkezzen be az Azure Portalra.
Keresse meg az előző szakaszban elnevezett erőforráscsoportot.
Ellenőrizze, hogy a következő erőforrások szerepelnek-e az erőforráscsoportban:
- Egy Azure Cosmos DB-fiók
- Egy Azure Stream Analytics-feladat
- Egy Azure Storage-fiók
- Egy Azure-eseményközpont
- Két webalkalmazás
A TollApp-mintafeladat vizsgálata
Az előző szakasz erőforráscsoportjától kezdve válassza ki a Stream Analytics streamelési feladatát a névvel
tollapp
kezdve (a név véletlenszerű karaktereket tartalmaz az egyediséghez).A feladat Áttekintés lapján figyelje meg a Lekérdezés mezőt a lekérdezés szintaxisának megtekintéséhez.
SELECT TollId, System.Timestamp AS WindowEnd, COUNT(*) AS Count INTO CosmosDB FROM EntryStream TIMESTAMP BY EntryTime GROUP BY TUMBLINGWINDOW(minute, 3), TollId
A lekérdezés szándékának parafrázisához tegyük fel, hogy meg kell számolnia a fizetős standra belépő járművek számát. Mivel az autópálya-fizetős standon folyamatosan haladnak be a járművek, ezek a belépési események hasonlóak a soha meg nem álló patakhoz. A stream számszerűsítéséhez meg kell határoznia egy "időtartamot" a méréshez. Pontosítsuk tovább a kérdést, hogy "Hány jármű lép be egy fizetős standra három percenként?" Ezt gyakran nevezik átfedésszámnak.
Mint látható, az Azure Stream Analytics az SQL-hez hasonló lekérdezési nyelvet használ, és hozzáad néhány bővítményt a lekérdezés időhöz kapcsolódó jellemzőinek megadásához. További részletekért olvassa el a lekérdezésben használt időfelügyeleti és ablakkezelési szerkezeteket.
Vizsgálja meg a TollApp mintafeladat bemeneteit. Az aktuális lekérdezésben csak a EntryStream bemenetet használja a rendszer.
- A EntryStream bemenet egy eseményközpont-kapcsolat, amely az autópályán való útdíjfizetés minden egyes be- és beléptetését ábrázoló adatokat várólistára állít. A minta részét képező webalkalmazás létrehozza az eseményeket, és az adatok várólistára kerülnek ebben az eseményközpontban. Vegye figyelembe, hogy ezt a bemenetet a streamelési lekérdezés FROM záradéka kérdezi le.
- Az ExitStream bemenet egy eseményközpont-kapcsolat, amely az autópályán való útdíjfizetés minden egyes kilépési időpontjának adatait jeleníti meg. Ezt a streamelési bemenetet a lekérdezés szintaxisának későbbi változatai használják.
- A regisztrációs bemenet egy Azure Blob Storage-kapcsolat, amely egy statikus registration.json fájlra mutat, amelyet szükség szerint keresésekhez használnak. Ez a referenciaadat-bemenet a lekérdezés szintaxisának későbbi változataiban használatos.
Vizsgálja meg a TollApp mintafeladat kimeneteit.
- Az Azure Cosmos DB kimenete egy Azure Cosmos DB-adatbázistároló, amely fogadja a kimeneti fogadó eseményeit. Vegye figyelembe, hogy ezt a kimenetet a streamelési lekérdezés INTO záradéka használja.
A TollApp streamelési feladatának indítása
A streamelési feladat elindításához kövesse az alábbi lépéseket:
A feladat Áttekintés lapján válassza a Start lehetőséget.
A Feladat indítása panelen válassza a Most lehetőséget.
Néhány pillanat múlva, a feladat futtatása után, a streamelési feladat Áttekintés lapján tekintse meg a figyelési gráfot. A grafikonon több ezer bemeneti eseménynek és több tíz kimeneti eseménynek kell megjelennie.
Az Azure Cosmos DB kimeneti adatainak áttekintése
Keresse meg a TollApp-erőforrásokat tartalmazó erőforráscsoportot.
Válassza ki az Azure Cosmos DB-fiókot a tollapp<random-cosmos> nevű minta használatával.
Válassza ki az Adatkezelő címsorát az Adatkezelő lap megnyitásához.
Bontsa ki a tollAppDatabase>tollAppCollection>dokumentumait.
Az azonosítók listájában több dokumentum is megjelenik, amint a kimenet elérhetővé válik.
Jelölje ki az egyes azonosítók közül a JSON-dokumentum áttekintéséhez. Figyelje meg az egyes
tollid
,windowend time
és az abból azcount of cars
ablakból.További három perc elteltével további négy dokumentum áll rendelkezésre, egy dokumentumonként
tollid
.
Az egyes autónkénti teljes idő jelentése
Az autónak az útdíjon való áthaladáshoz szükséges átlagos idő segít felmérni a folyamat hatékonyságát és az ügyfélélményt.
A teljes idő megkereséséhez csatlakozzon az EntryTime-streamhez az ExitTime-adatfolyammal. Csatlakoztassa a két bemeneti streamet az egyenlő egyező TollId és LicensePlate oszlopokhoz. A JOIN operátor megköveteli, hogy olyan időbeli mozgásteret adjon meg, amely leírja az összekapcsolt események közötti elfogadható időkülönbséget. A DATEDIFF függvénnyel megadhatja, hogy az események legfeljebb 15 perc múlva legyenek egymástól. A DATEDIFF függvényt is alkalmazza a kilépési és belépési időkre, hogy kiszámítsa az autó által az útdíjállomáson töltött tényleges időt. Figyelje meg a DATEDIFF használatának különbségét, ha a SELECT utasításban használják a JOIN feltétel helyett.
SELECT EntryStream.TollId, EntryStream.EntryTime, ExitStream.ExitTime, EntryStream.LicensePlate, DATEDIFF (minute, EntryStream.EntryTime, ExitStream.ExitTime) AS DurationInMinutes
INTO CosmosDB
FROM EntryStream TIMESTAMP BY EntryTime
JOIN ExitStream TIMESTAMP BY ExitTime
ON (EntryStream.TollId= ExitStream.TollId AND EntryStream.LicensePlate = ExitStream.LicensePlate)
AND DATEDIFF (minute, EntryStream, ExitStream ) BETWEEN 0 AND 15
A TollApp streamelési feladat lekérdezési szintaxisának frissítése:
A feladat Áttekintés lapján válassza a Leállítás lehetőséget.
Várjon néhány percet a feladat leállításáról szóló értesítésre.
A FELADAT TOPOLÓGIA fejlécében válassza a Lekérdezés lehetőséget <>
Illessze be a módosított streamelési SQL-lekérdezést.
A lekérdezés mentéséhez válassza a Mentés lehetőséget. A módosítások mentéséhez erősítse meg az Igent .
A feladat Áttekintés lapján válassza a Start lehetőséget.
A Feladat indítása panelen válassza a Most lehetőséget.
A kimenet teljes idejének áttekintése
Ismételje meg az előző szakaszban leírt lépéseket az Azure Cosmos DB streamelési feladatból származó kimeneti adatainak áttekintéséhez. Tekintse át a legújabb JSON-dokumentumokat.
Ez a dokumentum például egy példaautót mutat be egy adott rendszámmal, az entrytime
és exit time
, és a DATEDIFF számított durationinminutes
mezővel, amely két percként jeleníti meg az útdíj-stand időtartamát:
{
"tollid": 4,
"entrytime": "2018-04-05T06:51:39.0491173Z",
"exittime": "2018-04-05T06:53:09.0491173Z",
"licenseplate": "JVR 9425",
"durationinminutes": 2,
"id": "ff52eb25-d580-7566-2879-1f52bba6601e",
"_rid": "+8E4AI1DZgBjAAAAAAAAAA==",
"_self": "dbs/+8E4AA==/colls/+8E4AI1DZgA=/docs/+8E4AI1DZgBjAAAAAAAAAA==/",
"_etag": "\"ad02f6b8-0000-0000-0000-5ac5c8330000\"",
"_attachments": "attachments/",
"_ts": 1522911283
}
Lejárt regisztrációval rendelkező járművek bejelentése
Az Azure Stream Analytics a referenciaadatok statikus pillanatképeivel csatlakozhat az időbeli adatfolyamokhoz. Ennek a képességnek a bemutatásához használja az alábbi mintakérdést. A regisztrációs bemenet egy statikus blob json-fájl, amely felsorolja a licenccímkék lejáratát. A rendszámtáblához való csatlakozással a referenciaadatok összehasonlítva lesznek az útdíjon áthaladó összes járművel.
Ha egy haszongépjármű regisztrálva van az útdíjszolgáltatónál, akkor anélkül haladhat át az útdíjmentes standon, hogy ellenőrzés céljából leállt volna. A regisztrációs keresési táblával azonosíthatja az összes lejárt regisztrációval rendelkező haszongépjárműveket.
SELECT EntryStream.EntryTime, EntryStream.LicensePlate, EntryStream.TollId, Registration.RegistrationId
INTO CosmosDB
FROM EntryStream TIMESTAMP BY EntryTime
JOIN Registration
ON EntryStream.LicensePlate = Registration.LicensePlate
WHERE Registration.Expired = '1'
Ismételje meg az előző szakaszban leírt lépéseket a TollApp streamelési feladat lekérdezési szintaxisának frissítéséhez.
Ismételje meg az előző szakaszban leírt lépéseket az Azure Cosmos DB streamelési feladatból származó kimeneti adatainak áttekintéséhez.
Példa a kimenetre:
{
"entrytime": "2018-04-05T08:01:28.0252168Z",
"licenseplate": "GMT 3221",
"tollid": 1,
"registrationid": "763220582",
"id": "47db0535-9716-4eb2-db58-de7886966cbf",
"_rid": "y+F8AJ9QWACSAQAAAAAAAA==",
"_self": "dbs/y+F8AA==/colls/y+F8AJ9QWAA=/docs/y+F8AJ9QWACSAQAAAAAAAA==/",
"_etag": "\"88007d8d-0000-0000-0000-5ac5d7e20000\"",
"_attachments": "attachments/",
"_ts": 1522915298
}
A feladat vertikális felskálázása
Az Azure Stream Analytics rugalmas skálázásra lett tervezve, hogy nagy mennyiségű adatot kezeljen. Az Azure Stream Analytics-lekérdezés egy PARTITION BY záradékkal jelezheti a rendszernek, hogy ez a lépés horizontálisan felskálázható. A PartitionId egy speciális oszlop, amelyet a rendszer hozzáad, hogy megfeleljen a bemenet (event hub) partícióazonosítójának.
A lekérdezés partíciókra való felskálázásához szerkessze a lekérdezés szintaxisát a következő kódra:
SELECT TollId, System.Timestamp AS WindowEnd, COUNT(*)AS Count
INTO CosmosDB
FROM EntryStream
TIMESTAMP BY EntryTime
PARTITION BY PartitionId
GROUP BY TUMBLINGWINDOW(minute,3), TollId, PartitionId
A streamelési feladat vertikális felskálázása több streamelési egységre:
Állítsa le az aktuális feladatot.
Frissítse a lekérdezés szintaxisát a <> Lekérdezés lapon, és mentse a módosításokat.
A streamelési feladat KONFIGURÁLÁS fejléce alatt válassza a Méretezés lehetőséget.
Csúsztassa a streamelési egységek csúszkát 1-ről 6-ra. A streamelési egységek határozzák meg a feladat által megkapható számítási teljesítményt. Válassza a Mentés lehetőséget.
Indítsa el a streamelési feladatot a további skálázás bemutatásához. Az Azure Stream Analytics több számítási erőforrás között osztja el a munkát, és jobb átviteli sebességet ér el, és particionálást végez az erőforrások között a PARTITION BY záradékban kijelölt oszlop használatával.
A feladat figyelése
A MONITOR terület a futó feladat statisztikáit tartalmazza. Első alkalommal kell konfigurálnia a tárfiókot ugyanabban a régióban (a dokumentum többi részéhez hasonló névhasználati díj).
A tevékenységnaplókat a feladat irányítópultJának Beállítások területén is elérheti.
A TollApp-erőforrások törlése
Állítsa le a Stream Analytics-feladatot az Azure Portalon.
Keresse meg azt az erőforráscsoportot, amely nyolc, a TollApp-sablonhoz kapcsolódó erőforrást tartalmaz.
Válassza az Erőforráscsoport törlése elemet. Írja be az erőforráscsoport nevét a törlés megerősítéséhez.
Összegzés
Ez a megoldás bevezette az Azure Stream Analytics szolgáltatásba. Bemutatta, hogyan konfigurálhatók bemenetek és kimenetek a Stream Analytics-feladathoz. A toll Data forgatókönyv használatával a megoldás ismertette a mozgásban lévő adatok terén felmerülő gyakori problémákat, és azt, hogyan oldhatók meg egyszerű SQL-szerű lekérdezésekkel az Azure Stream Analyticsben. A megoldás leírta az SQL-bővítmények időbeli adatokkal való használatához szükséges szerkezeteit. Bemutatta, hogyan csatlakoztathat adatfolyamokat, hogyan bővítheti az adatfolyamot statikus referenciaadatokkal, és hogyan skálázhat fel egy lekérdezést a nagyobb átviteli sebesség elérése érdekében.
Bár ez a megoldás jó bevezetést nyújt, egyáltalán nem fejeződött be. A Gyakori Stream Analytics-használati minták lekérdezési példáiban az SAQL nyelv használatával további lekérdezési mintákat talál.