Skip to content

Semanttisen mallin dokumentointi Power BI:ssä

Analytiikassa dokumentointi on aivan yhtä tärkeä osa kehitystyötä kuin missä tahansa muussakin ohjelmointityössä. Se on kuitenkin usein sivuutettu tai ainakin syrjitty osuus tekemistä. Väitän, että valtaosassa Power BI -toteutuksissa dokumentointi on puutteellista joko osittain, tai kokonaan. Ajatus semanttisen mallin dokumentoinnista manuaalisesti siten, että se sisältää ajantasaisen tiedon kaikista tauluista sarakkeineen sekä kaikki luodut mittarit, on vähintäänkin puistattava. Prosessi on työläs käsipelillä hoitaa maaliin, ja kuukauden päästä havahdutaan siihen, että dokumentaatio ei ole lähimainkaan enää ajan tasalla.

Onni on, että semanttisessa mallissa voidaan asettaa kuvaustekstejä, selitteitä hyvin monella tasolla. Taulun kuvaukseen voidaan esimerkiksi kertoa, mistä tietolähteestä taulun data tulee tai minkälaisia suodatuksia latausvaiheessa on tehty: 

Sarakkeelle voidaan kertoa tarkennuksia käyttötarkoituksesta, tai siitä logiikasta, millä sarake on luotu:

Mittarin kuvaus on hyvä paikka dokumentoida laskennan perusteet ja käyttötarkoitus. Tämä pysyy pienellä vaivalla ajan tasalla, jos ottaa tavaksi aina tarkistaa kuvaustekstin, jos tekee muutoksia mittariin. Ja mikä parasta, tässä voidaan hyödyntää Copilotia! (painike tätä varten löytyy kuvauskentän alta):

Nyt kun päätös tehty siitä, missä malli dokumentoidaan (ja vapauttauva päätös siitä, että ei yritetä ylläpitää SharePoint tai Confluence -sivua), nousee esiin kysymys tavasta tuoda nämä tiedot näkyviin. Siihen on tällä hetkellä kaksi helppoa tapaa.

Tapa 1. Luetaan metatiedot samaan malliin tauluiksi:

Uudet INFO.VIEW-funktiot mahdollistavat nyt käytön laskennallisten taulujen lähteenä. Aiemmin julkaistut INFO-funktiot eivät sitä monen pettymykseksi mahdollistaneet. Luodaan siis malliin dokumentaatiotaulut seuraavasti:

Documentation_tables, sisältää malliin ladatut taulut:

Documentation_columns, sisältää malliin ladatut sarakkeet:

Documentation_measures, sisältää mallin mittarit:

Esimerkeissä on rajattu INFO.VIEW-funktioiden palauttamia sarakkeita sisältämään vain tärkeimmät. Tämä ei ole välttämätöntä, mutta auttaa säästämään tallennustilaa mallissa. Yllä olevien lisäksi voidaan vastaava taulu tehdä myös taulujen välisistä relaatioista käyttäen INFO.VIEW.RELATIONSHIPS()-funktiota, mutta tässä esimerkissä riittää yllä olevat kolme taulua. Tämän tavan etuna on dokumentaation automaattinen päivitys mallin lähdedatan päivityksen yhteydessä, eikä mitään erillistä päivitystä tarvitse tehdä. Taulujen välille voidaan tehdä myös relaatiot normaalisti:

Tapa 2. luetaan mallin metatiedot erilliseen malliin:

Tämä tapa vaatii joko Premium-kapasiteetin työtilaan (P/F SKU tai Premium Per User).

Power BI semanttisen mallin metatiedot voidaan lukea myös toiseen semanttiseen malliin, mikäli ei haluta tallentaa dokumentaatiota mallikohtaisesti, tai halutaan luoda keskitetty dokumentaatiomalli, jossa yhdistetään useiden käytössä olevien mallien metatiedot. Tämä tapa vaatii erillisen päivityksen saadakseen ajantasaiset metatiedot.

Aloitetaan raportointimallin luominen hakemalla Power BI -työtilan XMLA-osoite, tämä löytyy työtilan asetuksista kohdasta License info – Connection link:

Seuraavaksi luodaan uusi Power BI -raportti ja valitaan yhteystyypiksi ”Analysis Services”:



Avautuvassa ikkunassa täytetään työtilasta kopioitu osoite, haluttu semanttinen malli, valitaan yhteystyypiksi ”Import” sekä tärkeimpänä, tehdään kysely metatietoon. Ensimmäisenä ladataan semanttisen mallin taulut kyselyllä ” SELECT * FROM $System.TMSCHEMA_TABLES”:


Avautuvasta esikatselusta valitaan ”Transform Data”, jotta päästään taulun muokkaustilaan. Täällä taululle annetaan kuvaava nimi sekä valitaan vain halutut sarakkeet:

”Documentation_tables” näyttää valituilla sarakkeilla tältä:

Helpoin tapa ladata sarakkeet ja mittarit omiin tauluihinsa ”Documentation_columns” ja ”Documentation_measures” on ottaa kopio aiemmin luodusta ”Documentation_tables”-taulusta ja muuttaa kysely seuraavasti:

  • Sarakkeille käytetään kyselyä: ”SELECT * FROM $System.TMSCHEMA_COLUMNS”
  • Ja mittareille kyselyä: ” SELECT * FROM $System.TMSCHEMA_MEASURES”

Kun nämä taulut on ladattu, voidaan niiden välille luoda relaatiot normaalisti ja mallia voidaan käyttää dokumentaatioraportin lähteenä:

Dokumentaatioraportin ulkoasu on sitten viimeinen asia, minkä parissa varmasti aikaa kuluu, mutta kun data on saatavilla ja aina ajan tasalla, on siitä helppo jatkaa tietojen esittämiseen ja tarvittaessa myös ajastettuihin jakeluihin. Jakeluiden avulla voidaan esimerkiksi reagoida ”unohtuneisiin” mittarikuvauksiin. Jakeluista Vesku kirjoitti jo aiemmin, käy katsomassa täältä.

Millä tasolla Teidän organisaationne Power BI tietomallien dokumentointi on? Autamme mielellämme, yhteystietomme löydätte täältä.