Hae it-yrityksiä
osaamisalueittain:

Snowflake ja Power BI -raportointi hyödyntäen yhdistelmämalleja

BloggausLiiketoiminnan raportointi- ja analytiikkatarpeiden kehittyessä useat yritykset ovat siirtyneet tai siirtymässä käyttämään tietovarastoinnissaan pilvipohjaisia ratkaisuja.


Syy tähän on ilmeinen, kun tarkastellaan asiaa tiedon latauksessa, käsittelyssä ja varastoinnissa käytettävien prosessien evoluution näkökulmasta.

Kuten alla oleva kuva* hyvin havainnollistaa, poiketen perinteisistä ETL-prosesseista, joissa raporteilla ja analytiikassa hyödynnettävät tietomassat tuodaan aggregoituna ja mallinnettuna raportoinnin käyttämiin analyysimalleihin, moderneissa ELT-prosesseissa suuret tietomassat tuodaan suorituskykyisiin tietovarastoihin.

Koska modernien ELT-ratkaisuiden toteuttaminen paikallisina (on-premises) ratkaisuina ovat vaaditun suoritin- ja tallennuskapasiteetin näkökulmasta kustannustehotonta, joustavasti skaalautuvat pilvipohjaiset tietovarastopalvelut (cloud data warehouse) ovat syrjäyttämässä niitä kiihtyvällä tahdilla.


* Kuva 1: ETL-prosessien vertailu.


Pilvipohjaisia tietovarastopalveluita tarjoavat isot jo perinteisiksi mielletyt alan toimijat, kuten Microsoft, Amazon ja Google. Edellä mainittujen rinnalla on kuitenkin kehittymässä varteenotettavia vaihtoehtoja, joista ehkä suurimmassa nosteessa on viime aikoina ollut vuonna 2015 palveluna julkaistu
Snowflake, joka tarjoaa käyttäjilleen erityisesti hinnaltaan kilpailukykyistä prosessointikapasiteettia ja tallennustilaa. Täysin puolueettoman palveluiden vertailutiedon puuttuessa luotimme myös suhteellisen tuoreen integraatiopalvelua tarjoavan Fivetran julkaisemaan vertailuun palveluiden suorituskyvystä ja kustannuksista.


Kuva 2: Nopeusvertailu.

Kuva 3: Hintavertailu.

Kuten blogin otsikostakin voi päätellä, edellä mainituista palveluista tarkemman tutkinnan alle päätyi Snowflake erityisesti siitä syystä, että se on lupausten mukaisesti hiljattain julkaistu Azuren päällä pyörivänä palveluna myös Euroopassa (west-europe.azure) sijaitsevassa datakeskuksessa.

Palveluun on mahdollista tutustua ilmaiseksi 30pv/400$ (credit) edestä, joka on varsin riittävä palveluun perehtymiseen. Raskaat operaatiot ja valittu palvelinkapasiteetti (warehouse) kuluttavat saldoa yllättävänkin nopeasti, joten palvelinkapasiteetin automaattinen alasajo (suspend) kannattaa erityisesti kehitysvaiheessa asettaa tapahtumaan mahdollisimman nopeasti. Koska käytössä on enemmän kuin riittävästi sample dataa (suurimmat taulut yli 100 mrd. riviä), aineiston aggregointiin ja mallintamiseen kannattaa käyttää ”normaalia” enemmän aikaa.


Kuva 4: Snowflake-käyttöliittymä.

Power BI -raportointi Snowflaken päältä on ODBC-ajurin asentamisen jälkeen suoraviivaista ja suurten tietomassojen päältä tehtävän raportoinnin suorituskykyä parantaa merkittävästi uusimmissa Power BI Desktop* -versioissa tuettu tietokantayhteyksien yhdistelmämallien (Composite Model) käyttö. Tietokantayhteyksien yhdistelmämallilla tarkoitetaan DirectQuery- ja Import-yhteyksien hybridikäyttöä ja se mahdollistaa raportilla käytettävien tietojen osittamisen siten, että kaikkia näytettäviä tietoja ei tarvitse laskea kyselyllä tietokannasta. Tämä yhdistettynä tietojen aggregointiin, saadaan raportin toimintaan nopeutta ja käyttömukavuus kasvaa varsinkin, jos datamassa on kasvanut suureksi.

*Käytetty Power BI Desktop -versio: 2.65.5313.701 64-bit (December 2018)

Testasimme raportoinnin suorituskykyä vertaamalla DirectQuery-yhteydellä toteutettua ratkaisua yhdistelmämallilla ja tietojen aggregoinnilla toteutettuun raportointiratkaisuun. Kuten oletettua, havaitsimme näiden suorituskyvyissä selkeitä eroja. Yhdistelmämallin ratkaisussa tiedot latautuvat raportille murto-osassa verrattuna DirectQuery-hakuihin. Todensimme saman myös Dax Studion -kyselyillä, jossa DirectQuery-yhteydellä tehty 1,7 miljardin rivin tietojen summaus kesti kymmeniä sekunteja, kun taas yhdistelmämallin ratkaisu palautti saman kyselyn tulokset alle sekunnin kymmenyksessä.

