13.10.2019

Mallipohjainen tietovarastointi

Hei,

Meillä Johannes on kirjoittanut viime aikoina kunniakkaasti suosittua blogiamme. Itse olen ollut todella kiireinen asiakastyössä.

Minulla on ollut tosiaan todella mielenkiintoisia toimeksiantoja viime aikoina.

Olen mukana monissa suuryritysten data-alustahankkeessa, eri tyyppisissä rooleissa.

Kun rakennamme tai auditoimme tietoalustoija, ei ole olemassa yhtä oikeaa tapaa, vaan monesti ratkaisuja pähkäillään isommassa porukassa.

Välillä olen yhteydessä maailman johtaviin alan asiantuntijoihin ympäri maailmaa. Näin saan varmistettuja joidenkin ratkaisujen toimivuuden.

Olen kuitenkin huomannut, että on olemassa jotain menestyksen avaimia, eli tapoja jotka yhdistävät onnistuneita hankkeita.

Yksi näistä on mallipohjainen menetelmä. Se on ihan ehdoton ja suositeltava yleensäkin ja etenkin jos ollaan käyttämässä Data Vault -menetelmää tietovaraston toteutuksessa.

Kerron siitä hieman lisää.

Ymmärrys ja saatavuus

Organisaation datavarannot on arvostettu tärkeäksi resurssiksi. Kellään ei ole juuri niitä tietoja kuin sinun organisaatiollasi on.

Lähtökohtaisesti tiedot ovat organisaatiosi monien eri tietojärjestelmien takana olevissa tietokannoissa.

Niistä ei yleensä ole kunnollisia tietomalleja. Sovellusten tietokantoihin ei myöskään yleensä pääse suoraan käsiksi.

Nämä kaksi ongelmaa tiivistettynä:  ensinnäkään tietoja ei ole kuvattu, määritelty  ja dokumentoitu ja toiseksi tiedot eivät ole helposti ja yhdistettynä saatavilla kun niitä tarvitaan.

Tässä blogissa kerron menetelmistä ja arkkitehtuurista, joilla ratkotaan molempia ongelmia.

Katsotaan nämä ensin erikseen ja sitten yhdessä.

Käsitteiden selvitys

Organisaatiossa kuluu uskomattoman paljon aikaa huonon kommunikoinnin ja epäselvien määritysten aiheuttamiin väärinkäsityksiin ja niistä seuraaviin epäonnistuneisiin projekteihin.

Ottakaamme vertailukohdaksi tilanne, jossa kaksi ihmistä yrittää keskustella, mutta ei ole yhteistä kieltä. Väärinkäsitysten määrä on suuri.

No, normaalitilanteessa meillä on tietysti yhteinen kieli. Mutta silti tarkoitamme sanoilla eri asioita. Ajatelkaapa, jos VR:lla joku sanoo: montako junaa on?

Tarkoittaako hän vetureita, veturin ja vaunujen yhdistelmää vai mahdollisesti junavuoroa (kuten Hki—Tre 8:03)? Tai montako työntekijää on? Onko mukana määräaikaiset, kesäapulaiset? Käsitteet pitää määritellä selkeästi.

Käsitteiden määrittely laajemmin pitää sisällään käsitteiden väliset riippuvuudet.

Haluan nähdä mitä kaikkia palveluja asiakas meidän finanssitalossa voi käyttää.

Käy ilmi, että asiakkaaseen voi liittyä tilejä, lainoja, palvelusopimuksia, vakuutuksia, arvopaperisalkkuja jne.

Nämä ovat asiakas-käsitteen ja muiden käsitteen välisiä riippuvuuksia, jotka osaltaan määrittävät asiakasta.

Samalla tiedän, että – jos tiedot ovat saatavilla – voin analysoida ja raportoida kaikkea tuota dataa, jonka nyt tiedän asiakkaaseen liittyvän.

Paras menetelmä tietojen kuvaamiseen ja määrittelyyn on mallinnus. Mallinnetaan käsitteet ja niiden väliset riippuvuudet.

Määritellään käsitteet. Kuvataan tarkemmalla tasolla myös attribuutit, kuten asiakkaan nimi, puhelinnumero jne.

Tietoallas

Nykyaikainen ratkaisu saada tiedot saataville on rakentaa ns tietoalusta (data-alusta, data platform).

Tietoalusta koostuu tietoaltaasta (Data Lake) ja tietovarastosta (Data Warehouse).

