Käytännön analytiikan blogisarjamme jatkuu. Viime kerralla määrittelimme liiketoimintaongelman, joka pitää ratkoa ja sovimme toimenpiteistä joilla tähän päästään.
Ennen kuin päästään itse datan pariin, pitää meidän pystyttää tekninen ympäristö. Käydään se nyt läpi. Otetaan ensiksi katsaus ylätason arkkitehtuuriin, tuotteisiin ja komponentteihin. Sen jälkeen alempana näytetään miten kaikki tehdään käytännössä.
Edistyneen analytiikan arkkitehtuuri
Mitä tuotteita, tietokantoja ja sovelluksia tarvitaan kun rakennetaan täysiverinen, tuotantokelpoinen analytiikkaympäristö? Otetaan selvää.
Katsotaan ensiksi ihan ylätasolla, mitä meillä pitää olla ja mitä pitää tehdä?
- lähdedata: meillä pitää olla jotain mitä työstää ja analysoida
- tietojen poiminta, muokkaus ja integrointi. Eli meillä pitää olla jokin ns. etl-työväline (extract-transform-load, tuttu tietovarastomaailmasta). Yleensä valtaosa analytiikkaprojektin työajasta (n. 70%) menee datan muokkaamiseen ja käsittelyyn.
- tietokanta, johon lähdetieto tallennetaan, jossa sitä myös muokataan etl-välineellä ja jonne myös valmiit tuotokset tallennetaan
- analytiikkatyöväline: eli se missä varsinainen tiedon mallinnus, data science ja algoritmit sijaitsee
- visualisointi, julkaisu: analytiikkatyöväline on harvoin se missä tulokset näytetään loppukäyttäjille. Usein, miltei aina tulokset viedään johonkin raportointi- tai visualisointiohjelmistoon.
Eli tiedon arvon jalostusta ja niihin liittyviä komponentteja voisi kuvata kuten alla.
Arkkitehtuurin voi myös kuvata perinteisesti tietovarastotyyliin kuten alla kuvassa:
Ja muistetaan, että kaikki tuotteet, palvelimet ja komponentit pitää löytyä pilvestä. Lähdetietoja lukuunottamatta. Mitään ei asenneta omalle koneelle tai omaan palvelinsaliin.
Heitän seuraavaksi pallon Lasselle, joka toipui influessasta yhdessä päivässä, kuulemma pelkästään proteiinipatukoiden voimalla.
Teknisen ympäristön pystyttäminen
Seuraavassa käydään läpi miten edellä luetellut kaikki tarvittavat tuotteet, tietokannat ja palvelimet otetaan käyttöön Microsoft Azure -ympäristössä.
1. Luo Azure tili
Azure tilin osalta voidaan puhua ihan tavallisesta Microsoftin käyttäjätilistä. Microsoftin käyttäjätilillä (yritys/yksityinen) pääsee kirjautumaan kaikkiin Microsoftin palveluihin. Microsoftin käyttätilin voi luoda osoitteessa signup.live.com
Kun Microsoftin käyttäjätili on luotu, pääset kirjautumaan osoitteessa https://account.windowsazure.com/, jossa seuraavaksi luodaan Azure-tilaus (Subscription). Tässä yhteydessä valitaan haluttu maksutapa ja kerrotaan kenen pussista rahat otetaan. Meidän blogisarjaa varten rahat viedään minun eli Lassen tililtä Pay-As-You-Go-tyyppisesti, eli maksetaan kiltisti viulut mitä palveluiden käytöstä aiheutuu, eikä tippaakaan ylimääräistä (kiitos Lasse uhrauksesta. T. Johto)
Kun edellä olevat kohdat kyselyineen ovat täytetty, voidaan siirtyä seuraavaan kohtaan.
2. Azure virtuaalipalvelin ja sinne ETL-työväline (SSIS)
Kirjautumalla osoitteeseen https://portal.azure.com/ edellisessä kohdassa luomalla käyttäjätililläsi, pääset käsiksi Azuren palveluihin, yhdestä paikasta. Tarkkasilmäisimmät huomaavat, että alla olevassa kuvassa näyttäisi olevan jo ostettuina palveluita, mm. Azure SQL-tietokanta, Azure Virtuaalipalvelin, jne… Eli ei pitkälle päästy, kun jäätiin housut kintuissa kiinni,
a. Emme luoneet blogisarjaa varten uutta Microsoft-käyttäjätiliä vaan käytimme jo olemassa olevaa,
b. Unohdin ottaa screenshotin portaalin aloitusnäkymästä ennen kuin suoritin kohdat 3.-4.
Aloitusnäkymä poikkeaa täten aivan blankosta näkymästä
Valitaan New -> Compute -> Windows Server 2012 R2 Datacenter
Deployment method: Recource Manager (tai Classic) -> Create
Seuraavaksi määritellään virtuaalipalvelimen asetukset
Huomioitavaa on se, että tässä vaiheessa luodaan uusi Resource Group, jonka alle eri palveluita voidaan ottaa käyttöön (seuraaminen/hallinnointi helpompaa). Seuraavaksi määritellä raudan speksit, demoa varten meille riittää A1 Basic-tason virtuaalikone. Saamme valinnalla tuulahduksen nostalgisista 386:n ajoista. Tämän tason virtuaalimasiinasta on kokemuksia ja tiedän ettei hyvä heilu suorituskykymielessä, mutta mennään tällä jotta luottorajat ei pauku ja saan tuotua leivän perheelle ensi kuussakin.
Ja kun kun kaikki on tarkistettu vähintään kertaalleen, painetaan OK
Kun OK-nappia on painettu palaa Azure-portaali aloitusnäkymään, johon on ilmestynyt sininen suorakulmio, jossa viuhahtelee valkoisia viivoja, tämä tarkoittaa sitä, että palvelinta ollaan pystyttämässä. Pystytystä odotellessa voidaan siirtyä seuraavaan kohtaan ja palata ETL-työvälineen asentamiseen kun virtuaalipalvelin on luotu.
ETL-työväline, ts. Microsoftin Data Toolsin (tarkemmin demosarjan tapauksessa: (Microsoft SQL Server Data Tools – Business Intelligence for Visual Studio 2012) saa ladattua Microsoftin sivuilta (https://www.microsoft.com/en-us/download/confirmation.aspx?id=36843).
Nyt kun virtuaalipalvelin on luotu, voimme kirjautua sinne esimerkiksi suoraan Remote Desktop Connectionilla (palvelimen tiedot löytyvät Azure-portaalista). Kiikutetaan Data Toolsin sisältävä tiedosto (SSDTBI_VS2012_x86_ENU.exe) virtuaalipalvelimelle, keinoja on tietysti monia, esimerkiksi “copy & paste”. Exe-tiedosto purkautuu automaattisesti haluttuun kansioon, jonka jälkeen käydään klikkaamassa SETUP-applikaatio käyntiin ja edetään lyehkön wizardin mukaisesti. Ei siis tämä ETL-työvälineenkään asentaminen ole vaikeaa (huomattavasti vaikeampaa voi olla löytää palvelinspekseihin sopiva Data Toolsin sisältävä tiedosto).
[Villen lisäys tähän väliin]. Huom: koko virtuaalipalvelin hässäkkä on tarpeen vain SSIS:ää eli etl-työvälinettä varten. Toki sitä voi käyttää myös tiedostojen tallennuspaikkana.
Useimmiten (=aina) analytiikkahankkeissa meidän pitää yhdistää eri tietolähteitä ja/tai muokata dataa, laskea uusia muuttujia jne.
Ja harvoin analytiikkatyövälineen oma tiedonkäsittely ja integraatio-ominaisuudet riittävät tähän. Tai se vaatisi kovaa koodaamista. Itse pitäisin analytiikkasoftan analytiikkakäytössä ja hankkisin aina parhaan työvälineen sille tarkoitettuun tehtävään. ETL-työväline ja sille dedikoitu palvelin tulee käyttöön viimeistään siinä vaiheessa jos rakennetaan tietovarastoa tai erillistä raportointitietokantaa.
Vaihtoehto SSIS:lle olisi Microsoftin Data Factory, mutta se ei ole vielä valmis tuote oikeaan datan käsittelyyn, enemmänkin tietojen lataukseen paikasta a paikkaan b. Tulevaisuudessa Data Factoryn pitäisi kuitenkin olla Microsoftin ykkösvaihtoehto pilvipohjaiseen ETL-työhön.
3. Azure SQL tietokanta
SQL tietokannan luonti on helppoa Azure Portaalin kautta, seuraava kuvasarja näyttää kuinka helppoa se on.
Valitaan New -> Data + Storage -> SQL Database
Määritellään tietokannalle nimi, kontin tilavuus, hevosvoimat, maksutapa ja lopuksi Create
Demon aineiston luonteen ja Louhian maksaman tilinauhan perusteella jätimme hevosvoimat minimiin valitsemalla B Basic-tyypin tietokannan. On siis hyvä alustavasti tuntea tarpeet ennenkuin tietokannan luo, skaalaus/hevosvoimien vaihtaminen onnistuu myös jälkikäteen (ei paneuduta tässä kuitenkaan siihen).
Azure-portaalin aloitusnäkymään ilmestyy jälleen sininen suorakulmio, nyt tiedätte jo mitä se tarkoittaa… hetken odottelun päästä tietokanta on käyttövalmiina. Valmistumista odotellessa voidaan siirtyä jälleen seuraavaan kohtaan.
Noniin, nyt se on pystytetty, tässä todiste siitä (tietokantaan pääsee käsiksi vaikkapa omalta läppäriltä SQL Management Studio:lla, edellyttää, että määrittelet ip:si sallituksi Azure-portaalista: Firewall settings)
4. Azure Machine Learning Studio
Sanotaanko, että hommat senkun helpottuu tässä vaiheessa, tämä on jo niin helppoa, oikein hirvittää. Siispä asiaan, tässä on käytännössä vain 2 välivaihdetta
Valitaan Azure-portaalista New -> Data + Analytics -> Machine Learning
Kun valinta on tehty, ponnahtaa selaimeesi uusi ikkuna, joka näyttää seuraavalta
Tämä on vanha näkymä ja uusi näyttäisi olevan myös tarjolla (sininen laatikko ylälaidassa), mutta kun sitä painaa päästään takaisin samalle sivulle (loogista?).
Azure ML:n käyttöä varten tarvitsee (ainakin ensimmäisellä kerralla) luoda ns. Azure ML Workspace (työtila) ja Storage account. Nämä 2 asiaa saadaan luotua yhdellä kertaa seuraavasti
Valitse New -> Data Services -> MACHINE LEARNING -> Täytä tiedot ja luo
Azure ML:n käyttöliittymän kuvia tulee blogisarjan edetessä.
Enää puuttuu siis Power BI, Ville ota koppi ja nopeasti, menee mun laskuun, hopihopi!
5. Microsoft Power BI
Ville tässä taas. Olen ottanut aiemmin käyttöön MS Power BI desktopin. Asennus + ensimmäiset raportit kesti pari minuuttia. Katsotaan mitä kestää pilvipalvelun käyttöönotto.
Huomioikaa, että nyt ei olla enää Azure-ympäristössä. Tämä on enemmänkin sitä Office 365 maailmaa. Mutta mennään asiaan.
- Mene osoitteeseen: https://powerbi.microsoft.com/en-us ja klikkaa Get started free
- Valitse joko Power BI Desktop for Windows tai Power BI (pilviversio). Me otamme jälkimmäisen
- Kirjaudutaan Microsoftin käyttäjätilillä (ks. kohta 1.), painetaan kerran tai pari OK
- Ja valmis. Kesto: 42 sek.


Otimme nyt käyttöön Power BI:n ilmaisversion. Siinä on rajoituksensa verrattuna Pro-versioon. Löydät erot täältä: https://powerbi.microsoft.com/en-us/pricing/
Pro-version hinta on siis 9,99$/kk/käyttäjä eli esim. 10 hengen organisaatiossa vuosikustannus olisi 1200$.
No niin, nyt meillä on koko paketti kasassa. Asensimme siis:
- Azure virtuaalipalvelimen
- ETL-työvälineen ko. virtuaalipalvelimelle
- Azure SQL -tietokannan
- Azure ML analytiikkaa varten
- MS Power BI:n raportointia ja analytiikkatulosten visualisointia varten
Nyt meillä on pystyssä täysiverinen, skaalautuva, täysin pilvipohjainen arkkitehtuuri, jolla voisi lähteä toteuttamaan myös tietovarasto- ja raportointiympäristöä.
Toisaalta jos sinulla on jo oma ETL-työväline (esim. SSIS, Informatica, IBM DataStage, Pentaho…) tai datasetti on valmiina ja odottaa pelkkää numeronmurskausta, voit skipata kohdat 1-3 eli hankkia pelkän Azure Machine Learning Studion.
Teknisen arkkitehtuurin ja sovellusten asennukseen käytetty aika
[Lasse]: Kohtien 1.-4. suorittaminen kesti pyöreästi 4h, sisältäen ruoka- ja kahvitauot. Suurin osa ajasta meni tiedoston SSDTBI_VS2012_x86_ENU.exe siirtämiseen ja asentamiseen palvelimelle, onneks säästy kuitenkin massii.
[Ville]: Kohdan 5 suorittaminen kesti 42 sekuntia. Sisältäen vessa- ja kahvitauot.
Seuraavassa osassa siirrymme lähdetietojen pariin. Pysy kuulolla!