Používanie zložených modelov v aplikácii Power BI Desktop

Pokiaľ ste v minulosti v aplikácii Power BI Desktop použili v zostave režim DirectQuery, žiadne iné pripojenia údajov pre danú zostavu neboli povolené, či už išlo o režim DirectQuery alebo Import. V prípade zložených modelov sa toto obmedzenie odstránilo. Zostava tak môže bez problémov zahŕňať údajové pripojenia z viac než jedného režimu údajového pripojenia DirectQuery alebo Import, a to v ľubovoľnej kombinácii.

Možnosti zložených modelov v aplikácii Power BI Desktop tvoria tri súvisiace funkcie:

  • Zložené modely: Umožňujú, aby mala zostava dve alebo viac údajových pripojení z rôznych skupín zdrojov, ako je napríklad jedno alebo viacero pripojení v rámci režimu DirectQuery a pripojenie v rámci importu, dve alebo viac pripojení v rámci režimu DirectQuery alebo ľubovoľnú kombináciu. Tento článok sa podrobne venuje zloženým modelom.

  • Vzťahy typu many-to-many: Pomocou zložených modelov môžete medzi tabuľkami vytvoriť vzťahy typu many-to-many. Táto metóda odstraňuje požiadavky na jedinečné hodnoty v tabuľkách. Odstráni aj predchádzajúce riešenia, ako uvedenie nových tabuliek, len s cieľom vytvorenia vzťahov. Ďalšie informácie nájdete v téme Použitie vzťahov typu many-to-many v aplikácii Power BI Desktop.

  • Režim úložiska: odteraz môžete zadať, ktoré vizuály vytvárajú dotazy na serverové zdroje údajov. Tie, ktoré ho nevyžadujú, sú importované, dokonca aj keď sa zakladajú na režime DirectQuery. Táto funkcia pomáha zlepšiť výkon a znížiť počet načítaní na serveri. Predtým dokonca aj jednoduché vizuály, ako napríklad rýchle filtre, vytvárali dotazy na serverové zdroje. Ďalšie informácie nájdete v téme Spravovanie režimu úložiska v aplikácii Power BI Desktop.

Používanie zložených modelov

Vďaka zloženým modelom sa môžete pri používaní aplikácie Power BI Desktop alebo služby Power BI pripojiť k rôznym typom zdrojov údajov. Tieto údajové pripojenia môžete vytvoriť viacerými spôsobmi:

  • Údaje môžete do služby Power BI importovať, čo je najbežnejší spôsob získania údajov.
  • K údajom sa môžete prostredníctvom režimu DirectQuery pripojiť priamo v ich pôvodnom zdrojovom odkladacom priestore. Ďalšie informácie o režime DirectQuery nájdete v téme Používanie režimu DirectQuery v službe Power BI.

Keď používate režim DirectQuery, zložené modely umožňujú vytvoriť model služby Power BI (napríklad jednoduchý súbor aplikácie Power BI Desktop s príponou .pbix), ktorý umožňuje jednu alebo obe nasledujúce akcie:

  • Kombinovanie údajov z jedného alebo viacerých zdrojov režimu DirectQuery.
  • Kombinovanie údajov zo zdrojov režimu DirectQuery a Import.

Pomocou zložených modelov je možné napríklad vytvoriť model, ktorý kombinuje tieto typy údajov:

  • Údaje o predaji z podnikového skladu údajov.
  • Údaje o cieľoch predaja, ktoré sa nachádzajú v databáze SQL Servera podľa jednotlivých oddelení.
  • Údaje importované z tabuľkového hárka.

Model, ktorý spája údaje z viacerých zdrojov režimu DirectQuery alebo kombinuje údaje režimu DirectQuery s údajmi režimu Import, sa označuje ako zložený model.

