Tento mesiac pribudla historická novinka v Power BI – možnosť kombinovať viaceré dátové modely v jednom reporte. Ktoré sú publikované buď v cloude Power BI, alebo v Azure Analysis Services. A časom aj v ďalších dátových zdrojoch. Týmto sa nielenže obišla nemožnosť kombinovať dáta z dátového modelu pripojeného v režime Live s inými dátovými zdrojmi, ale navyše to otvorilo ďalšie obrovské možnosti v dátovom modelovaní. A už sme veľmi blízko tomu, aby v Power BI išlo kombinovať čokoľvek s čímkoľvek. Doslova.
Možnosť kombinovať viaceré dátové modely
V polovici decembra 2020 nám ako vianočný darček od tímu Power BI pribudla dlho očakávaná novinka, ktorá nielenže uľahčí množstvo pokročilých reportovacích scenárov, ale postaví reporting v Power BI na vyššiu úroveň. Tou novinkou je možnosť kombinovať dáta z dátových modelov pripojených v režime Live s inými dátami z ľubovoľných iných dátových zdrojov.
Režim Live má obmedzenie v tom, že sa síce vie pripojiť k externému dátovému modelu, či už v cloude Power BI, v Azure Analysis Services alebo SSAS Tabulare a MD, ale potom do dátového modelu neviete pridať žiadne ďalšie tabuľky ani stĺpce. V určitých scenároch viete akože “pridať” merítka do dátového modelu, ale to je tak všetko. A keď chcete tie dáta kombinovať s inými dátami, tak musíte vytvoriť iný report, kde si môžete akurát tak naimportovať časť tých dát. Čo robí mnohé reportovacie scenáre buď nemožné, nepraktické, alebo veľmi komplikované. Ako napríklad v tomto staršom článku. Ak máte napríklad aktuálne údaje v jednom modeli, a plánovacie alebo budgetovacie údaje v druhom modeli, tak spojiť ich dohromady bolo možné len cez režim importu, a výsledné možnosti neboli zrovna vábne a mali ďaleko od plnej flexibility dátového modelu a reportingu.
Decembrové vydanie Power BI Desktopu prinieslo novinku v podobe režimu DirectQuery pre externé dátové modely, na ktoré sa doteraz dalo pripájať buď iba v režime importu alebo Live. Je to tak trochu paradox, pretože na externé dátové modely sa dá pripájať a dotazovať iba jazykmi DAX a MDX. Režim DirectQuery však používa jazyk SQL, ktorý síce používa každá klasická databáza, ale dátové modely ho nepoznajú (teda aspoň nie pre dotazovanie sa na dáta, iba na metadáta, ale to je už úplne o inom). Preto sa pozrieme aj na to, ako sa s tým Microsoft vysporiadal.
Pozrime sa však najprv na to, ako to vôbec použiť. Táto funkcionalita je v čase písania tohto článku ešte stále v režime preview, s množstvom obmedzení a bugov, ale v základom režime už ako-tak funguje. Preto ju v prvom rade treba povoliť v nastaveniach Power BI Desktopu, cez menu Súbor => Možnosti a nastavenia => Možnosti => Funkcie verzie Preview => “DirectQuery pre množiny údajov služby Power BI a Analysis Services”:
Po obligátnom reštarte Power BI Desktopu sa táto funkcionalita aktivuje.
Ako kombinovať viaceré dátové modely v Power BI
Najprv sa potrebujeme pripojiť v režime Live k externému dátovému modelu. Napríklad k dátovému modelu za reportom v cloude Power BI. To spravíme klasicky cez Získať údaje => Power Platform => Množiny údajov Power BI, vyberieme svoj dátový model, a dáme sa k nemu pripojiť. To nás pripojí v režime Live.
V ďalšom kroku potrebujeme prepnúť režim reportu z režimu Live do režimu DirectQuery. To spravíme v pravom dolnom rohu Power BI Desktopu, kliknutím na “Vykonať zmeny v tomto modeli”:
V nasledujúcom kroku potvrdíme zmenu, ktorá akože prepne dátový model do režimu DirectQuery. Čiže vytvorí lokálny dátový model v Power BI Desktope, a naimportuje metadáta z celého externého dátového modelu do lokálneho modelu v režime DirectQuery:
Po chvíľke čakania sa to dokončí, a dátový model bude v režime DirectQuery, čo je indikované v pravom dolnom rohu Power BI Desktopu namiesto hlásenia vyššie:
…a v modelovacom zobrazení uvidíme celú schému dátového modelu, vrátane dátového zdroja a indikácie režimu DirectQuery v hlavičkách tabuliek:
V ďalšom kroku si pridáme tabuľky z ďalšieho externého dátového modelu do tohto modelu. Rovnakým postupom ako v predchádzajúcom prípade, tentokrát “naimportujeme” napríklad tabuľky z jednoduchého plánovacieho modelu. Pri importe potvrdíme zostavenie klasického zloženého dátového modelu a potenciálne bezpečnostné riziko- spočívajúce len v tom, že hodnoty filtrov z jedného dátového zdroja sa počas reportingu posielajú do druhého dátového zdroja ako hodnoty filtrov nad týmto zdrojom:
…a po dokončení sa nám v dátovom modeli zobrazia tabuľky z druhého externého dátového modelu:
A ak používate nové modelovacie zobrazenie Power BI Desktopu, tak po novom sú tabuľky z rovnakého dátového zdroja v režime DirectQuery dokonca zvýraznené rovnakou farbou, čo podstatne uľahčí orientáciu.
V ďalšom kroku už len prepojíte tabuľky medzi sebou rovnako ako keby to boli klasické naimportované tabuľky, a máte hotovo:
Nakoniec už stačí iba prejsť do reportu a vytvoriť kontingenčku či graf, a nemožné sa za pár sekúnd stane možným:
V tomto prípade sme do oblasti riadkov použili pole CalendarYear z tabuľky Cas (z druhého dátového modelu), a do oblasti hodnôt sme dali merítko Obrat (z prvého dátového modelu) a zosumovaný stĺpec “Planovany obrat” (z druhého dátového modelu). A zafungovalo to hneď na prvýkrát na jednotku.
Čo je na tom ešte super?
Týmto však možnosti tejto funkcionality ešte nekončia. Okrem možnosti kombinovať viaceré dátové modely, to je totižto klasický zložený dátový model, čo znamená, že doňho môžete naimportovať ľubovoľné ďalšie tabuľky z ľubovoľných iných dátových zdrojov, alebo pripojiť ďalšie tabuľky v klasickom režime DirectQuery. Čiže môžete si tam doimportovať napríklad dodatočné tabuľky z Excelu či SQL Servera, aby ste obohatili analýzy ďalšími možnosťami, bez potreby meniť externé dátové modely. Čo je ultimátna možnosť, ako spojiť samoobslužné BI s podnikovým BI za pár sekúnd. A možnosti tvorivosti týmto ani zďaleka nekončia. Je to jednoducho pecka.
Je to však zatiaľ iba v preview režime, v množstvom bugov a obmedzení, ktoré tím Power BI sľúbil odstrániť vo finálnej verzii, ktorá tu nebude skôr ako za pár mesiacov. Či to naozaj odstránia alebo nie, je dosť otázne, pretože niečo podobné sľubovali aj pri agregáciách, a nakoniec skutek utek – nechali to nedokončené, len odstránili bugy. Takže budeme samozrejme veľmi radi, keď to v tomto prípade dokončia, ale radšej budeme optimizmom šetriť na neskôr 🙂
Ako to ale funguje? DirectQuery predsa používa jazyk SQL, či?
Vyššie sme si sľúbili, že sa pozrieme aj na to, ako to funguje. A na to sa pozrieme v ďalšom článku 😉
Autor, tréner a expert na PowerPivot, Power BI a jazyk DAX. Založil som tento web, aby som pomohol dostať PowerPivot a Power BI do širšieho povedomia, a aby som ľuďom ukázal, že aj komplexné analytické problémy idú riešiť jednoducho. Po nociach vzývam Majstra Yodu a tajne plánujem ovládnutie vesmíru.