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”