Aj naďalej môžete vytvárať vzťahy medzi tabuľkami, a to dokonca aj vtedy, ak dané tabuľky pochádzajú z odlišných zdrojov. Všetky vzťahy zo zmiešaných zdrojov sa vytvárajú s kardinalitou many-to-many bez ohľadu na ich aktuálnu kardinalitu. Môžete ich zmeniť na kardinalitu One-to-many, Many-to-one alebo One-to-one. Podľa toho, akú kardinalitu nastavíte, vzťahy zmiešaných zdrojov majú odlišné správanie. Na načítanie hodnôt na strane one zo strany many nemôžete použiť funkcie jazyka DAX (Data Analysis Expressions). Je tiež možné, že zaznamenáte vplyv na výkonnosť v porovnaní so vzťahmi Many-to-many v rámci toho istého zdroja.

Poznámka

Pokiaľ ide o zložené modely, jediným zdrojom sú prakticky všetky importované tabuľky bez ohľadu na ich skutočný základný zdroj údajov.

Príklad zloženého modelu

Ako príklad zloženého modelu si predstavte zostavu, ktorá je pripojená k podnikovému skladu údajov na SQL Serveri prostredníctvom režimu DirectQuery. V tomto príklade sklad údajov obsahuje údaje tabuliek Predaj podľa krajiny, Štvrťrok a Bicykel (produkt) , ako môžete vidieť na nasledujúcom obrázku:

Zobrazenie vzťahov pre zložené modely

Teraz by ste mohli vytvoriť jednoduché vizuály s použitím polí z tohto zdroja. Nasledujúci obrázok zobrazuje celkový predaj za vybratý štvrťrok podľa údajov tabuľky ProductName (NázovProduktu).

Vizuál vychádzajúci z údajov

Čo však v prípade, ak máte údaje o produktových manažéroch, ktorí bol pridelení ku každému produktu, spolu s marketingovou prioritou, no tieto údaje sú spracované v tabuľkovom hárku Office Excelu? Ak chcete zobraziť Čiastku predaja podľa Produktového manažéra, pridanie týchto lokálnych údajov do podnikového skladu údajov možno nebude možné. Alebo by to prinajlepšom trvalo mesiace.

Údaje o predaji by sa mohli dať importovať zo skladu údajov, namiesto použitia režimu DirectQuery. A potom by sa mohli skombinovať s údajmi importovanými z tabuľkového hárka. Tento postup je však nerozumný, keďže niektoré dôvody aj tak vedú k použitiu režimu DirectQuery. Medzi tieto dôvody môže patriť:

  • Kombinácia pravidiel zabezpečenia vynútených v základom zdroji.
  • Potreba zobrazovať najnovšie údaje.
  • Celkový objem údajov.

A tu prichádzajú na rad zložené modely. Zložené modely vám umožňujú pripojiť sa k skladu údajov pomocou režimu DirectQuery a tiež použiť možnosť Načítať údaje pre ďalšie zdroje. V tomto príklade najskôr vytvoríme pripojenie režimu DirectQuery k podnikovému skladu údajov. Potom použijeme možnosť Načítať údaje, vyberieme Excel a prejdeme do tabuľkového hárka obsahujúceho naše lokálne údaje. Nakoniec importujeme tabuľkový hárok, ktorý obsahuje Názvy produktov, priradeného Manažéra predaja a Prioritu.

okno Navigátor

V zozname Polia teraz vidíme dve tabuľky: pôvodnú tabuľku Bicykel z SQL Servera a novú tabuľku ProduktovíManažéri. Nová tabuľka obsahuje údaje importované z Excelu.

Zobrazenie Polia daných tabuliek

Podobne aj v zobrazení vzťahov v aplikácii Power BI Desktop vidíme ďalšiu tabuľku s názvom ProduktovíManažéri.

Zobrazenie vzťahov daných tabuliek

Teraz musíme tieto tabuľky priradiť k ostatným tabuľkám v modeli. Ako zvyčajne vytvoríme vzťah medzi tabuľkou Bicykel z SQL Servera a importovanou tabuľkou ProduktovíManažéri. Konkrétne ide o vzťah medzi tabuľkami Bicykel[NázovProduktu] a ProduktovíManažéri[NázovProduktu] . Ako už bolo uvedené, všetky vzťahy, ktoré prechádzajú cez zdroj, majú predvolenú kardinalitu typu many-to-many.

Okno Vytvoriť vzťah