Tietoallas on teknisesti tiedostojärjestelmä, kuten läppärisi c -levy. Sinne on siis helppo tallettaa minkälaisia tietoja tahansa, kuvia, tekstejä, excel-tyyppisiä tiedostoja jne.

Jos jonkin alueen tiedostot ovat samanrakenteisia, tiedostojen päälle voi rakentaa virtuaalisen taulun, joka näyttää relaatiotietokannan taululta ja jota voi kysellä SQL -kielellä ja sitä kautta vaikkapa BI-työkaluilla.

Data on kuitenkin hyvin raakamuotoista ja vaatii osaamista ja aikaa osata yhdistellä sitä.

Tietoaltaan etu on, että levytila on halpaa, etenkin pilvestä ostettuna. Tietoaltaalle voi siis tallettaa suuriakin määriä tietoja suhteellisen edullisesti. Se toimiikin usein Big Datan alustana.

Tiedot tuodaan tietoaltaalle yleensä muokkaamattomina, eli samassa muodossa kuin ne ovat operatiivisessa järjestelmässä.

Ne on nopea tallettaa sinne, mutta niiden tulkitseminen vie aikaa. Data scientistit ja koodarit tekevät sinne monenlaisia kyselyjä.

Useimmiten he tekevät kertaluonteisia kyselyjä, aineistojen poimintoja ja selvityksiä.

Tietovarasto

Tarvitaan myös laadukasta, valmiiksi mallinnettua dataa vakioraportointiin ja liiketoiminnan itsepalvelukäyttöön.

Sitä varten rakennetaan tietovarasto, joka toteutetaan relaatiokantaan.

Relaatiokanta on ensin suunniteltava, jonka perusteella relaatiokannan taulut ja niiden väliset riippuvuudet syntyvät.

Sen jälkeen data ladataan sinne ja on sitten SQL-kielellä ja monilla BI -välineillä käytettävissä.

Laajemmissa tietovarastoissa on nykyisin kaksi kerrosta. Ensinnäkin on mallinnettu raakatietovarasto.

Tiedot on siis valmiiksi yhdistetty toisiinsa, esimerkiksi asiakas-tauluun voidaan liittää tili-, laina-, arvopaperisalkku-taulut ja paljon muita.

Raakatietovarasto toteutetaan usein ns. Data Vault -mallinnusmenetelmällä. Sen paras puoli on legopalikkamainen helppo laajennettavuus koskematta jo toteutettuun osaan.

Toinen osa on n. esityskerros, jossa tiedot jalostetaan eteenpäin jotta raportointi BI-välineillä olisi mahdollisimman helppoa.

Tässä tietoja yhdistellään valmiiksi vierekkäin ja lasketaan tarvittavia tunnuslukuja ja summia.

Esimerkiksi laitetaan organsaatiohirerakia valmiiksi vierekkäin, samoin koodit ja niiden selitteet. Lasketaan asiakaskate valmiiksi.

Tässä kohtaa käytetään ns. tähtimallisuunnittelua.

Mallinnus ja tietovarasto

Parhaiten tietovarastointi onnistuu, kun se mallinnetaan hyvin. Laaditaan siis liiketoiminnan – eli substanssin osaajien – kanssa käsitemallit, jotka kuvaavat kunkin alueen tiedot.

Näitä malleja voidaan hieman jalostaa toteutusta varten ns. loogisiksi malleiksi. Sitten johdetaan näistä malleista tietovaraston taulujen rakenne.

Mallit toimivat ikään kuin arkkitehdin piirustuksina ja niistä johdettu tarkempi taulurakenne on ikään kuin rakennuspiirustukset.

Tässä saadaan kaksi kärpästä yhdellä iskulla ja bonuksena vielä kolmaskin kärpänen.

Ensinnäkin käsitemallinnus on jo sinänsä todella hyödyllinen vaihe, kun saadaan keskeiset käsitteet kuvattua ja määriteltyä ja yhteinen dataymmärrys kasvaa merkittävästi.

Toiseksi tietovarasto rakentuu nyt liiketoiminnan näkemysten mukaan, ei tämänhetkisten operatiivisten järjestelmien usein sekavien rakenteiden mukaan.

Bonuskärpäsenä saamme hyvät ja selkeät kuvaukset siitä, mitä tietovarastoon on jo toteutettu.

