Vzťahy M:N sú konečne v Power BI!

Keď ste niekedy používali PowerPivot alebo Power BI, tak ste pri prepájaní tabuliek takmer vždy narazili na problém, že aspoň na jednej strane prepojenia musí byť stĺpec s unikátnymi hodnotami. Toto sa riešilo zvyčajne rôznymi trikmi, ako prepojenie pomocou medzitabuliek so stĺpcom s unikátnymi hodnotami (napr. ako popisujem v mojej knihe o Power BI). Od júlovej aktualizácie Power BI Desktopu však PowerPivot podporuje aj prepájanie tabuliek pomocou podpory pre vzťahy M:N, čím efektívne odstraňuje hore uvedenú podmienku, aj potrebu ju obchádzať. A de facto umožňuje prepojiť ľubovoľné dva stĺpce v dátovom modeli. A je to definitívne jedna z najväčších noviniek v PowerPivote za posledné roky, ktorá tam chýbala ako soľ. Preto sa na ňu teraz pozrieme bližšie.

Podpora pre vzťahy M:N je momentálne v preview režime, takže je možné, že do jej finálneho vydania sa jej fungovanie ešte mierne zmení, a že momentálne bude ešte obsahovať drobné chyby či obmedzenia. Základné použitie však funguje bez problémov už teraz.

Aktualizácia 3.5.2019: Detailný popis tejto funkcionality nájdete v tomto článku.

Povedzme, že máme takéto tabuľky v dátovom modeli, kde prvá je tabuľka objednávok, ktoré boli zadané na danej pobočke, a druhá je plánovacia tabuľka pre dané pobočky na dva roky, špecifikujúca aký majú dané pobočky dosiahnuť obrat v danom roku:

Teraz by sme tieto tabuľky chceli prepojiť cez stĺpec Pobočka, aby sme mohli vyhodnotiť aktuálny stav voči plánu. Keď to však skúsite v aktuálnej verzii PowerPivotu či Power BI, tak dostanete takéto chybové hlásenie:

Je to preto, lebo nie je splnená základná podmienka pre vytváranie prepojení, že aspoň na jednej strane prepojenia musí byť stĺpec s unikátnymi hodnotami. Hodnoty v oboch prepájaných stĺpcoch sa totižto opakujú.

Štandardné riešenie je vyrobiť v dátovom modeli ďalšiu tabuľku s jedným stĺpcom, ktorý bude obsahovať iba unikátne hodnoty z jedného alebo druhého stĺpca Pobočka, a prepojenie tabuliek cez neho:

Júlová aktualizácia Power BI Desktopu, a tým pádom aj všetky budúce verzie a implementácie PowerPivotu, však pridávajú podporu pre vzťahy M:N, a odstraňujú potrebu to takto obchádzať vo väčšine dátových modelov. Podpora pre vzťahy M:N je súčasťou väčšieho funkčného celku nazvaného Zložené modely, umožňujúce okrem iného kombinovať dáta v režime importu a v režime DirectQuery z viacerých dátových zdrojov súčasne. Túto funkcionalitu je potrebné najprv zapnúť vo funkciách preview.

Keď chcete zapnúť túto funkcionalitu, choďte do nastavení Power BI Desktopu cez menu Súbor -> Možnosti a nastavenia -> Možnosti:

V tomto okne kliknite naľavo na Funkcie verzie Preview, a potom zakliknite položku Zložené modely:

Potom stlačte tlačidlo OK naspodu okna, potvrďte hlásenie o potrebe reštartu Power BI, a potom zavrite a znova spustite celý Power BI Desktop:

Dané dve tabuľky zo začiatku článku teraz pôjdu prepojiť priamo. Vrátime sa naspäť do stavu, keď sme mali v dátovom modeli iba tie dve neprepojené tabuľky. Prejdite teraz do zobrazenia vzťahov, a prepojte tieto dve tabuľky cez stĺpec Pobočka v oboch tabuľkách klasickým potiahnutím jedného stĺpca na druhý. Výsledok bude vyzerať takto:

Všimnite si, že vytvorilo prepojenie, kde na oboch jeho koncoch je hviezdička. Takto sú zobrazené vzťahy M:N. Keď si dané prepojenie rozkliknete, tak v okne s jeho nastaveniami uvidíte nový typ prepojenia Many to many, niekedy aj s upozornením:

Následne nie je problém vyrobiť z týchto tabuliek klasický report, zobrazujúci aktuálny vs. plánovaný stav po každej pobočke:

Takto ľahké je teda po novom prepájanie tabuliek. Dajte si však pozor, že ešte nie je dokončené, a je v režime preview, dokým táto funkcionalita nebude vyladená. Takisto sa v tomto režime správajú prepojenia medzi tabuľkami mierne odlišne, a na takéto dátové modely sa vo vašom prípade môžu vzťahovať niektoré z aktuálnych obmedzení, popísaných v odkaze nižšie. Napr. že takéto reporty ešte nie je možné publikovať do cloudu (ale paradoxne asi bude možné ich publikovať do augustového vydania Power BI Report Servera). V tomto stave to nemá zmysel rozoberať, keďže do finálneho vydania ostáva ešte bližšie neurčený čas. A vzhľadom na to, že ide o veľkú architekturálnu aktualizáciu PowerPivotu, tak sa niektoré veci ešte určite zmenia. Každopádne, už teraz môžete túto funkcionalitu využívať aspoň v lokálnych reportoch, a výrazne si tým uľahčiť nielen vytváranie základných, ale aj pokročilých dátových modelov a reportov 🙂

Zdroj:

https://docs.microsoft.com/en-us/power-bi/desktop-many-to-many-relationships

2 komentárov k “Vzťahy M:N sú konečne v Power BI!

  • 30. júla 2018 at 14:48
    Permalink

    Môžem M:N relácie použiť už aj v Power Pivote, alebo tam sa to objaví, až keď bude Composite Model funkcionalita v ostrej verzií PBI? Ďakujem

    • 31. júla 2018 at 9:07
      Permalink

      V excelovskom PowerPivote to zatiaľ nie je, a bohvie kedy to tam bude. Keďže terajší excelovský PowerPivot v Exceli 2016 a Office 365 nemá pozapínanú ešte stále všetku funkcionalitu z roku 2015… Takže zatiaľ iba v PBI, a predpokladám, že v blízkej dobe aj v SSAS Tabulare.

Komentáre sú uzavreté.