Power BI on mainio työkalu tietojen lataamiseksi tietomalliin ja siitä edelleen tiedon visualisointiin ja jakamiseen. Tietojoukkoa päivitetään tarvittavaan tahtiin esimerkiksi tunnin tai päivän välein. Power BI mahdollistaa myös jatkuvan datavirran (Real-time streaming) visualisoinnin. Tällöin dataa päivitetään esimerkiksi sekunnin välein.

Jatkuvan datavirran visualisoinnille on lukemattomia käyttökohteita.

  • IoT-data (anturidata)
  • Some-data (twitter-postaukset tietystä aiheesta)
  • liikennevirrat (autoa per minuutti)
  • puhelinverkon  (käynnissä olevat puhelut)
  • sähköverkon data (tämän hetken kokonaiskulutus Suomessa)

Power BI lukee datavirtaa suoraan Azure Stream Analytics sekä PubNub -palveluista. Mikäli et käytä edellä mainittuja voit luoda Power BI:hin tähän tarkoitetun tietojoukon (Streaming DataSet) johon voit syöttää tietoa Power BI REST API:n avulla.

Helpointa tätä on kuitenkin kokeilla Microsoft Flow:n avulla. Tehdään esimerkkivisualisointi Tampereen lämpötilasta:

  • Haetaan minuutin välein Microsoftin Sää-palvelusta Tampereen lämpötila ja tallennetaan se Power BI:hin luotuun Streaming DataSet:iin
  • Tehdään Power BI:hin visualisointi jossa esitetään Tampereen tämän hetkinen lämpötila ja lisäksi käyränä lämpötilan kehitys viimeisen 30min aikana.

Esimerkki  – Tampereen lämpötila nyt ja hetki sitten

Power BI Desktop ei tue jatkuvien datavirtojen käsittelyä, joten esimerkki tehdään Power BI -palvelussa.

Datavirtojen pyörittäminen alkaa koontinäytöstä. Luodaan esimerkkiä varten uusi koontinäyttö.

datastream-add-naytto

Luodun koontinäytön oikeasta yläreunasta siihen voi lisätä ”ruutuja”. Lisätään ruutu ja valitaan alhaalta vaihtehto ”mukauteut virtautettavat tiedot”.

datastream-add-stream

Meillä ei ole vielä olemassa yhtään virtautettavaa tietojoukkoa (Streaming DataSet), joten lisätään sellainen.

datastream-add-stream-step-2

Tietojen lähteeksi valitaan ohjelmointirajapinta.

datastream-add-stream-step-3

Tietojoukon arvoksi voidaan määritellä lukuja, aikaleimoja ja tekstiä. Tehdään yksinkertainen tietojoukko joka koostuu Tampereen lämpötilasta sekä aikaleimasta joka ilmaisee milloin lämpötilan arvo on talletettu.

Näyttökuva 2017-02-03 kello 19.39.54.png

Historiatietoanalyysi tarkoittaa sitä että tietojoukkoon syötettyjä arvoja pidetään Power BI:ssä tallessa (en tiedä miten pitkään).  Tämä mahdollistaa Power BI:n raporttivisualisointien tekemisen. Oletusarvoisesti jatkuvat datavirrat esitetään erilaisina ruutuina koontinäytössä ja tämä on huomattavasti pelkistetympää kuin Power BI:n raporttipuoli.

Lämpötilan tallennus Flown avulla

Seuraavaksi luodaan Flow:lla työnkulku joka hakee 1 min välein Tampereen lämpötilan ja tallentaa sen ylläluotuun tietojoukkoon. Tämä käy helposti.

datastream-flow-step-1

nayttokuva-2017-02-03-kello-19-35-46

Käytän työnkulussa Laadi-toimintoa saadakseni käyttööni suoritushetken aikaleiman, jonka tallennan tietojoukkoon lämpötilan kanssa.

Flow:ta käyttäessä tulee pitää mielessä ilmaisen käytön kuukausirajat (750 suoritusta kuukaudessa). Esimerkkimme tapaiseen reaaliaikaiseen tietojen syöttöön Flow ei ole oikea vaihtoehto.

Datavirran visualisointi

Flown nakuttaessa lämpötila-arvoja tietojoukkoon, voimme keskittyä visualisoinnin tekoon. Aloitetaan lisäämällä ruutu yhteenvetonäyttöömme. Valitaan tietojoukoksi alussa luomamme weather2.

Valitaan visualisoinnin tyypiksi viivakaavio, poimitaan akseliksi aikaleima ja arvoksi temperature_Tampere. Seuraavassa näytössä ruudulle voidaan määritellä vielä mm otsikko.

Luodaan samaan tapaan vielä toinen ruutu tyypiltään kortti. Kortilla esitetään aina jonkun tietojoukon arvon viimeinen arvo. Esimerkissämme siis Tampereen tämän hetken lämpötila.

Lopputulos näyttää tältä.

datastreamtamperetemperature-2

Tampereella on nyt yksi aste pakkasta. Sää viileni asteen verran vähän ennen kello yhtä. Vasemman puoleinen käppyrä päivittyy aina kun Flow tuuppaa tietojoukkoomme uuden arvon.

Tämä kirjoitus on osa laajempaa sarjaa jossa käyn läpi Office 365:n työkaluja. Mistä niissä on kyse ja miten niitä voisi hyödyntää. 

Edit 7.2.2017 – Käytännössä sama esimerkki onkin julkaistu myös Flow:n Blogissa. Ihan ymmärrettävää kun Flow:lla tätä on näin helppo kokeilla ja sää-palvelun käytöstä saa luontevan käytännön esimerkin. Olisi pitänyt julkaista tämä samantien kun kirjoitin, niin olisin ehtinyt ensin.