BI:n data järjestykseen tähtiskeemalla

Ovatko raporttiohjelmat muuttuneet niin moderneiksi, ettei hyvin järjesteltyä tietovarastoa ja tiedon jalostusta tarvita? Näin voisi kuvitella, kun kuuntelee raporttiohjelman myyntitykkiä:

“Meidän raportointityökalu kytkeytyy teidän ohjelmiinne ja imee sieltä tiedot omaan säilöönsä, data lakeen, josta raportit saa helposti tehtyä.”

Hän ei mainitse sanallakaan mitään tiedon siivouksesta, tarkistuksesta tai jäsentelystä. Vaikka yhden raportin voi tehdä onnistuneesti mutkia oikomalla, ei koko organisaation raportointia voi hallita ilman yhdenmukaisia toimintatapoja. Jos Business Intelligence -projektin aikana ei mainita sanaa tähti tai lumihiutale, on jokin menossa pieleen.

Tähtiskeema on yritysraportoinnin peruskäsite, joka kuvaa tapaa, jolla IT-osaston datanikkarin kannattaa ryhmitellä ja säilyttää tietoa tietovarastossa. Kun data on ojennuksessa, käyttäjät voivat nauttia nopeista raporteista ja oikeassa olevista luvuista. Tähtiskeemainen datamalli on yhtä tärkeää raportille kuin perustus rakennukselle: jos perustus on pielessä, tulee ennemmin tai myöhemmin vaikeasti korjattavia ongelmia raportointiin. Valitettavasti jotkut ohjelmistotalot uskottelevat, että heidän raporttityökalunsa on niin edistynyt, että tähtiskeemaa ei tarvita. Aloittelevat raportintekijät eivät välttämättä tunne toimiviksi todettuja toimintatapoja ja uskovat toimittajien väitteet. Älä lankea tähän ansaan, vaan vaadi raportinkehittäjiltä hyvin organisoitua tietoa. Käyn tässä jutussa läpi muutamat ydinkohdat, miltä hyvin jäsennelty data näyttää.

Hyvin rakennettua tietomallia on ilo käyttää Power BI -raportointityökalussa
Hyvin rakennettua tietomallia on ilo käyttää Power BI -raportointityökalussa

Tiedon alkulähteille

Useimmiten tieto tulee yritysohjelmista kuten myyntiosaston tilausjärjestelmästä, talousosaston kirjanpidon järjestelmästä tai tuotannon tehdasjärjestelmästä. Ohjelmissa oleva tieto pitää tallentaa johonkin, ja yksinkertaisessa tapauksessa tallennuspaikka voi olla yksittäinen tekstitiedosto. Kun säilytettävän tiedon määrä kasvaa ja monimutkaistuu, tulee tiedon säilyttämisestä ja käyttämisestä vaikeaa, eikä yksinkertaiset ratkaisut riitä. Ohjelmistokehittäjät eivät halua ratkoa tätä samaa tiedonhallinnan ongelmaa joka kerta uudelleen, vaan hyödyntävät valmiita ratkaisuja, joita kutsutaan tietokannoiksi.

Tietokannat toimivat kuin kirjastonhoitajat, jotka hakevat ja säilövät tiedonjyväsiä hyllyissään. Tietokanta yrittää pitää huolen, että tietojen tallennus ja muokkaus on nopeaa ja varmaa, eikä tiedot ole ristiriidassa keskenään. Käytännössä tämä tarkoittaa sitä, että tieto pyritään jäsentelemään, eli tietokantatermein normalisoimaan, hyvin pieniksi kokonaisuuksiksi eli tauluiksi, jotka linkittyvät toisiin tauluihin jonkin arvon perusteella. Kun esimerkiksi asiakkaan osoite muuttuu, riittää että tieto korjataan vain yhden taulun yhteen riviin eikä esimerkiksi jokaista laskua tarvitse käydä erikseen läpi, sillä ne sisältävät pelkän viittauksen osoitetietoon.

Laskutieto yritysohjelman tietokannassa
Laskutieto yritysohjelman tietokannassa

Raportti voi hakea tiedot suoraan alkulähteiltä eli yritysohjelmien tietokannoista, mutta tämä on hyvän käytännön vastaista. Ensinnäkään emme halua rasittaa yritysohjelmia raporttien monimutkaisilla tietopyynnöillä, jotka voivat vetää järjestelmän polvilleen. Toiseksi suoraan tietokantaan tehtyjen raporttien muokkaaminen on vaikeaa muille kuin lähdejärjestelmän ja relaatiokantojen asiantuntijoille. Pieneen pilkottu, normalisoitu, tietokanta on erittäin tehokas ja järkeenkäypä ohjelmistoille, mutta huonosti sopiva raportoinnille ja ihmisille. Tietovaraston ja tähtiskeeman avulla voimme keventää yritysohjelmien taakkaa, nopeuttaa raportteja ja helpottaa uusien laskelmien tekemistä business-käyttäjille.

Tiedot järjestykseen