Keď sme vzťah vytvorili, podľa očakávaní sa objavil v zobrazení vzťahov v aplikácii Power BI Desktop.

Nové zobrazenie vzťahov

Teraz môžete vytvárať vizuály pomocou ktoréhokoľvek poľa v zozname Polia. Tento postup umožňuje bezproblémové miešanie údajov z viacerých zdrojov. Nasledujúci obrázok napríklad zobrazuje celkovú ČiastkuPredaja pre každého Produktového manažéra:

Tabla Polia

Tento príklad zobrazuje bežný prípad tabuľky dimenzií, akými sú napríklad tabuľky Produkt alebo Zákazník, ktorú rozširujú o dodatočné údaje importované z iného zdroja. Tiež je možné tabuľky pomocou režimu DirectQuery pripojiť k rôznym zdrojom. Pokračujeme v našom príklade. Predstavte si, že hodnoty Cieľov predaja na Krajinu počas istého Obdobia sú uložené v samostatnej databáze jednotlivých oddelení. Ako vidíte na nasledujúcom obrázku, na pripojenie k údajom môžete použiť možnosť Načítať údaje.

Okno Navigátor

Ako predtým, tak aj teraz môžeme vytvoriť vzťahy medzi novou tabuľkou a inými tabuľkami v modeli a vytvoriť vizuály, ktoré kombinujú ich údaje. Opäť sa pozrime na zobrazenie vzťahov, kde sme vytvorili nové vzťahy:

Zobrazenie vzťahov s početnými tabuľkami

Nasledujúci obrázok vychádza z nových údajov a vzťahov, ktoré sme vytvorili. Na vizuáli naľavo dole vidíme celkovú Čiastku predaja v porovnaní s Cieľom a výpočet odchýlky zobrazujúci rozdiel. Údaje v Čiastke predaja a Cieli pochádzajú z dvoch rôznych databáz SQL Servera.

Obrázok zobrazujúci viac údajov

Nastavenie režimu úložiska

Každá tabuľka v zloženom modeli má režim úložiska, ktorý označuje, či je tabuľka založená na režime DirectQuery alebo Import. Režim úložiska môžete zobraziť a upraviť na table Vlastnosť. Ak režim úložiska chcete zobraziť, kliknite pravým tlačidlom myši na tabuľku v zozname Polia a potom vyberte položku Vlastnosti. Nasledujúci obrázok zobrazuje režim úložiska pre tabuľku CielePredaja.

Režim úložiska možno vidieť aj na popise pre každú tabuľku.

Popis zobrazujúci režim úložiska

Pri všetkých súboroch aplikácie Power BI Desktop (súbor .pbix), ktoré obsahujú tabuľky z režimu DirectQuery aj tabuľky z režimu Import, sa režim úložiska v stavovom riadku zobrazuje s názvom Kombinované. Na daný výraz v stavovom riadku môžete kliknúť a jednoducho zmeniť všetky tabuľky na tabuľky režimu Import.

Ďalšie informácie o režime úložiska nájdete v téme Spravovanie režimu úložiska v aplikácii Power BI Desktop.

Poznámka

Režim kombinovaného úložiska môžete použiť v aplikácii Power BI Desktop a v službe Power BI.

Vypočítané tabuľky

Do modelu, ktorý používa režim DirectQuery, môžete pridať vypočítané tabuľky. Výrazy DAX (Data Analysis Expressions), ktoré definujú vypočítané tabuľky, môžu odkazovať buď na importované tabuľky, na tabuľky režimu DirectQuery, alebo na kombináciou oboch typov.

Vypočítané tabuľky sú vždy importované a ich údaje sa obnovia, keď obnovíte tabuľky. Ak vypočítaná tabuľka odkazuje na tabuľku režimu DirectQuery, vizuály odkazujúce na tabuľku režimu DirectQuery vždy zobrazujú najnovšie hodnoty v základnom zdroji. Naopak vizuály odkazujúce na vypočítanú tabuľku zobrazujú hodnoty z času, keď bola vypočítaná tabuľka naposledy obnovená.

Vplyv na zabezpečenie

