Hae it-yrityksiä
osaamisalueittain:

Asiakkuudenhallinta CRM BI ja raportointi HR Tuotekehitys ja suunnittelu Toiminnanohjaus ERP Taloushallinto Markkinointi Webkehitys Mobiilikehitys Käyttöliittymäsuunnittelu Tietoturva Verkkokaupparatkaisut Ohjelmistokehitys Integraatiot Pilvipalvelut / SaaS Tekoäly (AI) ja koneoppiminen Lisätty todellisuus ja VR Paikkatieto GIS IoT Microsoft SAP IBM Salesforce Amazon Web Services Javascript React PHP WordPress Drupal

Käytännön kokemuksia — Incremental Refresh ja partitioinnin automatisointi Power BI Pro:lla ja Microsoft Analysis Servicellä

BloggausIncremental Refresh (suom. lisäävä päivitys) on tarpeen raportointidatalle, kun kuutioiden ja datasettien tietomassa kasvaa suureksi. Tällöin yleensä puhutaan satojen miljoonien faktarivien lukumäärästä, joka pitää ladata raportointia/analysointia varten. Muuttumatonta historiadataa ei kannata ladata jatkuvasti uudelleen. Microsoftin kuutioteknologioissa lisäävä päivitys tarkoittaa faktadatan osittelua erillisiin partitioihin. Partitioinnin tehokkaaseen hallintaan tarvitaan automatisointia.

Useiden asiakkaiden raportointiympäristöissä on suunniteltu ja toteutettu raskaan datan päivityshaasteen ratkaisu lisäävällä päivityksellä Microsoftin kuutioteknologioihin.

Viimeisen vuoden aikana olen suunnitellut ja toteuttanut Incremental Refresh ‑automatisointiratkaisuja kolmella Microsoftin kuutiotuotteella: Power BI Pro/Premium, Analysis Services Tabular ja Analysis Services Multidimensional (Enterprise Edition) ‑ratkaisuilla. Kaikilla mainituilla teknologioilla on mahdollista päästä tehokkaaseen dynaamiseen suuren datamassan hallintaan helposti, nopeasti ja etuihin nähden pienellä työmäärällä sekä kustannuksilla. Käytännössä asiakkaan tarvitsee vain määrittää tallennettavien sekä muuttuvien historiadatojen liukuvien aikaikkunoiden rajat ja tarvittaessa tilamuutosten aikaleimojen saatavuus.

Power BI Pro

Alkukeväästä 2020 asti Power BI Pro ‑lisenssin käyttäjät ovat voineet käyttää Incremental Refresh ‑toiminnallisuutta pilvipalvelussa. Palvelu käsittelee datasetin taulujen fyysisen partitioinnin taustalla automaattisesti, kunhan dataset ja partitoitavat taulut on muokattu ja aseteltu yhteensopiviksi. Vain muuttuvaksi osuudeksi määritetyt rivit korvataan datasetin tauluista lisäävän päivityksen transaktiossa.

Ominaisuuden käyttöönottoon tarvitaan Power BI Desktopissa seuraavat muutokset:

  1. Datalähde: Osittain päivitettävän taulun aikarajausta varten on lähdetaulusta valittava DATETIME-tyypin kenttä, yleensä valitaan aikadimensio tai statuksen aikaleima.
  2. Taulun datapäivityksen aikaparametrit: Taulun päivitettävän osan aikaikkunalle luodaan alku- ja loppuparametrit PBI Servicelle varatuilla nimillä.
  3. Lähdekyselyn rajaussäännöt: Asetetaan rajaussäännöt kytkemällä luodut parametrit vertailuoperaattoreilla taulun aikadimensioon.
  4. Lisäävän päivityksen säännöt: Asetetaan koko tallennettavan datahistorian aikaikkuna ja valitaan valinnaisesti vain aikaleimalla muuttuneet rivit mukaan lisäävään päivitykseen.

Power BI Desktop ‑muutosten jälkeen dataset julkaistaan normaalisti raporttina palveluun. Datasetin asetuksista asetetaan ajastettu päivitys kuten tavallisesti. Power BI Pro ‑lisenssi rajaa osaltaan, kuinka monta kertaa vuorokaudessa Dataset voidaan päivittää.

Raporttikehityksen aikana käytetyllä lähdekyselyn aikarajauksella ei ole vaikutusta datasisältöön, kun Dataset on päivitetty palvelussa sitä varten erikseen asetetuilla rajauksilla.

Lisätietoja löytyy täältä.

Analysis Services

Microsoft Analysis Services ‑kuutioille on luotava koko partitiorakenne ja sen ylläpito erikseen. Etuna on silti, että yhdellä ja samalla automatisoidulla ratkaisulla voidaan korvata myös partitioinnin toteutukseen tarvittava manuaalinen muutostyö — jatkuvan ylläpidon lisäksi. Automatisoinnilla saavutetaan merkittävin kustannussäästö. Lisättäviä ja ylläpidettäviä partitioita voi syntyä suositellun kokoisina kymmeniä tai satoja kappaleita. Kynnyksenä automatisoinnin tehokkaaseen käyttöönottoon on usein kohdattu tekninen haastavuus. Kompetenssina skripti- tai olio-ohjelmointikielen työkokemus kuutiokehityksen lisäksi riittää toteutukseen.

Kuutioiden partitioimiseksi ei tarvitse välttämättä toteuttaa muutoksia editorissa lainkaan. Tämä mahdollisuus tekee ratkaisusta erittäin helposti laajennettavan. Dynaamisen ylläpitoskriptin suoritus riittää liukuvien aikaikkunoiden partitiorakenteiden hallintaan joko ajastetun päivityksen yhteydessä, aina julkaisun jälkeen ja käytännössä milloin tahansa suoritettuna. SSAS-kuutioiden hallinta ja automatisointi toteutuu tehokkaasti standardeilla työkaluilla SQL Server Agent & PowerShell Script. On myös mahdollista kytkeä tietovaraston kantataulujen partitiointi saman automatiikan runkoon mukaan.