Kuten jo mainitsin Data Vault -menetelmän käyttö on viime aikoina yleistynyt, sillä saavutetaan hyvä muutosjoustavuus, liskäksi se tukee jäljitettävyyttä ja historiointia. .

Ongelmana on, että Data Vault -rakenteet ovat vaikeaselkoisia. Niitä ei ymmärrä kuin toinen Data Vault -asiantuntija.

On kuin näytettäisiin tarkkoja rakennuspiirustuksia asunnon ostajalle. Ratkaisuna tähän ovat ymmärrettävät ja ajan tasalla pidetyt tietomallit, jotka ovat yksi-yhteen Data Vault -mallien kanssa.

Tarvitaan siis kaksi kuvauskerrosta, tekniset Data Vault -mallit ja ymmärrettävät tietomallit. Pidetään nämä synkroonissa. Tietovarastosta ei tullutkaan uusi musta laatikko!

Lopuksi

Yhteenvetona saamme lääkettä kahteen isoon ongelmaan.

Tietämys arvokkaasta tietoresurssistamme ei olekaan enää hajautuneet eri ihmisten päissä vaan kuvattuna loogiseksi, yhdisteltävissä olevaksi kokonaisuudeksi eli käsitemalleiksi.

Toiseksi data-alustan avulla tiedot ovat yhdistettynä eri lähteistä saatavilla nopeasti erilaisiin käyttötarkoituksiin vieläpä siten, että meillä on toteutetusta tietovarastosta ajantasaiset,  ymmärrettävät ja tiedon käyttämistä tukevat mallit.

Ole tutkinut yllä kuvattua koko urani ajan ja monen muun asiantuntijan tavoin todennut mallipohjaisen lähestymistavan ylivertaiseksi menetelmäksi.

Edelleen välillä törmään ajatuksiin ja projekteihin, jossa ajatellaan että kopioidaan IT-järjestelmien tietokannat tietovarastoon ja ajatellaan, että se voisi toimia suoraan, ilman mallinnuksia.

Se on vähän sama, että joku ehdottaa rakentaa uuden kauppakeskuksen täysin ilman pohjapiirrustusta, että kyllä rakentajat tietävät mitä tekevät.

Täysin sama pätee tietoalustoihin.

Yhteistyökumppanimme Rick van der Lans kirjoitti juuri artikkelissaan: ”Data modeling is essential, regardless of the data storage technology in use, such as big data technologies”. Selkeitä malleja tarvitsevat kaikki tietoprojekteihin osallistuvat!

Olemme kehittäneet Ellie-mallinnustyökalun juuri data-alustojen mallintamiseen ja sen käyttöönotto on lähtenyt todella rivakasti liikkeelle.

Ellien käytöstä onkin tullut monissa projekteissa standardi, koska sen edut ovat niin päivänselviä.

Siihen tuli juuri pari uutta ominaisuutta, esim attribuuttien import Excelistä Ellieen.

Seuraavaksi Ellieen tulee mm mahdollisuus tehdä tähtimalleja, eli sovellus kehittyy jatkuvasti.

Järjestämme nyt lukuisia kumppanikoulutuksia, eli entistä useampi konsulttiyritys voi toteuttaa sen käyttöönoton loppuasiakkaalle (ja integrointi on tehty WhereScpeen ja tekeillä  Agile Data Engineen; suhteellisen pitkälle viety automatisointi on nyt mahdollinen).

Ystävällisin terveisin,

Ari Hovi

Ps. Mikäli haluat oppia mallinnusta alan todellisen huipun kanssa, suosittelen Alec Sharpin kurssia! Kannattaa katsastaa alla oleva koulutus ja kysyä ryhmäpaketteja.

Advanced Data Modeling 24.10.2019 – 25.10.2019

Alec Sharp on maailman johtavia datan mallinnuksen asiantuntijoita. Monet pitävät hänen kurssejaan myös parhaimpina kursseina, joihin ovat osallistuneet.

Alecin ainutlaatuinen tapa osallistaa ihmiset harjoituksiin ja erittäin laaja kokemus tekee kurssista todellisen elämyksen.

Lue lisää koulutuksesta tästä

Saattaisit olla kiinnostunut myös näistä

Data Vault – miksi ei?

Lue lisää

Data Lakehouse -arkkitehtuuri

Lue lisää

Tiedon elinkaari ja tiedonhallinta

Lue lisää