Microsoft Fabric: Dataflow Gen2

Microsoft Fabric: Dataflow Gen2
Kirjoittanut Timi Lantela
05.09.2023 - Lukuaika 6 min
Microsoft Fabric
Power BI

Power Queryä pilvessä, tehokkaampana kuin koskaan?

Taustaa

Microsoft laittoi Data Platform -systeeminsä kerralla uusiksi julkaisemalla viime toukokuussa Build-konferenssissaan uuden Fabric-tuotteen. Mikäli markkinointiviestintää on uskominen, kyseessä on todellakin uusi tuote. Ei siis kokoelma vanhoja palikoita. Kaikki analyyttiset työkuormat pyörivät samalla SaaS-alustalla käyttäen samaa lähdettä; Onelakea. Ei enää klustereita, provisointeja tms. säätämistä. Datat Onelakeen Delta-formaattiin ja ei muuta kun transformaatioiden ja kyselyiden kimppuun valitsemallasi kielellä. Kuulostaapa hienolta.

Microsoft Fabric (Lähde: Microsoft Learn)

Ennen kuin data löytyy Onelakesta Delta-tauluina, täytyy varsinaiset integraatiot toki tehdä jollain työkalulla. Microsoft tarjoaa Fabricin osana kolme työkuormaa integraatioihin:

  1. Data Factory: Azuresta tutun orkestrointi- ja integraatiotyökalun uusi tuleminen
  2. Notebooks: Spark nopeasti kyseltävässä muodossa - ei klusterien pystytyksiä ja odottelua
  3. Power Query: Hetkinen, eikö nämä olleet oikeiden datahommien työkuormia? Mitä tämä bisneskäyttäjän työkalu täällä tekee?

Esimerkki Fabricin työkuormista (Lähde: Advancing Analytics Blog)

Todellakin, Microsoft tunnistaa Power Queryn yhdeksi integraatiotyökuormaksi näiden monstereiden rinnalla. Power BI -kehittäjänä kiinnostuin heti, sillä kaikki Power BI:llä tai Power BI Dataflow:lla transformaatioita tehneet tietävät millainen Power Queryn suorituskyky transformaatioissa on ollut (huono). Microsoft kertoo tehneensä parannuksia uuteen Dataflow Gen2 -tuotteeseensa. Katsotaanpa tarkemmin miltä uusi Dataflow näyttää.

Dataflow Gen2

Power BI Dataflow:sta julkaistiin Preview-versio loppuvuodesta 2018. Yksinkertaistettuna Dataflow:n voidaan ajatella olevan Power Query pilvessä. Dataflow:n avulla käyttäjä pystyi lataamaan dataa eri connectorien avulla tauluiksi, tekemään tauluille tarvittavat temput graafisella käyttöliittymällä, ja tallentamaan datat Azure Data Lake Gen2 storageen CSV-tiedostoina. Metadata tallentui samaan paikkaan JSON-formaatissa. Luonnollisesti CSV-tiedostojen kanssa puljaaminen ei tarjonnut mitenkään loisteliasta suorituskykyä. Seuraavassa iteraatiossa Microsoft toi ADLS storagen rinnalle Premium-ominaisuutena SQL-välimuistin; Enhanced Compute Enginen. Lupaus oli, että jakamalla Dataflow:t erillisiin “ingestion” (staging) ja “transformation” -kerroksiin, taustalla olevaa SQL-välimuistia pystytään hyödyntämään raskaampiin transformaatioihin. Tästä aiheesta löytyy lisää esim. täältä.

Seuraava iteraatio nähtiin Fabricin julkaisun myötä. Dataflow Gen2 kerrotaan olevan merkittävästi edeltäjäänsä suorituskykyisempi. Aiemmasta versiosta tuttu SQL-välimuisti on korvattu Staging Storagella (Lakehouse) ja Warehousella, jotka luodaan näkyville työtilaan automaattisesti Dataflow Gen2 luomisen yhteydessä. Microsoftin mukaan näitä staging-resursseja pystytään hyödyntämään sekä transformaatioiden, että kyselyiden tulosten takaisin kirjoittamisen kanssa. Suorituskykyparannusten lisäksi toinen merkittävä uudistus Dataflow Gen2 on Data destination. Käyttäjä voi nyt valita mihin tietokantaan(!) tulokset kirjoitetaan. Ei siis enää CSV-tiedostojen kanssa pelaamista systeemin luomassa Data Lakessa. Kuulostaapa jälleen hyvältä!

Dataflows Gen2 arkkitehtuuri (Lähde: Microsoft Fabric Blog)