Kuutiopartitioinnin määrittämiseksi tunnistetaan selkeä luokittelu kunkin faktadatan tyypistä ja juuri siihen sovellettavasta historiointiprosessista. Haetaan vastaukset kysymyksiin kuten missä aikaikkunassa historiadata voi ylipäätänsä muuttua, millä aikadimensiolla muuttuvaa osuutta rajataan tai lisättävää osuutta kasvatetaan kerrallaan vai hallitaanko esim. tilasiirtymien minimimuutosta statusten aikaleimoja tutkien. Tällaiset aiheet voivat olla valmiiksi tiedossa ja ne ovat usein jo käsitelty kun datalähteenä on tietovarasto.

SSAS-kuutioiden partitioinnin käyttöönottoon tarvitaan datalähteen rajaukseen tiedot:

  • Osittain päivitettävän kuutiotaulun tai kuutiofaktan aikarajausta varten on lähdetaulusta valittava kenttä, yleensä valitaan aikadimensio tai statuksen aikaleima.

PowerShell-skriptissä käsitellään partitioinnin hallinta:

  • Taulun tai faktan datapäivityksen aikaparametrit: Asetetaan skriptille parametreina aikarajat. Tarkastetaan partitioiden nykytila ja luodaan alkuperäisen faktarakenteen mukaan tarvittavat lisättävät osuudet nimettyinä partitioina dynaamisesti. Skripti evaluoi ja asettaa tarvittavat tiedot esim. liukuvan aikaikkunan mukaisesti. Tarpeettomat vanhimmat partitiot poistetaan aikarajan parametrien mukaan.
  • Lähdekyselyn rajaussäännöt: Asetetaan määritetyt lähdedatan rajaussäännöt kuhunkin uuteen luotuun partitioon dynaamisesti. MULTIDIM:ssä asetetaan lisäksi dimension Slice.
  • Lisäävän päivityksen säännöt: Kukin kokonainen rajauksin määritetty partitio on pienin kerralla prosessoitava faktadatan muutosyksikkö MULTIDIM-kuutiossa. Sama logiikka on selkeä hallita myös TABULAR-kuutiossa, vaikka se tukee muitakin menetelmiä (Process Add). Tärkeä syy on rinnakkaisuuden saavuttaminen erillisillä partitioilla molemmilla teknologioilla.

SQL Server Agent kontrolloi rakenteen päivitystä:

  • Kuvattu partitioinnin PowerShell-skripti suoritetaan siis ennen datan virkistystä kuutioissa. Se voidaan suorittaa vaikkapa päivittäin, koska skripti ohjataan lisäämään ja poistamaan partitiot vain tarvittaessa.
  • SSAS komennetaan prosessoimaan vain muuttuneet tai lisätyt partitiot. Process Default ‑komento prosessoi tyhjät partitiot.
  • Siirtymätilojen muuttuvat faktapartitiot prosessoidaan samassa transaktiossa, jolloin aukkoja ei synny ja kokonainen ehjä muuttumaton historia pysyy ennallaan. Historiastatukseenkin siirtymät voidaan esittää normaalisti dimensiohierarkian koostetasoon summattuna. Esim. Suljetut tilaukset pitää sisällään vanhat suljetut ja viikon siirtymäaikana suljetut tilaukset. Vain avoimien ja siirtymän aikana suljettujen tilausten muuttuneet partitiot prosessoidaan minimilatauksena päivittäin ennen seuraavaa täyslatausta viikonloppuna.

Saavutetut edut ja hyödyt pähkinänkuoressa:

  • Muutamalla kymmenellä koodirivillä MS:n vakiotyökaluin saadaan isokin kuutiofakta nopeasti ja edullisesti hallittaviin partitioihin.
  • Designiin ei välttämättä tarvitse tehdä muutoksia. Helppo lisätä jälkeenpäin.
  • Automatisointi minimoi myös jatkuvan ylläpitotyön.
  • Päivittäisessä arkikäytössä tai nopeissa muutostilanteissa ei tarvitse aina tehdä suuria ja raskaita kuutioprosessointeja.
  • Palvelinresurssit vapautuu muuhun käyttöön ja läpimenoajat ovat minimaalisia.
  • Myös täyslataus (SSAS Process Full) nopeutuu merkittävästi, kun isot faktat prosessoidaan rinnakkaisilla kyselyillä SSAS:n hallitessa itsenäisesti rinnakkaisuutta.

Suuren datan koosteisiin lisäävä päivitys ja partitiointi näyttää nykyisin olevan enemmänkin vakiotarve kuin lisämauste. Pyrimme osaltamme madaltamaan kynnystä ketterään datan hallintaan. Jos Microsoft Power BI:n Incremental Refresh tai Analysis Services ‑partitiointi ja automatisointi herättää kysymyksiä niin autamme mielellämme!

Kristo Raekunnas

Principal Consultant

kristo.raekunnas@invenco.fi

Puh. +358 40 046 9274

Pinterest
Invenco Oy logo

Lisätietoja

Yritysprofiili Invenco kotisivut

Tagit

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

Liiketoimintaprosessi

BI ja raportointi
Taloushallinto

Erikoisosaaminen

Analytiikka

Teknologia

Microsoft

Tarjonnan tyyppi

Konsultointi
Toteutustyö
Tuki- ja ylläpitotyö

Omat tagit

Microsoft PowerBI
azure analysis services

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ä

Etusivu Yrityshaku Pikahaku Referenssihaku Julkaisuhaku Blogimedia