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
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.
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
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.