*Lähdekantana käytössä Snowflaken tarjoama testitietokanta sekä kevyin X-Small kokoinen palvelinklusteri (warehouse).


Kuva 5: Suorituskykyerot.

Yhdistelmämallin nopeus perustuu siihen, että summatut tiedot on jo laskettu etukäteen erilliseen aggregointitauluun ja ladattu Import-yhteydellä raporttiin. Varsinkin suurten datamassojen kanssa, kun ei tarvitse raportoida rivitason tietoja vaan summatut arvot riittävät, tämä on erinomainen vaihtoehto raportin toiminnan nopeuttamiseen.


Kuva 6: Aggregointitaulu tietomallissa.

Myös Power BI -raportoinnissa on hyvä muistaa, että Snowflake, kuten muutkin pilvipohjaiset tietovarastot (BigQuery, RedShift, Azure SQL Data Warehouse) käyttävät kyselyiden nopeuttamiseksi välimuistia, jolloin samoja toistuvia kyselyjä ei tehdä suoraan kantaan, vaan tulokset haetaan välimuistista. Snowflaken tapauksessa kyselyjen tulokset säilyvät välimuistissa 24 tuntia viimeisimmästä kyselystä, mutta ominaisuus on mahdollista poistaa käytöstä USE_CACHED_RESULT parametrillä. Ominaisuuden poistaminen käytöstä on varsin suositeltavaa erityisesti raportin kehitysvaiheessa, koska on hyvin mahdollista, että samoja kyselyjä toistetaan testausvaiheessa ja kyselyjen suorituskyky saattaa vaikuttaa paremmalta, kuin se todellisessa käyttötilanteessa on.

Plussat

  • Nopea suurien datamassojen raportointi, kun ei ole tarvetta raportoida rivikohtaisia tietoja
  • Snowflake mahdollistaa palvelinklusterin resurssien skaalaamisen tarpeen mukaan
  • Mahdollisuus määrittää Snowflaken palvelinkapasiteetille automaattinen alasajo (Suspend), mikäli palvelin on käyttämättä.

Miinukset

  • Power BI -palvelusta ei saa suoraan yhteyttä Snowflake-tietokantaan, vaan tätä varten tulee määrittää Gateway-yhteys ja asentaa Gateway-palvelimelle ODBC-ajuri
  • Komposiittimallin Import-toiminnallisuus hävittää mahdollisuuden reaaliaikaiseen raportointiin

Muita huomioita

  • Suurten tietojoukkojen (> 1GB) käyttö vaatii Power BI Premium -tilauksen
  • Suurten tietojoukkojen päivityksessä kannattaa käyttää ”Incremental refresh” ominaisuutta

Kuva 7: Raportti Power BI -palvelussa.

Linkkejä:

https://aptitive.com/blog/how-snowflake-fits-into-your-exiting-azure-environment/

https://docs.snowflake.net/manuals/user-guide/querying-persisted-results.html#using-persisted-query-results

https://dzone.com/articles/performance-caching-in-snowflake-data-warehouse


Kirjoittajat: Mika Kouvo & Jukka Heikkilä


Pinterest
Invenco Oy

Lisätietoja

Yritysprofiili Invenco kotisivut

Tagit

Jos tarjontatagi on sininen, pääset klikkaamalla sen kuvaukseen

Liiketoimintaprosessi

Tietohallinto

Erikoisosaaminen

Pilvipalvelut / SaaS

Teknologia

Microsoft

Omat tagit

snowflake
microsoft power bi

Siirry yrityksen profiiliin Invenco kotisivut Yrityshaku Referenssihaku Julkaisuhaku

Invenco - Asiantuntijat ja yhteyshenkilöt

Asiantuntijoita ja yhteyshenkilöitä ei ole vielä kuvattu.

Invenco - Muita referenssejä

Invenco - Muita bloggauksia

Digitalisaatio & innovaatiot blogimedia

Blogimediamme käsittelee tulevaisuuden liiketoimintaa, digitaalisia innovaatioita ja internet-ajan ilmiöitä

Pyöräilysää-palvelu kannustaa tamperelaisia ilmastoystävälliseen liikkumiseen säässä kuin säässä
Tutkimus: koronaviruksen vaikutukset suomalaisten työhön - Poikkeusolot vähensivät vuorovaikutusta työkaverien välillä
Teknologiayhtiöt IWA ja NXme yhdistyvät - uusi yli 100 asiantuntijaa työllistävä Oivan kasvaa koronasta huolimatta

Etusivu Yrityshaku Pikahaku Referenssihaku Julkaisuhaku Blogimedia