25.04.2017 / Ville Niemijärvi

Istahdin taas alas Lassen, Louhian johtavan Data Scientistin kanssa ja rupateltiin vähän mitä työvälineitä edistyneen analytiikan toteutustöissä tarvitaan.

Edellisessä kirjoituksessa käytiin Lassen kanssa läpi mitkä ovat Data Scientistin 3 tärkeintä taitoa. Noista taidoista voi jo vähän päätellä minkälaista työkaluosaamista pitää myös hallita.

Voit katsoa videon tästä tai tämän blogin alta.

Data Scientistin tärkeimmät työvälineet

Louhialla jo reilun 5 vuoden ajan kymmeniä data science -toteutuksia tehnyt Lasse luettelee ison listan tuotteita, joita käyttää päivittäin työssään.

  • ETL-työ, data integraatio ja muokkaus: SQL Server Integration Services
  • Tietokannat: SQL Server Management Studio
  • Mallintaminen, data science: R, Python, RapidMiner, Azure ML
  • Tiedon visualisointi, raportointi: QlikView, Power BI

Jokaisella tuotteella on oma roolinsa ja jotta saadaan parempi ymmärrys missä niitä käytetään, sijoittelimme ne alla olevassa kuvassa tyypilliseen business intelligence/analytiikka -arkkitehtuuriin.

Tyypillinen analytiikka-arkkitehtuuri ja data scientistin työvälineet

Tyypillinen tietovarasto/business intelligence/analytiikka -arkkitehtuuri
Tyypillinen tietovarasto/business intelligence/analytiikka -arkkitehtuuri

Kuvassa yllä näkyy tyypillinen arkkitehtuuri, joka on joko valmiina rakennettuna yrityksessä tai me rakennamme sellaisen osana analytiikka- tai laajempaa tiedolla johtamisen hanketta.

Alimpana on tietolähteet eli organisaation lukuisat operatiiviset järjestelmät, CRM:t, taloushallinto  jne. Sekä yhä useammin myös ulkoiset tietolähteet, joka avoimien rajapintojen kautta tai ostettuna 3. osapuolelta.

Tieto täytyy tämän jälkeen ladata analytiikkaa varten jollekin tallennusalustalle. Latauksen yhteydessä tietoa usein yhdistetään, muokataan, siivotaan. Tätä kutsutaan tietovarastopiireissä ETL-prosessiksi (extract-transform-load) mutta usein puhutaan vain tiedon integraatiosta.

Tässä Lasse hyödyntää lähinnä SQL Server Integration Serviceä (SSIS). Itse olen käyttänyt SSIS:n lisäksi Pentahoa ja IBM Cognos Data Manageria, joka on nykyään korvattu IBM Infosphere DataStagella.

Muita markkinoilta löytyviä tuotteita on mm. Informatica, Oracle Warehouse builder, SAS Data Integration Studio.

Tieto siis tallennetaan jollekin tallennusalustalle ja useimmiten se edelleen on relaatiotietokanta. Lassen tapauksessa useimmiten SQL Server jota hallitaan SQL Server Management Studiolla.

Big data (esim. Hadoop) ja NoSQL -tietokannat ovat yleistyneet ja niitä on asiakkaillamme mutta lopulta tieto on helpointa viedä relaatiokantaan, jotta sitä voidaan hyödyntää tilastollisessa mallintamisessa eli varsinaisessa data science -työssä.

Tällöin käyttöön otetaan mallinnustyövälineet kuten R, Python, RapidMiner tai Azure Machine Learning.

Muita markkinoilta löytyviä tuotteita ovat mm. SAS, Knime, SPSS, Amazon Machine Learning, IBM Watson.

Kun ennustemallit tai muu edistyneen analytiikan mallinnus on tehty, tulokset viedään usein visualisoituna liiketoiminnalle (jolleivät mene osaksi jotain operatiivista prosessia tai applikaatiota).

Tällöin käyttöön otetaan raportointi-, visualisointi- ja business intelligence -tuotteet. Lasse suosii näissä QlikView:tä ja Power BI:tä.

Muita asiakkaillamme yleisiä BI-tuotteita ovat mm. Tableau, Cognos, SAP ja Oracle.

Data Scientistin pitää hallita iso joukko tuotteita

Kuten yltä näkyy, ainakin konsulttifirmoissa Data Scientistin pitää hallita iso joukko eri tuotteita.

Totta kai isoissa projekteissa usein on omat erikoismiehet tietovaraston tai data laken rakentamiseen ja omansa tiedon visualisointiin.

Mutta prosessi menee todella hitaaksi jos data scientisti joutuisi joka kerta kun tarvitsee uutta data settiä tai muokkauksia olemassa olevaan, kutsumaan ETL-osaajaa avuksi.

Työ on niin iteratiivista, että on tehokkainta, että DS-roolissa pystytään ottamaan myös ETL-työ, tietokannat ja datan visualisointi haltuun.

Katso video kokonaisuudessaan alta. Muista laittaa Louhian Youtube-video seurantaan ja kommentoi rohkeasti jos haluat kuulla ja nähdä lisää analytiikka-asiaa meiltä.

 


18.01.2016 / Ville Niemijärvi

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.

Analytiikka-arkkitehtuuri Azure-ympäristössä Louhia

Arkkitehtuurin voi myös kuvata perinteisesti tietovarastotyyliin kuten alla kuvassa:

Analytiikka-arkkitehtuuri Azure-ympäristössä Louhia 2

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

22_Create_azure_account

 

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)

31_Azure_Subscription

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ä

32_Azure__portal

Valitaan New -> Compute -> Windows Server 2012 R2 Datacenter

33_Azure_VM_1

Deployment method: Recource Manager (tai Classic) -> Create

33_Azure_VM_2

Seuraavaksi määritellään virtuaalipalvelimen asetukset

33_Azure_VM_4

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.

33_Azure_VM_3

Ja kun kun kaikki on tarkistettu vähintään kertaalleen, painetaan OK

33_Azure_VM_5

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

32_Azure_SQL_1

Määritellään tietokannalle nimi, kontin tilavuus, hevosvoimat, maksutapa ja lopuksi Create

32_Azure_SQL_2

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)

35_Azure_SQL

 

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

34_Azure_ML

Kun valinta on tehty, ponnahtaa selaimeesi uusi ikkuna, joka näyttää seuraavalta

34_Azure_ML_2

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

34_Azure_ML_3

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.
Microsoft Power BI käyttöönotto 1 Louhia
Valitse haluatko desktop-sovelluksen vai pilviversion. Molemmat ilmaisia.

Microsoft Power BI käyttöönotto Louhia

Microsoft Power BI käyttöönotto 2 Louhia

Microsoft Power BI käyttöönotto 3 Louhia
Power BI valmiina ottamaan yhteyttä Azure SQL -tietokantaan tai muihin tietolähteisiin.

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!