Artikkelissa kerrotaan myös, että pienempien ja kevyempien latausten ja transformaatioiden kanssa erillistä staging-kerrosta (Enable / Disable load Power Queryssä) ei välttämättä tarvita. Tarve stage-lataukselle riippunee myös datalähteestä. Artikkelin esimerkissä lähteenä oli Azure SQL -kanta, jolloin kysely saadaan luultavasti nopeammin takaisin lähteeltä kuin mitä stage-lataukseen ja sen hyödyntämiseen menisi aikaa. Staging-ominaisuudesta lisää mm. täällä. Dataflow Gen1 ja Gen2 eroja taas on avattu tarkemmin mm. täällä. Testataanpa suorituskykyä käytännössä.

Testi

Käytän tässä esimerkissä 12 miljoonan rivin myyntidataa sisältävää IowaSales-taulua (CSV~3,2 GB) jonka haen Sharepointista. Lataan taulun kahteen kertaan ja teen Merge-operaation taulujen välille. Sen jälkeen tehdään vielä Expand-operaatio yhdistetyn taulun sarakkeelle, ja groupataan taulu City-sarakkeen ja expandatun sarakkeen summan mukaan.

Power Queryn vaiheet

Tehdään temppu ensin Dataflow Gen1 -objektilla ilman erillistä ingestion (staging) Dataflow:ta. Enhanced Compute Engine -asetus on tässä oletuksena päällä. Refresh vei aikaa noin 22 minuuttia. Refresh historystä nähdään, että staging-operaatio lienee tapahtunut myös tässä latauksessa, sillä merge-operaatio on suoritettu SQL-välimuistia vasten ("Folded"). Dataflow siis osasi hyödyntää välimuistia vaikka erillistä Ingestion (staging) Dataflow:ta ei tehty.

Refreshin tiedot

Seuraavaksi tehdään sama temppu käyttämällä Dataflow Gen2 asettamatta data destinationia. Nyt siis pitäisi tapahtua niin, että Dataflow hyödyntää uusia Staging-resursseja (Lakehouse ja Warehouse) transformaatioiden tekoon, ja suoritus pitäisi olla vähintään yhtä nopea. Refresh kesti tällä kertaa noin 15 minuuttia. Vajaan kolmanneksen parannus päivitysnopeuteen - ei paha. Ajoin molemmat päivitykset kolmeen kertaan samankaltaisin tuloksin.

Gen2 refreshin tiedot. Harmillisesti päivityksestä on tarjolla vähemmän lisätietoja kuin Gen1 kohdalla

Tässä yksinkertaisessa esimerkissä saatiin siis jonkinlaisia tuloksia suorituskyvyn parantumisesta. Äkkiseltään näyttäisi siltä, että uusien staging-resurssien hyödyntäminen todella parantaa transformaatioiden suorituskykyä verrattuna Gen1:n SQL-välimuistiin. Mikäli blogipostauksessa avattua suorituslogiikkaa on uskominen, myöskään kaksivaiheista Ingestion-Transformation -kuviota ei tarvitsisi enää rakentaa, vaan sekä lataus- että transformaatiokyselyt voisi tallentaa samaan Dataflow:hun, kuten tässä testissä tehtiin.

Okei, mitäs nyt?

Dataflow Gen2 tuo monia kaivattuja uutuuksia Power BI Dataflow -tuotteeseen, joista tärkeimpinä suorituskyvyn parannukset (High scale compute) ja Data destinations. Muistetaan myös, että tuote on Preview-vaiheessa. Tämä testi voi antaa osviittaa lopullisesta suorituskyvystä, mutta myös parannuksia voidaan vielä nähdä. Jäämme odottelemaan päivityksiä tähän tavallista taitavamman businesskäyttäjän integraatiotyökaluun.


Psst. Mikäli kiinnostuit Power BI Dataflow:sta johonkin organisaatiosi datan muokkaustarpeeseen, ota yhteyttä kirjoittajaan. Esittelemme ko. toiminnallisuutta mielellämme!

Avainsanat:

Microsoft,

Fabric,

Power BI,

Dataflow

Timi Lantela
Timi LantelaBI-kehittäjä

Timi on BI-kehittäjä ja keittiödatainsinööri jonka kiinnostuksen kohteisiin kuuluvat Microsoftin datatuotteiden lisäksi talviuinti, tennis ja suomirap.

timi@dataclinic.fi+358407218652

Tilaa blogin uutiskirje

Saa ilmoitus sähköpostiisi uusista julkaisuistamme dataan ja teknologioihin liittyen

Data Clinic logo

Nosta liiketoimintasi uudelle tasolle

Yhteystiedot

+358 50 551 9293

Osoite

Siltasaarenkatu 12 C, 8. kerros

00530 Helsinki

Laskutus

Näkemystä datasi hyödyntämiseen

© 2024 Data Clinic Oy

Tämä sivusto käyttää evästeitä palveluiden toimittamisessa, käyttäjäkokemuksen parantamisessa ja liikenteen analysoinnissa