Zložené modely majú istým spôsobom vplyv na zabezpečenie. Dotaz odoslaný do jedného zdroja údajov môže zahŕňať hodnoty údajov získané z iného zdroja. V predchádzajúcom príklade vizuál, ktorý zobrazuje (Sales Amount) (Čiastku predaja) podľa Product Manager (Produktového manažéra), odošle dotaz SQL do relačnej databázy Sales (Predaj). Daný dotaz SQL môže obsahovať mená produktových manažérov a im priradené produkty.

Skript zobrazujúci vplyv na zabezpečenie

Z tohto dôvodu informácie uložené v tabuľkovom hárku sú teraz zahrnuté v dotaze, ktorý bol odoslaný do relačnej databázy. Ak sú tieto informácie dôverné, mali by ste zvážiť zabezpečenie. Obzvlášť by ste sa mali zamerať na nasledujúce body:

  • Každý správca databázy, ktorý môže zobrazovať sledovania alebo denníky auditu, tieto informácie uvidí dokonca aj bez povolenia prístupu k údajom v ich pôvodnom zdroji. V tomto príklade by správca potreboval povolenie do excelového súboru.

  • Mali by ste zvážiť nastavenie šifrovania pre každý zdroj. Vyhnete sa tak situácii, že z jedného zdroja načítate informácie pomocou šifrovaného pripojenia a potom tieto informácie neúmyselne zahrniete do dotazu, ktorý sa odošle do iného zdroja prostredníctvom nešifrovaného pripojenia.

Keď vytvoríte zložený model, aplikácia Power BI Desktop zobrazí upozornenie, kde potvrdíte, že ste zohľadnili všetky možné vplyvy na zabezpečenie.

Okrem toho, ak autor pridá tabuľku1modelu A do zloženého modelu (nazveme ho model C), tak používateľ, ktorý si prezerá zostavu vytvorenú v modeli C by mohol dotazovať ľubovolnú tabuľkumodeli A, ktorá nie je chránená zabezpečením na úrovni riadkov.

Z podobných dôvodov by ste mali byť pri otváraní súboru aplikácie Power BI Desktop odoslaného z nedôveryhodného zdroja opatrní. Ak súbor obsahuje zložené modely, informácie, ktoré niekto načíta z jedného zdroja pomocou poverení používateľa otvárajúceho súbor, budú odoslané do iného zdroja údajov ako súčasť dotazu. Tieto informácie by tak mohol zobraziť autor súboru aplikácie Power BI Desktop, ktorý nemusí mať čisté úmysly. Pri prvom otvorení súboru aplikácie Power BI Desktop, ktorý obsahuje viacero zdrojov, sa zobrazí upozornenie. Toto upozornenie sa podobá na to, ktoré sa zobrazuje pri otváraní súboru obsahujúceho natívne dotazy SQL.

Vplyv na výkon

Keď používate režim DirectQuery, mali by ste vždy dbať na výkon, aby mal serverový zdroj dostatok prostriedkov na zabezpečenie dobrého výkonu pre používateľov. Pokiaľ funguje dobre, vizuály by sa mali obnoviť za 5 sekúnd alebo za kratší čas. Ďalšie rady týkajúce sa výkonu nájdete v téme Informácie o používaní režimu DirectQuery v službe Power BI.

