Blog: Learning Microsoft Data Platform

I want to learn every day. This blog is to both document and share things I’m learning. Content is both in English and in Finnish. So foreign visitors: Click that “Translate now” – button on your browser if content looks like encrypted 🙂

  • Use Synapse On-Demand SQL to read Power BI Dataflow CDM data.
    This blog post describes how you can read Power BI Dataflow data with Azure Synapse On-Demand SQL. Power BI service has a special functionality called Power BI Dataflow (https://docs.microsoft.com/en-us/power-bi/transform-model/dataflows/dataflows-introduction-self-service). It allows business users to create data wrangling pipelines, read data from various sources and save it to Azure Datalake Gen2 account. Dataflow data is useable … Continue reading “Use Synapse On-Demand SQL to read Power BI Dataflow CDM data.”
  • Joulupähkinän tulokset
    Tein joulukuussa blogisarjan, jossa jokaisena joulukuun 24 ensimmäisenä päivänä näille sivuille tuli jokin Microsoft Data-aiheinen pulma. Aikaa ratkaista pulma oli kyseinen päivä ja sit seuraavana päivänä tuli vastaus + uusi pulma. Eräänlainen joulupulmakalenteri siis. Ensimmäisenä päivänä pulmaan tuli eniten vastauksia, yhteensä 21 kpl (2. päivän blogissa lukee 19 mutta varmaan silmät haritti tai jotain). Sen … Continue reading “Joulupähkinän tulokset”
  • Joulupähkinä #24 – Paljonko on aikaa jouluun 2021?
    Viimeinen joulupähkinä on täällä! Mietin että minkälainen on viineine joulupähkinä? Joku tosi vaikea, työläs vai mikä? Lopulta olen aika varma että käytännössä kaikki haluavat vain hiljentyä Joulun viettoon ja pähkinä on varmasti aika lailla listan pohjalla. Siksi niille muutamille, jotka tiedän että aikovat palauttaa myös viimeisen joulupähkinän ajattelin että sen on oltava jotenkin helppo, mukautuva … Continue reading “Joulupähkinä #24 – Paljonko on aikaa jouluun 2021?”
  • Joulupähkinä #23 – Azure Storagen kapasiteetti
    Toiseksi viimeisen pähkinän takana on Oskari Heikkinen (Twitter: @oskarialex). Kyse on Azure Storagesta ja siitä, paljonko sinne saa tavaraa sisään? Azure Storage accountin maksimikapasiteetti on 5PB (listattu täällä: https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#storage-limits). Oletusarvoisesti maksimikapasiteetti on kuitenkin vähemmän. Kuinka paljon dataa voit tallentaa Azure Storage accounttiisi West Europe regionassa oletusarvoisesti avaamatta tukitikettiä Microsoftin suuntaan? Vastaus voi periaatteessa olla moniselitteinen … Continue reading “Joulupähkinä #23 – Azure Storagen kapasiteetti”
  • Joulupähkinä #22 – synapse on-demand SQL ja kansiorakenne
    Tämän päivän pähkinä jatkaa siitä mihin eilinen jäi, eikä pitäisi olla kauhean monimutkainen! Sama kysymys, kuin eilen mutta ota kaikki lokakuut jokaiselta vuodelta! Tee laskenta yhdellä kyselyllä. Aineisto on osoitteessa: https://qsynapse.dfs.core.windows.net/demodata/Microsoft/MicrosoftOpenData/parquet/taxi/year=2017/month=10/ Kansiossa on parquet formatoituja tiedostoja ja huomaa että tuossa esimerkkiosoitteessa on nyt vuosi 2017. Sun pitää kysellä kuitenkin yli kaikkien vuosien! Käytössäsi on palvelin … Continue reading “Joulupähkinä #22 – synapse on-demand SQL ja kansiorakenne”
  • Joulupähkinä #21 – Synapse On-Demand SQL kyselyt
    Tänään Synapsea! Tehtävänäsi on katsoa, montako matkaa, paljonko niistä on yhteensä veloitettu, sekä miten pitkä matka on kuljettu yhteensä aineistosta, jotka löytyvät datalakesta. Aineisto on osoitteessa: https://qsynapse.dfs.core.windows.net/demodata/Microsoft/MicrosoftOpenData/parquet/taxi/year=2017/month=10/ Kansiossa on parquet formatoituja tiedostoja. Käytössäsi on palvelin seuraavilla tiedoilla: Palvelin: qdw-ondemand.sql.azuresynapse.netkäyttäjätunnus: joulusalasana: kalenteri123!tietokanta: joulu Tuohon tietokantaan on liitetty credential automaattisesti, jota joulu-käyttäjällä on lupa käyttää. Luo siis … Continue reading “Joulupähkinä #21 – Synapse On-Demand SQL kyselyt”
  • Joulupähkinä #20 – SQL Serverin with-lauseet ja vertailut
    Joulupähkinä #20 on SQL server with-lausepulma. Kysymys on, montako riviä kysely palauttaa? Kyselyssä on 2 väliaikaistaulua ja ne palauttavat tietoja seuraavasti: Ylempi kysely on siis productSales väliaikaistaulusta. Seuraava kysely on CurrencySales-taulusta: Ja kysymys kuuluu, montako riviä seuraava kysely palauttaa: Vastaa rivien lukumääärä Microsoft Forms-lomakkeella. Pähkinän #19 vastaus Vastauksia tuli 4 kpl. Yhdessä vastauksessa kritisoitiin termistöä, … Continue reading “Joulupähkinä #20 – SQL Serverin with-lauseet ja vertailut”
  • Joulupähkinä #19 – Matemaattiset laskennat DAX:lla
    Päivän pähkinän ei pitäisi olla kovinkaan vaikea! Eli vähän laina-matematiikkaa. Tarkoitus olisi oheiseen tauluun lisätä sarake, joka laskee kk-maksun. Eli paljonko lainaa tulee maksaa kuukaudessa takaisin. Lainaa lyhennetään tasalyhennyksellä jokaisen kuukauden lopussa. Laina on nostettu kuukauden alussa. Palauta siis kolumnin lisäyskoodi vastauksessasi. Palautus onnistuu Microsoft Forms lomakkeella. Pähkinän #18 vastaus Pähkinässä yhdisteltiin MongoDB-tietokantaan. Yhdistin sinne … Continue reading “Joulupähkinä #19 – Matemaattiset laskennat DAX:lla”
  • Joulupähkinä #18 – MongoDB Azuressa!
    Ensi viikolla on Joulu! Pähkinässä 18 otetaan yhteys MongoDB tietokantaan CosmosDB:n sisällä. Tehtävä on siis ottaa oheisella connection stringillä yhteys Cosmos DB:hen ja lukea sieltä collection: “joulu”. Siellä on yksi dokumentti, jossa on attribuutti “tehtava”. Palauta kyseinen kysymys ja vastaa siihen omin sanoin. mongodb://qumio-mongodb:zTm7mNGvVGi9BRjgONCzg8vBKhuWTCcfDqML61wjkwa2yJwpRg4MxV7m4KMuDBGLW7oHsaNNf1FN82I5MPynAA==@qumio-mongodb.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false&maxIdleTimeMS=120000&appName=@qumio-mongodb@ Halutessasi mukaan kisaan, jätä vastauksesi Microsoft Forms lomakkeella Joulupähkinän #17 ratkaisu … Continue reading “Joulupähkinä #18 – MongoDB Azuressa!”
  • Joulupähkinä #17 – Azure Storage Table nosql
    Joulupähkinä #17 vie meidät nosql maailmaan ja tarkemmin Azure Storagen Table-apiin. Tehtävänäsi on hakea taulun sisältö ja palauttaa siellä oleva viesti vastauksessasi. Tauluja on accountissa 1 ja siinä taulussa on 1 objekti, joten mitään kauhean vaikeaa etsimistä ei tarvitse tehdä. Azure Storagen Table api on hyödyllinen myös dataihmisille, jos on tarve säilöä dokumenttipohjaista dataa. Tietenkin … Continue reading “Joulupähkinä #17 – Azure Storage Table nosql”
  • Joulupähkinä #16 – Rekursio SQL:llä
    Joulupähkinä #16 ponnistaa siitä mihin eilinen jäi! Eli kun katsoimme rekursiota DAX:lla, niin nyt sitten rekursiota SQL:llä. Kysymys on sama, eli Tee dbo.dimEmployee taulua vasten kysely, jossa muodostat alkuperäisen taulun+yhden uuden sarakkeen jossa on polku toimitusjohtajasta työntekijään. Käytännössä siis SQL-selectin joukon tuloksen tulisi näyttää jotakuinkin tällaiselta sen uuden kolumnin osalta: Ken on siis firman johtaja, … Continue reading “Joulupähkinä #16 – Rekursio SQL:llä”
  • Joulupähkinä #15 – Rekursio DAX:ssa
    Rekursioita tarvitsee DAX:ssa aina välillä. Nyt olisi tavoitteena laajentaa DimEmployee -taulua yhdellä kolumnilla. Tässä kolumnissa olisi arvoina kaikki henkilöt yrityksen toimitusjohtajasta aina kyseisen rivin henkilöön saakka erotinmerkillä eroteltuina. Käytännössä siis kentän tulosjoukko näyttää seuraavalta: Ken on siis firman johtaja, jolla on Peter alaisena, jonka alaisena toimii Jo ja hänen alaisensa on Guy. Tämä sama päätelmä … Continue reading “Joulupähkinä #15 – Rekursio DAX:ssa”
  • Joulupähkinä #14 – Isolle joukolle suureita toinen vaihtoehto
    Joulupähkinä #14 on yksi oikea asiakascase, tosin tietty data on eri kun tässä mennään AdventureWorksilla. Kyseessä on malli, jossa on n. 50 erilaista mittaria (suuretta). Jokaisesta mittarista tulisi saada versio, jossa yksi koko-komponentti otetaan pois. Tämä sen takia, että tietyissä laskennoissa sillä on väliä, toisissa ei niin paljoa. Oheinen kuva kuvastaa tilanteen. Mittari on Sum([SalesAmount]) … Continue reading “Joulupähkinä #14 – Isolle joukolle suureita toinen vaihtoehto”
  • Joulupähkinä #13 – DAX calculate ja laskentakonteksti
    Pähkinä #13 menee VAR,Return, Calculate laskentakontekstien juurelle. Kysymys kuuluu, Mikä luku palautuu kohtaan: Class=HColor=BlackYear=2005 Näet näytöllä luvut, kuten ne ovat silloin kun käytetään suuretta SUM(‘FactInternetSales'[SalesAmount]), Jos suure vaihdetaan seuraavaksi: Sales2 = VAR classvalues = values(‘DimProduct'[Class])var sumvalue=CALCULATE(SUM(‘FactInternetSales'[SalesAmount]))RETURNCALCULATE(SUM(‘FactInternetSales'[SalesAmount])-sumvalue,ALLEXCEPT(‘DimProduct’,DimProduct[Class]),ALL(‘DimDate’)) Mitä tulee ko. kohtaan?Class=HColor=BlackYear=2005 Malli on tarvittavilta osin tässä: Palauta suureen summa forms-lomakkeella. Pähkinän #12 ratkaisu Pähkinässä #12 ihmeteltiin … Continue reading “Joulupähkinä #13 – DAX calculate ja laskentakonteksti”
  • Joulupähkinä #12 – Mikä ihmeen SQL operaattori?
    Lyhyt sanallinen pähkinä. Mikä operaattori punaisella merkitty operaattori on? Mitä siinä on tässä tapauksessa tapahtunut. Viikonloppupähkinät pyrin tekemään niin että puhelimella onnistuu vastata. Palauta vastaus Microsoft Forms -lomakkeella. Pähkinän #11 vastaus – indeksin luonti Pähkinän vastaus tulee päivän 12 aikana. Vastauksia tuli 10 ja pakko kokeilla jokainen vastaus, koska oli erilaisia.
  • Joulupähkinä #11 – Mikä on paras indeksi?
    SQL-ongelma: Luo parhaat mahdolliset indeksit kyselylle. Kyselyä et saa muuttaa muilta osin, kuin lähdetaulujen nimien suhteen, koska joudut luomaan kopion olemassa olevista tauluista. Yritä saada mahdollisimman tehokas indeksi niin, että levyoperaatiot jäävät mahdollisimman pieniksi. Kysely, josta saat siis muuttaa vain taulujen nimiä niiltä osin, kuin olet ottanut kopion alkuperäisistä tauluista: select sum(SalesAmount),c.CurrencyName,d.DayNumberOfWeekfromdbo.FactInternetSales –tätä riviä saa … Continue reading “Joulupähkinä #11 – Mikä on paras indeksi?”
  • Joulupähkinä #10 – Paljonko ADF maksaa?
    Päivän pähkinä on yksinkertainen: Montako minuuttia Azure Data Factory ajo maksaa? Azure Data Factoryssä compute-resursseista maksetaan käytetyn ajan mukaan. Onko se siis kallista vai halpaa? Katso oheinen kuvio, laske paljonko oheinen pipeline maksaa ja palauta se vastauksena. Eli oheisessa lookup kestää 20 sekuntia, se palauttaa 500 objektia jotka syötetään for-each elementille. For-each iteraattorissa on 2 … Continue reading “Joulupähkinä #10 – Paljonko ADF maksaa?”
  • Joulupähkinä #9 – taulun datan muuttaminen ilman yksiselitteistä where-lausetta mutta silti vain osajoukkoon?
    Päivän pähkinä on seuraava: “Poista taulusta 28% riveistä”. Yksinkertaista. Voit käyttää testipenkkinä tuota vanhaa tuttua Azure SQL tietokantaa. Palvelin: qsql.database.windows.netTietokanta: AdventureWorksLTKäyttäjätunnus: jouluSalasana: kalenteri123! Siellä on stored procedure generateTable @taulunnimi nvarchar(200) joka luo sinulle taulun harjoittelua varten jouludelete-schemaan. Käytännössä siis esimerkiksi: Tuo ylempi komento luo tuon taulun, sit alempi tietty selectoi siitä ekat 1000 riviä. Mutta … Continue reading “Joulupähkinä #9 – taulun datan muuttaminen ilman yksiselitteistä where-lausetta mutta silti vain osajoukkoon?”
  • Joulupähkinä #8 – Pysyykö julkiset tilastot hallussa?
    Joulupähkinä #8 on Tilastokeskuksen virallisten tilastojen analysointia Power BI:llä. Jos et vielä ole kertaakaan kokeillut, niin kannattaa! Tilastokeskus ja muut viranomaistahot tekevät tosi paljon tutkimusta, joka julkaistaan avoimena datana. Tämä data on helppo hyödyntää Power BI:ssä tai Excelissä. Päivän tehtävänä on selvittää oman ammattiluokituksesi ansiorakenne Suomessa. Tilastokeskus tilastoi keskimääräisiä kuukausipalkkoja ammattiluokittain ja ikärakenteen, sekä sukupuolen … Continue reading “Joulupähkinä #8 – Pysyykö julkiset tilastot hallussa?”
  • Joulupähkinä #7 – Näkymän tulosjoukko oikeaan järjestykseen?
    Nyt voi olla helppo. Näkymiin ei pysty laittamaan order-by lausetta, mutta miten saada näkymä tuottamaan luvut just haluamassasi järjestyksessä? Tämä kysely ei onnistu, moottori sanoo että order by-lauserakenne ei ole sallittu näkymissä. Miten ratkaisisit ongelman? Voit kokeilla mille komennolle näkymän luonti onnistuu samalla tutulla palvelimella. Sinne on luotu schema jouluviews, johon voit näkymiä luoda. Muista … Continue reading “Joulupähkinä #7 – Näkymän tulosjoukko oikeaan järjestykseen?”
  • Joulupähkinä #6 – Enter uudeksi riviksi Power Queryllä?
    Tämän päivän pähkinä on todellinen pähkinä. Minä en tuota mitenkään huijaamatta ja elegantisti saanut ratkaistua ja se vähän harmittaa. Tasavallan presidentti on tänään ylentänyt 536 reservin upseeria ja olisin halunnut tehdä siitä Power BI raportin. Lähdeaineistona halusin käyttää virallista listaa puolustusvoimien sivuilta. Kyseisessä PDF-tiedostossa on kuitenkin muotoilussa yhdessä kohtaa virhe, joka johtaa siihen että 3 … Continue reading “Joulupähkinä #6 – Enter uudeksi riviksi Power Queryllä?”
  • Joulupähkinä #5 – Hassu DAX-kaava 1
    Muistatko sen puhelun kun asiakas soittaa ja sanoo alkuun, että “Joo, et oo ollut tekemässä tätä mutta me ei just nyt saada ketään muuta kiinni ja olis ihan pakko tietää mikä tässä on vikana.” Saat käsiisi tabulaarisen mallin joka ei ehkä ole ihan kaikkien taiteen sääntöjen mukaan tehty ja yrität selvittää mitä se oikein tekee. … Continue reading “Joulupähkinä #5 – Hassu DAX-kaava 1”
  • Joulupähkinä #4 – DAX, Viikonpäivät järjestykseen
    Neljäs pähkinä on taas DAX:ia. Aika yleinen tarve raportoinnissa on saada esimerkiksi myynti per viikonpäivä tai myynti per kuukausi – tyyppinen suure. Monet käyttäjät haluavat nähdä nimet numeroiden sijaan, joten x-akselille pitää saada vaikka viikonpäivät tyyliin “maanantai”, “tiistai”, “keskiviikko” jne… Viikonpäivät eivät kuitenkaan ole luonnollisesti aakkosjärjestyksessä ja Power BI järjestelee elementit aakkosten mukaan oletuksena. Päivän … Continue reading “Joulupähkinä #4 – DAX, Viikonpäivät järjestykseen”
  • Joulupähkinä #3 – Power Query kumulatiivinen summa
    Kolmas pähkinä, sama ongelma! Lupaan, nyt alkaa olla kielet käyty, ellei sitten mennä Python/R tai ehkä ADF:n dataflow:hun? Mutta tänään siis Power Queryllä tuttu kumulatiivinen summa ongelma. Lisätään hieman vaikeutta, ratkaisun tulee olla yksi kysely. Power Queryssä ei siis saa näkyä uusia kyselyitä. Steppejä tietty voi olla vaikka kuinka monta. Kumulatiivinen summa Power Query kielellä … Continue reading “Joulupähkinä #3 – Power Query kumulatiivinen summa”
  • Joulupähkinä #2 – SQL kumulatiivinen summa
    Toinen joulupähkinä on myös kumulatiivinen summa. Nyt SQL kielellä! Tarkoitus on saada sama tulosjoukko aikaiseksi, kuin ensimmäiselläkin kerralla, mutta nyt T-SQL Selectillä. Data on sama kuin ensimmäisellä kerralla, joten tulosjoukon tulisi näyttää samalta. Tämä blogisarja on siis 24-osainen Microsoft Data joulupähkinä -sarja. Jokaisena joulukuun 24 ensimmäisenä päivänä tällä sivustolla julkaisen joko oman, tai toivottavasti myös … Continue reading “Joulupähkinä #2 – SQL kumulatiivinen summa”
  • Joulupähkinä #1 – DAX kumulatiivinen summa
    Joulukuu on alkanut! Ja samalla Microsoft Data joulupähkinäkalenteri on täällä. Ensimmäinen luukku liittyy yksinkertaiseen DAX-ongelmaan, joka on hyvin yleinen raportoinnissa: Kumulatiivinen summa. Tarkoituksena olisi siis laskea ns. YTD-summa myynneistä. Mitä se siis tarkoittaa? Tarkoituksena on näyttää kunkin kuukauden kohdalla luku, joka edustaa myyntiä vuoden alusta ko. kuukauden loppuun saakka. Käytännössä siis jos tammikuussa on myyntiä … Continue reading “Joulupähkinä #1 – DAX kumulatiivinen summa”
  • Microsoft Data Joulupähkinä: 24 erilaista ongelmaa
    Suklainen joulukalenteri on aika helppo ja palkitseva. Aamulla sängystä, kalenterin katselu ja jäljellä olevasta suljettujen luukkujen joukosta pienimmän kokonaisluvun etsiminen. Sit luukku auki ja suklaa suuhun! Voisko samaa tehdä Microsoft Data jutuilla? 24 helppoa pähkinää, mukava tunne kun saa pulman ratkaistua ja sit päivän muihin juttuihin? Julkaisen tällä sivulla https://vesa.ws/blog 24 pähkinää, joulukuun 24 ensimmäisenä … Continue reading “Microsoft Data Joulupähkinä: 24 erilaista ongelmaa”