Nimensä mukaisesti tähtiskeemaan muutettu tieto näyttää kuvaajassa tähdeltä. Tähden keskustassa on mitattava asia ja sakaroissa lisätieto, jolla laskettavaa asiaa ryhmitellään ja rajataan. Jos muuttaisimme yrityksen laskutuksen tähtiskeemaksi, laittaisimme keskustaan yhteenlaskettavat eurot sekä kappaleet ja sakaroiksi lisätietoa tuovat tuote-, myyjä-, asiakas- ja kalenteritaulut.

Tähtiskeemaan muutettu laskutieto tietovarastossa
Tähtiskeemaan muutettu laskutieto tietovarastossa

Uusi jäsennelty tietomalli eroaa monelta osin alkuperäisestä normalisoidusta tietokannasta:

  • Sarakkeet nimetään liiketoiminnan termeillä.
  • Tiedot ryhmitellään liiketoiminnalle järkeviin kokonaisuuksiin.
  • Taulujen keskinäiset suhteet pidetään yksinkertaisina (tähtiskeema).

Lopputuloksena on tietomalli, joka on helposti selitettävissä, ymmärrettävissä ja sopiva useimpiin raportointityökaluihin. Business Intelligence -termein olemme dimensiomallintaneet alkuperäisen tietokannan dimensioiksi ja faktoiksi.

Fakta

Fakta on tietovaraston mitattava asia ja tähden ydin. Faktataulu sisältää tyypillisesti kymmeniä tuhansia tai miljoonia rivejä, joiden pohjana on myyntilaskurivit, kuormakirjat, kirjanpidon tositerivit tai vaikka pakatut tuotteet. Koska rivien määrä on suuri ja olemme tarkkoja raportoinnin nopeudesta, pyrimme ottamaan mukaan vain tarvittavan tiedon. Pyrkimyksenä on, että faktarivit sisältävät pääasiassa summailtavia lukuja kuten kappalemääriä tai hintoja ja viittauksia dimensiotauluihin eli vierasavaimia. Käytännössä faktataulua täydennetään myös muullakin kuvaavalla tiedolla kuten lasku- tai kuormanumerolla.

Dimensio

Dimensio antaa kontekstin faktalle, jolloin pystymme ryhmittelemään ja rajaamaan tietoa liiketoiminnalle järkevillä tavoilla. Tyypillisiä dimensioita ovat aikadimensio, tuotedimensio, asiakasdimensio ja työntekijädimensio, jotka voimme kaikki yhdistää myyntitietoja sisältävään faktatauluun. Faktatauluista poiketen dimensiotaulujen rivimäärät vaihtelevat kymmenistä riveistä tuhansiin riveihin.

Onko tähtiskeema ainoa tapa?

Ralph Kimballin tähti- tai lumihiutaleskeema (so. dimensiomallinnus) ei ole ainoa tapa jäsennellä tietoa, sillä isoimpana kilpailevana mallina on Bill Inmonin lanseeraama tietovarasto. Siinä missä Kimball rakentaa tietovarastoa pieni palanen kerrallaan, Inmon pyrkii jäsentämään koko organisaation tiedon kerralla oikein. Jos ja kun Inmonin tietovarasto on valmis, organisaatiolla todella on vain yksi totuus yrityksen tilanteesta.

Muita tietovaraston jäsentelytapoja ovat tietoallas (engl. data lake) ja Dan Linstedtin data vault. Näitä ei välttämättä tarvitse pitää kilpailevina malleina, vaan ne voivat toimia pohjana, jonka päälle rakennetaan tähtiskeemoja. Toimivana ratkaisuna voisi olla esimerkiksi se, että tieto poimitaan ensin yritysohjelmista ja tallennetaan sitten Data Vault 2.0 -mallilla tietovarastoon. Sen jälkeen tähtiskeema rakennetaan data vaultissa olevista tiedoista. Tähtiskeema olisi silloin liiketoiminnan kannalta pisimmälle jalostettu tiedonsäilytyspaikka ja data vault vähemmän jalostettu, mutta kattavampi arkisto. Data vaultista minulla ei ole pahaa sanottavaa toisin kuin tietoaltaasta, jota jotkut raportointitoimittajat käyttävät kiertoilmaisuna, kun oikeasti kyseessä on jäsentelemätön datan kaatopaikka.

Yhteenveto

Yhden raportin voi tehdä nopeasti, millä tahansa menetelmällä, mutta kun raporttien määrä kasvaa, alkaa valittujen kehitystapojen vaikutus näkyä. Raporttien oikotiet ja laastariratkaisut rakentavat hämähäkinverkon, johon ylläpitäjä lopulta sotkeutuu, sillä jokainen uusi raportti on uusi este seuraavassa projektissa. Asia voisi olla toisin, sillä hyvin jäsennelty tieto on pohja, joka auttaa tulevissa BI-projekteissa, sillä kaikkea ei tarvitse rakentaa uudelleen alusta alkaen. Kun käytämme uudelleen samoja palikoita, eli tässä tapauksessa dimensioita, raportit ovat keskenään yhdenmukaisia. Pitkän tähtäimen Business Intelligence -suunnitelmissa ei kannata langeta oikoteihin, vaan kannattaa nähdä vaivaa ja hyödyntää olemassa olevia tietovarastomalleja.

Mikko Harhanen
Mikko Harhanen
Business Intelligence -konsultti

Kauppatieteiden maisteri, liiketoiminnan analyytikko.