Používanie zložených modelov so sebou prináša ďalšie faktory týkajúce sa výkonu, ktoré musíte brať do úvahy. Jeden vizuál môže odosielať dotazy do viacerých zdrojov, čo často prenesie výsledky jedného dotazu do druhého zdroja. Táto situácia sa môže skončiť takto:

  • Dotaz SQL obsahuje veľké množstvo explicitných hodnôt premennej: Napríklad vizuál, ktorý vyžaduje celkovú Čiastku predaja pre množinu vybratých Produktových manažérov by najskôr musel zistiť, ktoré Produkty títo produktoví manažéri spravovali. Táto sekvencia sa musí uskutočniť ešte predtým, ako vizuál odošle dotaz SQL obsahujúci všetky kódy Product ID v klauzule WHERE.

  • Dotaz SQL dotazuje na nižšej úrovni granularity a spolu s údajmi je potom lokálne agregovaný: Keďže počet produktov, ktoré spĺňajú kritériá filtra Product Manager (Produktový manažér), stále rastie, bolo by neefektívne prípadne neuskutočniteľné zahrnúť všetky produkty do klauzuly WHERE. Namiesto toho môžete vytvoriť dotaz relačného zdroja na nižšej úrovni produktu a potom výsledky agregovať lokálne. Ak kardinalita Produktov prekročí maximálny počet 1 milión, dotaz zlyhá.

  • Viacero dotazov SQL, jeden na skupinu podľa hodnoty: Pokiaľ agregácia používa funkciu DistinctCount a je zoskupená podľa stĺpca z iného zdroja, a ak externý zdroj nepodporuje efektívne odovzdávanie viacerých explicitných hodnôt premennej, ktoré zoskupenie definujú, je potrebné odoslať jeden dotaz SQL na skupinu podľa hodnoty.

    Vizuál, ktorý vyžaduje jedinečný počet v tabuľke CustomerAccountNumber (ČísloKontaZákazníka) z tabuľky SQL Servera podľa tabuľky Product Managers (Produktoví manažéri) importovanej z tabuľkového hárka, by musel preniesť podrobnosti z tabuľky Product Managers (Produktoví manažéri) do dotazu odoslaného do SQL Servera. Na rozdiel od iných zdrojov, ako je napríklad Redshift, táto akcia nie je možná. Namiesto toho sa odošle jeden dotaz SQL na manažéra predaja – až do určitého limitu, pri ktorom by dotaz zlyhal.

Každý z týchto prípadov vplýva na výkon svojím spôsobom a podrobnosti sa pri jednotlivých zdrojoch údajov líšia. Hoci kardinalita stĺpcov použitých vo vzťahu, ktorý spája dva zdroje, ostáva nízka (niekoľko tisíc), výkon by to ovplyvniť nemalo. Ako kardinalita rastie, mali by ste venovať väčšiu pozornosť vplyvu na výsledný výkon.

Okrem toho využitie vzťahov many-to-many znamená, že samostatné dotazy by sa radšej mali odoslať do základného zdroja pre každý súčet alebo medzisúčet, než aby sa agregácia podrobných hodnôt vykonávala lokálne. Jednoduchý vizuál tabuľky so súčtami by mal radšej odoslať dva dotazy SQL než jeden.

Obmedzenia a informácie

Táto verzia zložených modelov so sebou prináša niekoľko obmedzení:

V súčasnosti je prírastkové obnovenie podporované len pre zložené modely pripojené k zdrojom údajov SQL, Oracle a Teradata.

Nasledujúce multidimenzionálne zdroje Live Connect nie je možné používať so zloženými modelmi:

  • SAP HANA
  • SAP Business Warehouse
  • SQL Server Analysis Services
  • Množiny údajov služby Power BI
  • Azure Analysis Services

Keď sa k týmto multidimenzionálnym zdrojom pripojíte pomocou režimu DirectQuery, nemôžete sa pripojiť k ďalšiemu zdroju DirectQuery ani ich kombinovať s údajmi režimu Import.

Pri používaní zložených modelov aj naďalej platia existujúce obmedzenia režimu DirectQuery. Mnohé z týchto obmedzení sa teraz týkajú jednotlivých tabuliek v závislosti od ich režimu úložiska. Vypočítaný stĺpec v tabuľke režimu Import napríklad môže odkazovať na iné tabuľky, ale vypočítaný stĺpec v tabuľke režimu DirectQuery stále môže odkazovať iba na stĺpce v tej istej tabuľke. Ďalšie obmedzenia sa vzťahujú na model ako celok, ak je niektorá z tabuliek v rámci modelu v režime DirectQuery. Funkcia Rýchle prehľady napríklad nie je v modeli k dispozícii, ak niektorá z tabuliek v ňom má režim úložiska režimu DirectQuery.

Ďalšie kroky

Ďalšie informácie o zložených modeloch a režime DirectQuery nájdete v nasledujúcich článkoch: