Power BI
Suoritetut kurssit
- Microsoft Power BI Desktop for Business Intelligence (2023), 15 h, 8/2023 (Udemy)
DataCamp, 12/2022:
- Introduction to Power BI, 3 h
- Introduction to DAX in Power BI, 2 h
- Data Visualization in Power BI, 3 h
- Case Study: Analyzing Customer Churn in Power BI, 3 h
- Data Preparation in Power BI, 3 h
Näyte
Seuraavan näytteen olen tehnyt osana kurssia Microsoft Power BI Desktop for Business Intelligence (2023), jonka ovat luoneet Chris Dutton ja Aaron Parry (Maven Analytics).
Koko AdventureWorks-näytteen voit ladata täältä:
https://drive.google.com/drive/folders/1yW8GKph8Bw7pljxCnUTgs2XOX0qgdlvW?usp=sharing
Näyte on .pbix-raporttitiedosto, joten tarvitset Power BI Desktop:in avataksesi sen. Seuraavassa käyn hieman läpi näytteen tekoa ja osaamistani. Raportti on tuotettu kuvitteelliselle yritykselle nimeltä AdventureWorks Cycles, joka myy pyöriä ja muita oheistuotteita. Tavoitteena on saada muodostettua raakadatasta raportti, jonka avulla voidaan seurata mm. KPI:itä, alueellisia myyntejä sekä analysoida ja tunnistaa tuotekohtaisia ja asiakaskohtaisia havaintoja.
ETL (Power Query)
Aloitin näytteen tekemisen tuomalla annetut .csv tiedostot yksi kerrallaan Power Queryllä. Sales Data tuotiin kansiossa, joka sisälsi kolme yksittäistä .csv tiedostoa. Tämän jälkeen muokkasin tuotua dataa, jonka jälkeen siistityt tiedot ladattiin käytettäväksi Power BI:ssa.
Muunnokset koskivat pääasiassa tietotyyppien määrittämistä, uudelleen nimeämistä, päivämääristä mm. vuoden, kvartaalin ja kuukauden nimen lisäämistä, tietojen yhdistämistä (merge) ja tietyn asian erottamista laajemman tiedon sarakkeesta uuteen (extract). Lisäksi kävin läpi tyhjät arvot ja errorit. Ohessa kuva Customer Lookupin muunnoksista.
Tiedon mallinnus (Model View)
ETL-prosessin jälkeen lähdin mallintamaan dataa mallinäkymässä. Määritin suhteet taulukoiden välille sekä piilotin joitakin sarakkeita, joita en halunnut näkyvän raporttinäkymässä käyttäjälle. Tämän lisäksi kävin läpi taulukot taulukkonäkymässä ja määritin vielä tietotyypit sekä miten haluan mm. päivämäärien näkyvän. Lisäksi loin hierarkian, jota voidaan käyttää aikariippuvaisissa visualisoinneissa (Date Hierarchy). Alla kuva määritetystä tietomallista.
DAX
Mallinnuksen jälkeen määritin joitakin mittareita (measures), joiden luomisessa käytin apuna DAX funktioita, joita tultiin käyttämään koontinäyttöjä luodessa. Alla joitakin määritettyjä mittareita:
% of All Orders = DIVIDE( [Total Orders], [All Orders])
All Orders = CALCULATE( [Total Orders], ALL( 'Sales Data' ))
Bike Returns = CALCULATE( [Total Returns], 'Product Categories Lookup'[CategoryName] = "Bikes")
Order Target = [Previous Month Orders] * 1.1
Previous Month Orders = CALCULATE( [Total Orders], DATEADD( 'Calendar Lookup'[Date], -1, MONTH ))
Total Revenue = SUMX( 'Sales Data', 'Sales Data'[OrderQuantity] * RELATED( 'Product Lookup'[ProductPrice] ))
Ohessa kuva taulukosta, johon sijoitettu luodut mittarit.
Koontinäytöt
Raporttinäkymässä varsinaisia koontinäyttöjä raporttiin loin neljä: Exec Dashboard, Map, Product Detail ja Customer Detail. Lisäksi loin kustomoidun työkaluvihjeen (tooltip) sekä Q&A:n, hajotuspuun (Decomposition Tree) ja sivun tärkeimpien vaikuttajien analysointiin (Key influencers).
Exec Dashboard
Tämä on raportin ensimmäinen koontinäyttö. Koontinäytön vasempaan reunaan on tehty palkki, jossa painikkeita eri toiminnoille. Ylimmästä alkaen: (1) poistaa kaikki käyttäjän asettamat filtterit, (2) voidaan suodattaa tietoja kuten toisessa kuvassa, esim. vuosi 2022 ja Eurooppa. Alimmat painikkeet (3) - (6) ovat navigointia varten ja vievät käyttäjän raportin eri koontinäytöille.
Pylväskaavioon Orders by Category on tehty kustomoitu työkaluvihje (tooltip), ks. kolmas kuva.
TOP 10 Products taulukosta voidaan porautua (Drill Through) halutun tuotteen kautta Product Detail-koontinäyttöön, ks. neljäs kuva.
Map
Tässä koontinäytössä voidaan tilauksia tarkastella kartalla, ks. kuva 1. Yläreunaan on tehty painikkeet eri alueille, jolloin voidaan tarkastella tilauksia tarkemmin, ks. kuva 2.
Product Detail
Tämän koontinäytön tavoite on tukea tuotekohtaista analyysiä. Tuotteita saa valittua raportin Exec Dashboard:lta. Raportin tiivistelmä (Report Summary) on älykäs kertomus (Smart Narrative), jossa vain ensimmäinen virke on itse kirjoitettu, muut ovat tekoälyn luomaa.
Customer Detail
Viimeisen koontinäytön tavoitteena on tarkastella asiakaskohtaisia havaintoja.
AI - Q&A, Decomposition Tree ja Key influencers
Seuraavat koontinäytöt ovat luotu tarkempia havaintoja varten. Näissä käytetään apuna tekoälyä.
Q&A-koontinäytössä voidaan kysyä omasta datasta kysymyksiä. Tähän on asetettu näytettäväksi kaksi ehdotusta ja synonyymejä on asetuksista hieman täsmennetty. Tekoälyltä voidaan esimerkiksi kysyä tarkempia kysymyksiä henkilöstä Maurice Shan. Asiakas Maurice Shan tuli esille Customer Detail-sivulla, jossa havaittiin, että hän on ostanut eniten muihin asiakkaisiin nähden. Nyt halutaan tietää, mitä Maurice on ostanut ja näihin liittyvät tilausnumerot. Ks. kuvat 1 ja 2.
Decomposition Tree-koontinäytössä (hajotuspuu) voidaan tarkastella esimerkiksi palautusprosenttia ensin kategorioittain ja lopulta tarkastella tuotekohtaisesti palautusta ja määriä. Esimerkiksi kuvassa 3 tarkastellaan vaatekategoriaa ja havaitaan, että shortseja palautuu prosentuaalisesti eniten muihin vaatteisiin verrattuna.
Key influencers-koontinäytössä (tärkeimmät vaikuttajat) voidaan puolestaan tarkastella määritetyn aiheen ympärillä sitä, mitkä asiat vaikuttavat siihen. Esimerkiksi kuvassa 4 halutaan tutkia sitä, mitkä asiat vaikuttavat siihen, että henkilö on kodin omistaja. Nähdään, että kaksi asiaa vaikuttaa muita tutkittavia enemmän. Havaitaan, että kodin omistaja on todennäköisemmin naimisissa ja hänellä on lapsia. Tarkemmin sanottuna, naimisissa olevat omistavat 1,62 kertaa todennäköisemmin asunnon ja henkilöt, jotka ovat vanhempia, 1,59 kertaa todennäköisemmin. Ks. kuva 4.