5. diel - Microsoft AZURE - Práca s dátami a príprava prostredia
V minulej lekcii sme sa venovali bezpečnosti a IoT hubu. Sme teda pripojení do Azure a cez IoT húb nám do Azure dátumu veselo prúdi, avšak je poriadne nevidíme a neukladáme ich.
Úvod do Stream analytics
Na spracovanie dát z IOT hubu slúži služba StreamAnalytics.
Je to škálovateľná služba, ktorá dokáže nad dátami z rôznych vstupov vykonávať určitú logiku a následne ich výber odovzdať na výstup ako je napríklad TableStorage, SQL databázy, Power BI atď. Jazyk, ktorý používa, vychádza z jazyka T-SQL, ktorý je upravený pre potreby Stream Analytics ako Stream Analytics Query Language.
Dokumentáciu nájdete na adrese https://msdn.microsoft.com/...n834998.aspx
Syntax bude programátorom dosť povedomá. Najjednoduchšie dotaz môže vyzerať takto:
SELECT * INTO [YourOutputAlias] FROM [YourInputAlias]
Neurobí nič iné, než že vyberie všetky dáta na vstupe a pošle ich, tak ako sú, na výstup. Nič zložité. Takéto správanie je nám trochu k ničomu, a tak budeme musieť kód upraviť. To urobíme hneď, ako si službu Stream Analytics sprevádzkujeme. Rovno si zapneme aj službu Storage pre uloženie dát. Lebo tá bude jedným z výstupov.
Sprevádzkovanie prostredie
Prihláste sa teda do Azure, len pripomeniem adresu https://portal.azure.com/
Prejdite teda do vašej Resource Group, v ktorej už máte IOT HUB, a pridajte službu Stream Analytics Job.
Nejako ju pomenujte, vyberte už existujúcu Resource group a zvoľte create. Pokiaľ ju nebudete môcť nájsť, dajte názov Stream Analytics do vyhľadávania na dashboardu vpravo hore.
Po chvíľke čakania sa job vytvorí.
Pridáme si rovno úložisko, kam budeme ukladať dáta. Pridajte si teda Storage Account - ospravedlňujem sa tým, ktorí to budú hľadať v slovenskej verzii, hľadajte niečo ako Účet úložisko a pozor, musíte použiť dlhé ú alebo si v nastavení (zubaté koliesko vpravo hore) zmeňte jazyk na angličtinu. Nezabudnite na rovnakú Resource group a vyberte lokálne redundanciu dát v sekcii replication dáta. Naše dáta tak budú 3x uložená len v jednom dáta centre, čo nám v tejto chvíli ušetrí kredit, pretože ide o testovacie prostredie. Nechcem zabředávat do možnosťou redundancie dát. Možno niekedy inokedy v inom kurze.
Ostatné voľby nechajte tak, ako ich mám ja.
Kliknite na Create a po chvíľke by váš Dashboard mal vyzerať podobne ako ten môj. Ak nie, pripnite si na plochu všetok obsah svojej Resource group. Urobíte to tak, že do vyhľadávacieho tlačidla hore napíšete meno vašej Resource group a pridáte si ju na Dashboard, viď obrázok.
Konfigurácia služieb
Teraz máme pripravené prostredie v Azure a pustíme sa do konfigurácie jednotlivých služieb.
Stream Analytics - Inputs (vstupy)
Pre prácu s dátami nám bude primárne slúžiť služba Stream Analytics. Dvojklikom vo vašich Resources na Stream Analytics job sa vám zobrazí nastavenia služby.
Nás budú hlavne zaujímať okná s názvami Inputs, Outputs a QUERY.
INPUTS, čiže vstupy, slúži na definíciu rozhrania, kde budeme načítavať dáta. V našom prípade to bude len IOT Hub z našej Resource Group. Outputs, čiže výstupy, slúži k definícii výstupov, ktoré u nás budú reprezentované službou Storage, presnejšie TableStorage, a službou Power BI. Pre rýchle zorientovanie by vám tieto informácie mali stačiť. Ostatné bude podľa môjho názoru jasné, hneď ako začneme službu konfigurovať.
Ako prvý si pridáme napojenie na IoT Hub na vstupe. Kliknite teda na nápis input, a potom na voľbu + Add, pridáte si tým prepojenie do vášho IoT hubu. V dialógovom okne je veľa volieb, ktoré je potrebné doplniť, podľa môjho názoru nepotrebujú hlbší komentár. Len snáď pole Source, kde vyberte IoT húb, ďalej potom voľba v poli Subscription = "Use IoT húb from current subscription" vám zjednoduší pridávanie správneho IoT Hubu. Kľúče a ostatné voľby sa doplní samé automaticky. Ešte jedno pole by vás mohlo alebo malo zaujímať a to je Event serialization format = "JSON" - čo je práve mnou už spomínaný formát AMQP. Moje nastavenie je na obrázku is drobným popisom jednotlivých volieb.
Voľby budú vyzerať asi nasledovne:
Input alias | Zadajte nejaké meno vášho vstupu |
---|---|
source type | data stream |
source | IoT húb |
Subscription | Use IoT húb from current subscription (Ostatné voľby sa vám doplní samy.) |
IoT húb | HubIotDht22Spark |
Endpoint | Messaging |
Shared access policy name | iothubowner |
Shared access policy key | (Nepôjde meniť, kľúč si Azure vezme sám) |
consumer group | $ Default * |
Event serialization format | JSON |
Encoding | UTF-8 |
Stream Analytics - Outputs (Výstupy)
Ďalej potom prejdite do definície Output. Ako prvý definujeme výstup do table Storage. To bude naša úložisko, kam budeme ukladať naše prijaté dáta. Nič by vám nemalo robiť problémy, a tak len pre úplnosť, aj tu prikladám obrázok. Všimnite si pole Sink. Po jeho rozkliknutí môžete vidieť, kam všade dokáže Stream Analytics dáta odovzdať. U nás to teraz bude Table storage. Určite si opäť vyberte vo voľbe Subscrition voľbu = "Use table storage from current subscription", zjednodušíte si život pri vyberaní voľby Storage account. Zadajte meno tabuľky, do ktorej budeme dáta ukladať. Veľmi dôležitou voľbou sú polia Partition key a Row key. Popíšte je rovnako ako ja. Nie je to úplne potrebné, ale týmto voľbám sa budem venovať neskôr pri popise Table Storage, a preto by bolo dobré sa moc nerozchádzať.
Output alias | Zadajte meno vášho výstupu, napr: TableData |
---|---|
Sink | Table storage |
Subscription | Use table storage from current subscription |
storage account | Vyberte meno vášho storage account |
Storage account key | (Bude automaticky vybraný) |
Table name | Meno vašej tabuľky pre ukladanie dát |
partition key | Deviceid |
Row key | EventTime |
Nabudúce si ukážeme prácu s QUERY a povieme si niečo o Stream Analytics Query Language