IoT Koe: Sensoridataputken rakentaminen käyttäen Azure-palveluita sekä Snowflake-pilvitietovarastoa

Datan keräämisestä ja hyödyntämisestä on tullut arkipäivää niin yritysmaailmassa kuin
arkielämässä. Datan tallentaminen pilvipalveluihin kuten Microsoftin Azureen tai
Amazonin AWS:ään on tullut hyvin yksinkertaiseksi ja halvaksi. Lisäksi esimerkiksi Microsoft tarjoaa
Office365:n yhteydessä datan raportointityökaluja kuten PowerBI ja Excel. Jo pelkästään näillä työkaluilla yksittäinen henkilö pystyy rakentamaan itselleen suhteellisen tehokkaan tavan hallinnoida, muokata ja analysoida omaa dataansa eikä tämä edes maksa juuri mitään. Pilveen tallentamisen suurimpia hyötyjä on se, että enää ei tarvitse varsinaisesti huolehtia tallennustilan loppumisesta. Tämän ansiosta yksittäinenkin henkilö pystyy keräämään suuria määriä dataa ja hyödyntämään myös omaa historiallista dataansa. Lisäksi data on saatavilla melkein missä tahansa, kunhan henkilöllä on yhteys internettiin. Näistä lähtökohdista lähdin rakentamaan IoT (Internet of Things) -demoa.

Demon ideana oli rakentaa dataputki PowerBI:n, Snowflake:n, Azure-palveluiden sekä Raspberry Pi:ssä olevien sensorien välille (sensorit mittasivat toimistomme lämpötilaa, kosteutta sekä valoisuutta). Tällä kokonaisuudella tavoitteena oli luoda dataputki, jonka avulla pystyy varastoimaan datan, tekemään datasta vaadittavat taulukot/datamallin sekä lopuksi raportoimaan tulokset joko perinteisin metodein tai näyttämään dataa reaaliajassa. Tällainen kokonaisuus voi jollekin tuntua suhteellisen suurelta, mutta kuten aikaisemmin mainitsin lähestulkoon kuka tahansa voi luoda tällaisen systeemin, jos vain kiinnostusta löytyy.

Projektin tekeminen kannattaa aloittaa tutustumalla Raspberry Pi:hin ja sensoreihin (tai mikä ikinä onkin laite millä dataa kerätään). Raspberry Pi:n hyvä puoli on se, että siitä löytyy hyvin paljon tietoa ja ohjeita internetistä.  Raspberry Pi:n konfiguroinnissa auttaa, jos henkilöllä on kokemusta skirptauksesta, mutta tämä ei ole välttämätöntä, sillä valmiita ohjeita skriptien tekemiseen löytyy pilvin pimein.

Seuraavaksi kannattaa tutustua Azureen sekä niihin palveluihin, joita on tarkoituksena demossa käyttää. Kaikki palvelut saa tässä demossa käyttöön hiirellä painamalla, joten tämä välivaihe ei vaadi minkäänlaista koodaustaustaa. Azuren kaikista toiminnoista löytyy hyvin kattavat dokumentaatiot sekä demot ja näitä seuraamalla saa hyvinkin valmista jälkeä. Suurimman osan ajastasi käytät luomalla yhteyksiä eri laitteittesi välille, jotta saat datan virtaamaan halutulla tavalla. Koska jokaisen laitteen konfiguraatio on omanlaisensa, logiikkaa ja päättelykykyä pääsee hyödyntämään pienimuotoisesti. Lisäksi kaikista palveluista löytyy laskurit, joilla voit katsoa paljonko sinun laitteesi maksaisi.

Tärkeimmät demossa käytetyt Azure-palvelut:

  • IoT hub
  • Storage account / Blob storage
  • Logic app
  • Stream analytics

Iot Demo flowchat

Kun Azure ja Raspberry Pi ovat kunnossa, voi datan siirron aloittaa säilöntää varten. Tarkoituksena on kumminkin, että dataa voi myös mallintaa ja analysoida. Tätä varten datasta pitää pystyä kyselemään haluttu informaatio esimerkiksi taulukoiksi tai näkymiksi. Tässä projektin vaiheessa hyödynnettiin Snowflake:a, joka on moderni pilvitietovarasto. Snowflake:ia käyttämällä pystyt siis kyselemään raakadataasi (JSON, AVRO yms.) ja luomaan siitä taulukoita ja näkymiä, jotka tallentuvat tietokantaasi. Tämä vaihe vaatii hieman ymmärrystä tietomuodoista ja kyselyistä (SQL), mutta lukemalla Snowflake:n dokumentaatioita ja kohtuullisella opiskelulla tämänkään ei pitäisi olla liian haastavaa. Henkilökohtaisesti pääsin päivässä hyvin kiinni peruslogiikkaan. Snowflake:n integrointi Azuren datavarastoon onnistuu myös hyvin helposti. Tätä varten tarvitaan vain yksi yhteysavain, minkä jälkeen pystyt avaamaan yhteyden näiden kahden välillä. Lisäksi Snowflake:in käyttöliittymä on erittäin selkeä ja hyvin koostettu, mikä auttaa ohjelmiston opettelemisessa.

Saatuasi datan Azureen sekä Snowflake:iin olet valmis tekemään raportteja tai suoratoistamaan dataasi reaaliajassa. Historiallisen datan tuominen Snowflake:ista PowerBI:hin tai Exceliin on erittäin helppoa ja pääset analysoimaan dataasi heti kun olet saanut muodostettua haluamasi taulukot tai näkymät Snowflake:issa. Azure stream analytic:sin käyttäminen on myös hyvin vaivatonta. Stream analytics laitetaan vain prosessoimaan dataasi, minkä jälkeen dataa on mahdollista mallintaa esimerkiksi graafina Power BI:n internetsovelluksessa. 

IoT koe oli mielestäni erittäin opettavainen ja mielenkiintoinen tapa lähestyä kyseistä aihepiiriä.
Tämän tyyppisen demon kautta oppii hyvin paljon perusteita, joita vaaditaan ”big datan” käsittelyssä sekä yleisesti ottaen sen, mitä kaikkea ylipäätänsä nykyään on mahdollista tehdä. Lisäksi opin hyvin paljon esimerkiksi Azuren logiikasta ja kuinka siellä toimitaan. Toisin sanoen tällaisen demon tekeminen on erittäin hyvä tapa päästä kiinni ja oppia ymmärtämään eri palveluntarjoajien alustoja. Lisäksi saatuasi ensimmäisen demosi kasaan on sitä erittäin helppoa alkaa kehittää esimerkiksi lisäämällä automaatioita, tekemällä erilaisia hälytyksiä tai parantamalla kyselyitäsi.

Iot demo