Vytvorenie a spravovanie vzťahov v aplikácii Power BI Desktop

Ak máte viacero tabuliek, je pravdepodobné, že budete musieť vykonať niekoľko analýz s využitím údajov zo všetkých týchto tabuliek. Vzťahy medzi týmito tabuľkami sú nevyhnutné na vypočítanie presných výsledkov a zobrazenie správnych informácií vo vašich zostavách. Vo väčšine prípadov nebudete musieť robiť nič. Funkcia automatického zisťovania to robí za vás. Niekedy však možno budete musieť vytvoriť vzťahy vy alebo budete potrebovať vykonať vo vzťahu zmeny. V oboch smeroch je dôležité chápať vzťahy v aplikácii Power BI Desktop a vedieť ich vytvárať a upravovať.

Automatické zisťovanie počas načítania

Ak pri načítaní údajov vytvoríte dotaz na dve alebo viacero tabuliek súčasne, aplikácia Power BI Desktop sa pokúsi nájsť a vytvoriť vzťahy za vás. Možnosti vzťahu Kardinalita, Smer krížového filtrovania a Aktivovať tento vzťah sú nastavené automaticky. Power BI Desktop pri zisťovaní potenciálnych vzťahov pracuje s názvami stĺpcov v tabuľkách, na ktoré vytvárate dotaz. Ak existujú, tieto vzťahy sa vytvoria automaticky. Ak Power BI Desktop nemôže s vysokou mierou spoľahlivosti určiť zhodu, vzťah sa nevytvorí. Naďalej však môžete použiť dialógové okno Spravovanie vzťahov a vzťahy vytvoriť alebo upraviť manuálne.

Vytvorenie vzťahu pomocou funkcie Automatické zisťovanie

Na karte Modelovanie vyberte položky Spravovať vzťahy>Automaticky zistiť.

Animation showing how to create a relationship with autodetect.

Manuálne vytvorenie vzťahu

  1. Na karte Modelovanie vyberte položky Spravovať vzťahy>Nové.

  2. V dialógovom okne Vytvorenie vzťahu v rozbaľovacom zozname pre prvú tabuľku vyberte tabuľku. Vyberte stĺpec, ktorý chcete vo vzťahu použiť.

  3. V rozbaľovacom zozname pre druhú tabuľku vyberte inú tabuľku do vzťahu. Vyberte iný stĺpec, ktorý chcete použiť, a potom vyberte položku OK.

    Animation showing how to create a manual relationship.

Power BI Desktop pre nový vzťah predvolene automaticky nakonfiguruje možnosti Kardinalita (smer), Smer krížového filtrovania a Aktivovať tento vzťah . Tieto nastavenia však môžete v prípade potreby zmeniť. Ďalšie informácie nájdete v časti Vysvetlenie ďalších možností.

Ak žiadna z tabuliek vybratých pre vzťah neobsahuje jedinečné hodnoty, zobrazí sa nasledujúca chyba: Jeden zo stĺpcov musí obsahovať jedinečné hodnoty. Aspoň jedna tabuľka vo vzťahu musí mať jedinečný zoznam kľúčových hodnôt, čo je bežná požiadavka pre všetky technológie relačných databáz.

Ak sa vyskytne táto chyba, existuje niekoľko spôsobov na jej vyriešenie:

  • Pomocou možnosti Odstrániť duplikáty vytvorte stĺpec s jedinečnými hodnotami. Nevýhoda tohto prístupu je, že pri odstránení duplicitných riadkov môžete stratiť informácie. Kľúč (riadok) sa často duplikuje z dobrého dôvodu.
  • Pridajte do modelu sprostredkujme tabuľku obsahujúcu zoznam odlišných hodnôt kľúčov, ktorá sa potom priradí k obom pôvodným stĺpcom vo vzťahu.

Ďalšie informácie nájdete v tomto blogovom príspevku.

Prípadne môžete v rozloženiach diagramu Zobrazenie modelu presunúť myšou stĺpec z jednej tabuľky do stĺpca v inej tabuľke, čím sa vytvorí vzťah.

Úprava vzťahu

Existujú dva spôsoby, ako upraviť vzťah v službe Power BI.

Prvým spôsobom úpravy vzťahu je použitie možnosti úpravy vzťahov na table Vlastnosti v zobrazení modelu, kde môžete vybrať ľubovoľnú čiaru medzi dvoma tabuľkami a zobraziť možnosti vzťahu na table Vlastnosti . Nezabudnite rozbaliť tablu Vlastnosti a zobraziť možnosti vzťahu.

Screenshot of adjusting relationships in the properties pane.

Ukážku úpravy vzťahov vo videumôžete vidieť aj na table Vlastnosti.

Druhý spôsob úpravy vzťahu je použitie dialógového okna Editor vzťahov, ktoré môžete otvoriť mnohými spôsobmi v rámci aplikácie Power BI Desktop. Nasledujúci zoznam uvádza rôzne spôsoby, ako môžete otvoriť dialógové okno Editor vzťahov:

V zobrazení zostavy vykonajte niektoré z týchto krokov:

  • Na páse s nástrojmi Modelovanie vyberte položku> Spravovať vzťahy, potom vyberte vzťah a položku Upraviť.
  • Vyberte tabuľku v zozname Polia , potom na páse s nástrojmi Nástroje tabuľky vyberte pás s nástrojmi >Spravovanie vzťahov, potom vyberte vzťah a potom vyberte položku Upraviť.

V zobrazení Údaje vyberte pás s nástrojmi> Nástroje tabuľky Na spravovanie vzťahov, potom vyberte vzťah a potom vyberte položku Upraviť.

V zobrazení modelu vykonajte niektorý z týchto krokov:

  • Na páse s nástrojmi> Domov vyberte položku Spravovať vzťahy, potom vyberte vzťah a potom položku Upraviť.
  • Dvakrát kliknite na ľubovoľnú čiaru medzi dvoma tabuľkami.
  • Kliknite pravým tlačidlom myši na ľubovoľnú čiaru medzi dvoma tabuľkami a potom vyberte položku Vlastnosti.
  • Vyberte ľubovoľnú čiaru medzi dvoma tabuľkami a potom vyberte položku Otvoriť editor vzťahov na table Vlastnosti .

Nakoniec môžete vzťah upraviť aj z ľubovoľného zobrazenia, kliknúť pravým tlačidlom myši alebo vybrať tri bodky, čím sa dostanete do kontextovej ponuky ľubovoľnej tabuľky, potom vyberte položku Spravovať vzťahy, vyberte vzťah a potom vyberte položku Upraviť.

Na nasledujúcom obrázku je zobrazená snímka obrazovky okna Upraviť vzťah .

Screenshot of the edit relationship window.

Úprava vzťahov pomocou rôznych metód

Použitie dialógového okna Úprava vzťahov je interaktívnejšie prostredie na úpravu vzťahov v službe Power BI a v súčasnosti je vo verzii Preview. V každej tabuľke sa zobrazí ukážka údajov. Počas výberu rôznych stĺpcov okno automaticky overí vzťah a ponúka primeranú kardinalitu a výbery krížového filtrovania.

Úprava vzťahov na table Vlastnosti predstavuje zjednodušený prístup k úprave vzťahov v službe Power BI. Zobrazia sa len názvy tabuliek a stĺpce, z ktorých si môžete vybrať. Nezobrazujú sa vám ukážka údajov a vami vybraté vzťahy sa overia len po výbere položky Použiť zmeny. Používaním tably Vlastnosti a jej zjednodušeného prístupu sa zmenší počet dotazov vygenerovaných pri úprave vzťahu, čo môže byť dôležité pre scenáre spracovania veľkého objemu údajov, najmä pri používaní pripojení v režime DirectQuery. Vzťahy vytvorené pomocou tably Vlastnosti môžu byť tiež pokročilejšie ako vzťahy, ktoré je povolené vytvárať v dialógovom okne Úprava vzťahov.

Vzťahy s viacnásobným výberom môžete vybrať aj v rozloženiach diagramu Zobrazenie modelu stlačením klávesu Ctrl a výberom viacerých riadkov na výber viacerých vzťahov. Bežné vlastnosti môžete upravovať na table Vlastnosti a pomocou zmien môžete spracovať zmeny v jednej transakcii.

Vzťahy s jedným alebo viacerými vybratými položkami možno odstrániť aj stlačením klávesu Delete na klávesnici. Akciu odstránenia nie je možné vrátiť späť, takže sa zobrazí dialógové okno s výzvou na potvrdenie odstránenia vzťahov.

Dôležité

Úprava vzťahov v table vlastností je momentálne v režime ukážky. Zatiaľ čo v režime ukážky sa funkcie a dokumentácia pravdepodobne zmenia. Túto funkciu musíte povoliť v aplikácii Power BI Desktop. Prejdite na položky Súbor > Možnosti a nastavenia > Možnosti > Ukážka funkcií a potom v časti GLOBÁLNE začiarknite políčko vedľa tably Vzťah.

Konfigurácia ďalších možností

Pri vytváraní alebo úprave vzťahu môžete nakonfigurovať ďalšie možnosti. Podľa predvoleného nastavenia Power BI Desktop automaticky nakonfiguruje ďalšie možnosti na základe najlepšieho odhadu, ktorý sa môže líšiť pre každý vzťah v závislosti od údajov v stĺpci.

Kardinalita

Možnosť Kardinalita môže mať jedno z nasledujúcich nastavení:

Many to one (*:1): Vzťah many-to-one je najčastejším, predvoleným typom vzťahu. Znamená to, že stĺpec v danej tabuľke môže mať viac než jednu inštanciu hodnoty, a druhá súvisiaca tabuľka, ktorá sa často považuje za vyhľadávanú tabuľku, má iba jednu inštanciu hodnoty.

One to one (1:1): Vo vzťahu one-to-one má stĺpec v jednej tabuľke má iba jednu inštanciu konkrétnej hodnoty a súvisiaca tabuľka má iba jednu inštanciu konkrétnej hodnoty.

One to many (1:*): Vo vzťahu One-to-many má stĺpec v jednej tabuľke má iba jednu inštanciu konkrétnej hodnoty a súvisiaca tabuľka môže mať viac než jednu inštanciu hodnoty.

Many to many (*:*): Pomocou zložených modelov môžete medzi tabuľkami určiť vzťah typu many-to-many, čím sa odstránia požiadavky na jedinečné hodnoty v tabuľkách. Týmto sa odstránia aj predchádzajúce riešenia, ktoré sa vyžadovali napríklad na vytvorenie vzťahov (vytvorením nových tabuliek). Ďalšie informácie nájdete v téme Vzťahy s kardinalitou many-many.

Ďalšie informácie o tom, kedy zmeniť kardinalitu, nájdete v časti Vysvetlenie ďalších možností.

Smer krížového filtrovania

Možnosť Smer krížového filtrovania môže mať jedno z týchto nastavení:

Oba: Na účely filtrovania sa s oboma tabuľkami zaobchádza, akoby ísť o jednu tabuľku. Nastavenie Oba dobre funguje aj pri jednej tabuľke obklopenej mnohými vyhľadávacími tabuľkami. Príkladom môže byť tabuľka skutočných údajov o predaji s vyhľadávanou tabuľkou podľa oddelení. Táto konfigurácia sa často nazýva konfigurácia hviezdicovej schémy (centrálna tabuľka s viacerými vyhľadávacími tabuľkami). Ak však máte dve alebo viacero tabuliek, ktoré takisto majú vyhľadávacie tabuľky (niektoré spoločné), potom nastavenie Obojs nie je vhodné. V nadväznosti na predchádzajúci príklad máme v tomto prípade tiež tabuľku rozpočtu predaja, ktorá zaznamenáva cieľový rozpočet pre každé oddelenie. Tabuľka oddelení je prepojená s tabuľkou predaja aj s tabuľkou rozpočtu. Pri tomto druhu konfigurácie nepoužívajte nastavenie Oba .

Jeden: Najčastejší, predvolený smer, ktorý znamená, že možnosti filtrovania pri prepojených tabuľkách fungujú v tabuľke, v ktorej sa agregujú hodnoty. Ak importujete dátový model Power Pivot v programe Excel 2013 alebo starší dátový model, všetky vzťahy budú jednosmerné.

Ďalšie informácie o tom, kedy zmeniť smer krížového filtrovania, nájdete v časti Vysvetlenie ďalších možností.

Aktivovať tento vzťah

Ak je políčko začiarknuté, vzťah slúži ako aktívny, predvolený vzťah. V prípadoch, keď existuje viac ako jeden vzťah medzi dvoma tabuľkami, aktívny vzťah poskytuje možnosti, ako Power BI Desktop automaticky vytvoriť vizualizácie, ktoré obsahujú obe tabuľky.

Ďalšie informácie o tom, kedy nastaviť konkrétny vzťah ako aktívny, nájdete v časti Vysvetlenie ďalších možností.

Vysvetlenie vzťahov

Po prepojení dvoch tabuliek pomocou vzťahu môžete pracovať s údajmi v oboch tabuľkách, akoby išlo o jednu tabuľku. Potom sa nemusíte pred importovaním zaoberať podrobnosťami vzťahu alebo zjednodušením týchto tabuliek do jednej tabuľky. V mnohých situáciách môže Power BI Desktop vzťahy vytvoriť automaticky za vás. Ak však v Power BI Desktop nie je možné s vysokou mierou istoty určiť, či by mal medzi dvoma tabuľkami existovať vzťah, nevytvorí sa automaticky. V takom prípade to musíte urobiť vy.

Urobme si rýchly kurz, aby ste lepšie ukázali, ako fungujú vzťahy v Power BI Desktop.

Prepitné

Túto lekciu si môžete prejsť sami:

  1. Skopírujte nasledujúcu tabuľku HodinyProjektu do excelového hárka (okrem názvu), vyberte všetky bunky a potom vyberte položku Vložiť>tabuľku.
  2. V dialógovom okne Vytvorenie tabuľky vyberte tlačidlo OK.
  3. Vyberte ľubovoľnú bunku tabuľky, vyberte položky Návrh>tabuľky Názov tabuľky a potom zadajte reťazec HodinyProjektu.
  4. To isté urobte s tabuľkou Projekt_firmy .
  5. Importujte údaje pomocou položky Získať údaje v aplikácii Power BI Desktop. Vyberte dve tabuľky ako zdroj údajov a potom vyberte položku Načítať.

V prvej tabuľke HodinyProjektu sú zaznamenávané pracovné lístky evidované počet hodín, ktoré osoba venovala konkrétnemu projektu.

HodinyProjektu

Lístok Odoslal/-a Hodín Projekt Dátum odoslať
1001 Brewer, Alan 22 Modrá 1/1/2013
1002 Brewer, Alan 26 Červená 2/1/2013
1003 Ito, Shu 34 Žltá 12/4/2012
1004 Brewer, Alan 13 Oranžová 1/2/2012
1005 Bowen, Eli 29 Fialová 10/1/2013
1006 Bento, Nuno 35 Zelená 2/1/2013
1007 Hamilton, David 10 Žltá 10/1/2013
1008 Han, Mu 28 Oranžová 1/2/2012
1009 Ito, Shu 22 Fialová 2/1/2013
1010 Bowen, Eli 28 Zelená 10/1/2013
1011 Bowen, Eli 9 Modrá 10/15/2013

Druhú tabuľku FiremnýProjekt tvorí zoznam projektov s priradenou prioritou: A, B alebo C.

Projekt_firmy

Názov projektu Priorita
Modrá A
Červená B
Zelená C
Žltá C
Fialová B
Oranžová C

Všimnite si, že každá tabuľka obsahuje stĺpec projektu. Každý je pomenovaný trochu inak, ale hodnoty vyzerajú, že sú rovnaké. Tento rozdiel je dôležitý a zakrátko sa k tomu vrátime.

Keď sme teraz importovali naše dve tabuľky do modelu, môžeme vytvoriť zostavu. Prvé, čo chceme získať, je počet hodín odoslaných podľa priority projektu, takže na table Polia vyberieme Položky Priorita a Hodiny.

Screenshot of the Priority and Hours fields selected from the Fields pane.

Ak sa pozrieme na tabuľku na plátne na vytváranie zostáv, vidíme, že počet hodín pri každom projekte je 256, čo je aj celkový súčet. Toto číslo určite nie je správne. Prečo? Pretože nemôžeme vypočítať celkový súčet hodnôt z jednej tabuľky (Hodiny v tabuľke Projekt ) filtrovaných podľa hodnôt v inej tabuľke (Priorita v tabuľke Projekt_firmy) bez toho, aby sa medzi týmito dvoma tabuľkami vytváral vzťah.

Takže poďme vytvoriť vzťah medzi týmito dvoma tabuľkami.

Spomínate si, že v oboch tabuľkách s názvom projektu sme videli stĺpce s hodnotami, ktoré vyzerajú podobne? Tieto dva stĺpce využijeme na vytvorenie vzťahu medzi tabuľkami.

Prečo práve tieto stĺpce? Takže, v stĺpci Projekt v tabuľke HodinyProjektu vidíme hodnoty ako napríklad Modrý, Červený, Žltý, Oranžový atď. V skutočnosti vidíme niekoľko riadkov, ktoré majú rovnakú hodnotu. Pre Projekt sme získali viacero hodnôt s názvami farieb.

V stĺpci NázovProjektu v tabuľke FiremnýProjekt na strane Názov_firmy nasmerujeme len jednu zo všetkých hodnôt farieb pre projekt. Každá hodnota farby v tejto tabuľke je jedinečná a to je dôležité, pretože môžeme vytvoriť vzťah medzi týmito dvoma tabuľkami. V tomto prípade ide o vzťah typu many-to-one. Vo vzťahu many-to-one musí aspoň jeden stĺpec v jednej z tabuliek obsahovať jedinečné hodnoty. Pre niektoré vzťahy je k dispozícii niekoľko ďalších možností, na ktoré sa pozrieme neskôr. Teraz vytvoríme vzťah medzi stĺpcami projektu v každej z našich dvoch tabuliek.

Vytvorenie nového vzťahu

  1. Na karte Modelovanie vyberte položku Spravovať vzťahy.

  2. V okne Správa vzťahov výberom položky Nové otvorte dialógové okno Vytvorenie vzťahu , kde môžete vybrať tabuľky, stĺpce a akékoľvek ďalšie nastavenia, ktoré v tomto vzťahu chceme.

  3. V prvom rozbaľovacom zozname vyberte ako prvú tabuľku hodinyProjektu , potom vyberte stĺpec Projekt. Toto bude vo vzťahu strana many .

  4. V druhom rozbaľovacom zozname sa ako druhá tabuľka predvolene vyberie FiremnýProjekt . Vyberte stĺpec NázovProjektora. Toto bude vo vzťahu strana one .

  5. Prijmite predvolené hodnoty pre možnosti vzťahu a potom vyberte položku OK.

    Screenshot of the Create relationship dialog box.

  6. V dialógovom okne Spravovanie vzťahov vyberte položku Zavrieť.

Priznajme si, že tento vzťah sme vytvorili ťažkým spôsobom. Mohli ste vybrať položku Automaticky zistiť v dialógovom okne Spravovanie vzťahov. Ak by oba stĺpce mali rovnaký názov, funkcia Automatické zisťovanie by po načítaní údajov vytvorila vzťah automaticky.

Teraz sa ešte raz pozrime na tabuľku na plátne na vytváranie zostáv.

Screenshot of the Priority and Hours fields selected from the Fields pane with new relationship.

To vyzerá oveľa lepšie, nie?

Keď sčítame hodiny podľa Priority, v Power BI Desktop sa vo vyhľadávanej tabuľke FiremnýProjekt vyhľadá každá inštancia jedinečných hodnôt farby, a potom sa vyhľadá každá inštancia týchto hodnôt v tabuľke HodinyProjektu , a potom sa vypočíta súčet pre každú jedinečnú hodnotu.

S funkciou Automatické zisťovanie by to bolo ešte jednoduchšie.

Vysvetlenie ďalších možností

Pri vytvorení vzťahu, či už pomocou Automatického zisťovania alebo manuálne, Power BI Desktop na základe údajov v tabuľkách automaticky nakonfiguruje ďalšie možnosti. Možnosti týchto ďalších vzťahov sa nachádzajú v dolnej časti dialógových okien Vytvorenie vzťahu a Úprava vzťahu .

Screenshot of the lower portion of the Create relationship dialog box showing Cardinality and Cross filter direction options.

Power BI zvyčajne nastaví tieto možnosti automaticky a vy ich nemusíte upravovať. Existuje však niekoľko situácií, v ktorých možno budete chcieť nakonfigurovať tieto možnosti sami.

Automatické aktualizácie vzťahov

Spôsob, akým Power BI rieši a automaticky upravuje vzťahy, môžete spravovať v zostavách a modeloch. Ak chcete určiť, ako Power BI rieši možnosti vzťahov, vyberte v aplikácii Power BI Desktop položku Možnosti a nastavenia> Súbor>a potom na ľavej table vyberte položku Načítanie údajov. Zobrazia sa možnosti pre vzťahy .

Screenshot of the Options box showing the Relationships settings in the Data Load tab.

Vybrať a povoliť môžete tri možnosti:

  • Importovať vzťahy zo zdrojov údajov pri prvom načítaní: Táto možnosť je predvolene vybratá. Ak je vybratá, Power BI skontroluje vzťahy definované v zdroji údajov, ako sú napríklad vzťahy cudzieho kľúča/primárneho kľúča v sklade údajov. Ak takéto vzťahy existujú, zohľadnia sa pri prvom načítaní údajov v dátovom modeli Power BI. Táto možnosť vám umožňuje začať pracovať s modelom rýchlo a tieto vzťahy nemusíte hľadať ani definovať.

  • Aktualizovať alebo odstrániť vzťahy pri obnovení údajov: Táto možnosť predvolene nie je začiarknuté. Ak ju vyberiete, Power BI pri obnovení sémantického modelu skontroluje zmeny vo vzťahoch zdrojov údajov. Ak sa tieto vzťahy zmenia alebo odstránia, Power BI odráža tieto zmeny vo vlastnom dátovom modeli, pričom ich aktualizuje alebo odstráni tak, aby sa zhodovali.

    Upozornenie

    Ak používate zabezpečenie na úrovni riadkov, ktoré sa opiera o definované vzťahy, neodporúča sa túto možnosť vybrať. Ak odstránite vzťah, od ktorých závisia nastavenia zabezpečenia na úrovni riadkov, model nemusí byť dostatočne zabezpečený.

  • Automaticky zisťovať nové vzťahy po načítaní údajov: Táto možnosť je popísaná v časti Automatické zisťovanie počas načítania.

Budúce aktualizácie údajov si vyžadujú inú kardinalitu

Za normálnych okolností Power BI Desktop môžete najlepšiu kardinalitu pre vzťah určiť automaticky. Ak potrebujete automatické nastavenie prepísať, pretože viete, že údaje sa v budúcnosti zmenia, môžete ho zmeniť v ovládaní Kardinalita . Pozrime sa na príklad, v ktorom je potrebné vybrať inú kardinalitu.

Tabuľka PrioritaFiremnýchProjektov obsahuje zoznam všetkých firemných projektov a ich prioritu. Tabuľke RozpočetProjektu je súbor projektov, pre ktoré sa schválil rozpočet.

PrioritaFiremnýchProjektov

Názov projektu Priorita
Modrá A
Červená B
Zelená C
Žltá C
Fialová B
Oranžová C

Rozpočet_projektu

Schválené projekty BudgetAllocation (Rozpočet) Dátum pridelenia
Modrá 40,000 12/1/2012
Červená 100,000 12/1/2012
Zelená 50,000 12/1/2012

Ak vytvoríme vzťah medzi stĺpcom Schválené projekty v tabuľke RozpočetProjektu a stĺpcom NázovProjektu v tabuľke PrioritaFiremnýchProjektov , Power BI automaticky nastaví kardinalitu na hodnotu One to one (1:1) a smer krížového filtrovania na hodnotu Oba.

Screenshot of the Create relationship dialog box with Cardinality to One to one (1:1) and Cross filter direction to Both.

Dôvodom, prečo Power BI vytvorí tieto nastavenia, je, že najlepšou kombináciou podľa aplikácie Power BI Desktop je táto kombinácia týchto dvoch tabuliek:

Názov projektu Priorita BudgetAllocation (Rozpočet) Dátum pridelenia
Modrá A 40,000 12/1/2012
Červená B 100,000 12/1/2012
Zelená C 50,000 12/1/2012
Žltá C

Fialová B

Oranžová C

Ide o vzťah one-to-one medzi dvoma tabuľkami, pretože stĺpec NázovProjekcie prepojenej tabuľky neobsahuje žiadne opakujúce sa hodnoty. Stĺpec NázovProjekcie je jedinečný, pretože každá hodnota sa vyskytuje len raz, takže riadky z oboch tabuliek sa môžu skombinovať priamo bez akejkoľvek duplicity.

Povedzme však, že viete, že údaje sa pri ďalšom obnovení zmenia. Obnovená verzia tabuľky RozpočetProjektu má teraz ďalšie riadky pre modrý a červený projekt:

Rozpočet_projektu

Schválené projekty BudgetAllocation (Rozpočet) Dátum pridelenia
Modrá 40,000 12/1/2012
Červená 100,000 12/1/2012
Zelená 50,000 12/1/2012
Modrá 80,000 6/1/2013
Červená 90,000 6/1/2013

Tieto dodatočné riadky znamenajú, že najlepšia kombinácia dvoch tabuliek teraz vyzerá takto:

Názov projektu Priorita BudgetAllocation (Rozpočet) Dátum pridelenia
Modrá A 40,000 12/1/2012
Červená B 100,000 12/1/2012
Zelená C 50,000 12/1/2012
Žltá C

Fialová B

Oranžová C

Modrá A 80000 6/1/2013
Červená B 90000 6/1/2013

V tejto novej spojenej tabuľke má stĺpec NázovProjetónu opakujúce sa hodnoty. Po obnovení tabuľky medzi týmito dvoma pôvodnými tabuľkami už nebude vzťah 1:1. V tomto prípade, keďže vieme, že tieto budúce aktualizácie spôsobia v stĺpci NázovProjektu duplikáty, chceme nastaviť kardinalitu na Many to one (*:1), so stranou many v tabuľke RozpočetProjektu a stranou one v tabuľke PrioritaFiremnýchProjektov.

Úprava smeru krížového filtrovania pre zložitý súbor tabuliek a vzťahov

Pre väčšinu vzťahov je smer krížového filtrovania nastavený na hodnotu Oba. Za určitých zriedkavých okolnosti však môže byť potrebné nastaviť inú ako predvolenú možnosť. Jedným z príkladov je import modelu zo staršej verzie doplnku Power Pivot, kde je každý vzťah nastavený na jeden smer.

Nastavením Oba sa v aplikácii Power BI Desktop umožňuje zaobchádzať so všetkými aspektmi prepojených tabuliek, akoby ísť o jednu tabuľku. V niektorých situáciách sa však v Power BI Desktop nie je možné nastaviť smer krížového filtrovania vzťahu na hodnotu Oba a zároveň ponechať jednoznačný súbor predvolených nastavení dostupných na účely vytvárania zostáv. Ak smer krížového filtra pri vzťahu nie je nastavený ako Obojsmerný, potom je to zvyčajne preto, že by mohla vytvoriť nejednoznačnosť. Ak vám predvolené nastavenie krížového filtra nefunguje, skúste ho nastaviť na konkrétnu tabuľku alebo na hodnotu Oba.

Jednosmerné krížové filtrovanie funguje v mnohých situáciách. V skutočnosti, ak ste model importovali z Power Pivot v programe Excel 2013 alebo v staršej verzii, všetky vzťahy sa nastavia na jednosmerné. Jednosmerný vzťah znamená, že možnosti filtrovania pri prepojených tabuľkách fungujú v tabuľke, v ktorej sa agregujú hodnoty. Pochopenie krížového filtrovania môže byť niekedy trochu ťažké, tak sa pozrime na príklad.

Ak pri jednosmernom krížovom filtrovaní vytvoríte zostavu, ktorá zhŕňa hodiny projektu, potom môžete vybrať súhrn (alebo filtrovanie) podľa tabuľky FiremnýProjekt a jej stĺpca Priorita alebo tabuľky Zamestnancov_firmy a jej stĺpca Mesto. Ak však chcete spočítať počet zamestnancov na projektoch (zriedkavejšia otázka), nebude to fungovať. Získate stĺpec hodnôt, ktoré sú všetky rovnaké. V nasledujúcom príklade je smer krížového filtrovania pri oboch vzťahoch nastavený na jeden smer – smerom k tabuľke HodinyProjektu. V kontajneri Hodnoty je pole Projekt nastavené na možnosť Počet:

Screenshot of the visualization tab used with the Employee and Project fields.

Špecifikácia filtra bude prúdiť od tabuľky FiremnýProjekt k tabuľke HodinyProjektu (ako je znázornené na nasledujúcom obrázku), ale nepresmeruje sa až k tabuľke FiremnýZamestnateľ.

Diagram of a cross filtering example with flow from CompanyProject to ProjectHours.

Ak však nastavíte smer krížového filtrovania na hodnotu Oba, bude to fungovať. Nastavením Oba sa špecifikácii filtra umožní prúdiť až k položke Zamestnancov_firmy.

Diagram of a cross filtering example with flow both ways

Ak smer krížového filtrovania nastavíme na Obojsmerný, zostava sa zobrazí správne:

Screenshot of cross filtering direction set to Both.

Krížové filtrovanie v oboch smeroch funguje správne pri vzore vzťahov tabuliek, ako napríklad predtým uvedených vzorov. Táto schéma sa najčastejšie nazýva hviezdicová schéma, ako napríklad:

Diagram of cross filtering both directions in star schema.

Smer krížového filtrovania nefunguje správne pri všeobecnejšom vzore, ktorý sa často nachádza v databázach, ako napríklad v tomto diagrame:

Diagram of cross filtering in both directions on a database pattern.

Ak máte takýto vzor tabuľku so slučkami, potom krížové filtrovanie môže vytvoriť nejednoznačný súbor vzťahov. Ak napríklad zhrnete pole z TabuľkyX a potom vyberiete filtrovanie podľa poľa v TabuľkeY, nie je jasné, ako by mal filter prechádzať cez hornú alebo dolnú tabuľku. Bežným príkladom tohto druhu vzoru je TabuľkaX so skutočnými hodnotami predaja a TabuľkaY s údajmi o rozpočte. Tabuľky uprostred sú teda vyhľadávacie tabuľky, ktoré obe tabuľky používajú, napríklad tabuľky Divízia alebo Oblasť.

Rovnako ako pri aktívnych/neaktívnych vzťahoch Power BI Desktop neumožní nastaviť vzťah na hodnotu Oba , ak by sa tým v zostavách vytvárala nejednoznačnosť. Existuje niekoľko rôznych spôsobov, ako túto situáciu zvládnuť. Tieto dva sú najbežnejšie:

  • Zredukujte nejednoznačnosť odstránením vzťahov alebo ich označte ako neaktívne. Potom možno budete môcť nastaviť krížové filtrovanie vzťahu ako O obe.
  • Vložte do tabuľky dvakrát (druhýkrát pod iným názvom) na odstránenie slučiek. Týmto sa štruktúra vzťahov robí ako hviezdicová schéma. Pri hviezdicovej schéme môžu byť všetky vzťahy nastavené na hodnotu Oba.

Nesprávny aktívny vzťah

Pri automatickom vytváraní vzťahov sa v Power BI Desktop niekedy stretneme s viac ako jedným vzťahom medzi dvoma tabuľkami. V prípade takejto situácie sa ako aktívny vzťah nastaví len jeden. Aktívny vzťah slúži ako predvolený vzťah, takže keď vyberiete polia z dvoch rôznych tabuliek, Power BI Desktop môžete automaticky vytvoriť vizualizáciu za vás. V niektorých prípadoch však automaticky vybratý vzťah nemusí byť správny. Ak chcete nastaviť vzťah ako aktívny alebo neaktívny, použite dialógové okno Spravovanie vzťahov, aktívny vzťah nastavte v dialógovom okne Úprava vzťahu.

Aby sa zabezpečilo, že existuje predvolený vzťah, Power BI Desktop v určitom čase umožňuje len jeden aktívny vzťah medzi dvoma tabuľkami. Preto najprv musíte nastaviť aktuálny vzťah ako neaktívny, až potom nastaviť vzťah, ktorý má byť aktívny.

Pozrime sa na príklad. Prvou tabuľkou sú ProjektovéLístky a ďalšou tabuľkou je PozíciaZamestnanka.

Projektové_lístky

Lístok Otvoril/-a Odoslal/-a Hodín Projekt Dátum odoslať
1001 Perham, Tom Brewer, Alan 22 Modrá 1/1/2013
1002 Roman, Daniel Brewer, Alan 26 Červená 2/1/2013
1003 Roth, Daniel Ito, Shu 34 Žltá 12/4/2012
1004 Perham, Tom Brewer, Alan 13 Oranžová 1/2/2012
1005 Roman, Daniel Bowen, Eli 29 Fialová 10/1/2013
1006 Roth, Daniel Bento, Nuno 35 Zelená 2/1/2013
1007 Roth, Daniel Hamilton, David 10 Žltá 10/1/2013
1008 Perham, Tom Han, Mu 28 Oranžová 1/2/2012
1009 Roman, Daniel Ito, Shu 22 Fialová 2/1/2013
1010 Roth, Daniel Bowen, Eli 28 Zelená 10/1/2013
1011 Perham, Tom Bowen, Eli 9 Modrá 10/15/2013

PozíciaZamestnanka

Zamestnancov Rola
Bento, Nuno Projektový manažér
Bowen, Eli Vedúci projektu
Brewer, Alan Projektový manažér
Hamilton, David Vedúci projektu
Han, Mu Vedúci projektu
Ito, Shu Vedúci projektu
Perham, Tom Sponzor projektu
Roman, Daniel Sponzor projektu
Roth, Daniel Sponzor projektu

V skutočnosti tu máme dva vzťahy:

  • Medzi stĺpcom Zamestnanec v tabuľke PozíciaZamestnanca a stĺpcom Odoslal/-a v tabuľke ProjektovéLístky.
  • Medzi stĺpcom Otvoril/ -a v tabuľke ProjektovéLístky a stĺpcom Zamestnanec v tabuľke PozíciaZamestnanca .

Screenshot of a two-relationship example.

Ak k modelu pridáme oba vzťahy (najprv Otvoril), v dialógovom okne Spravovanie vzťahov sa vzťah Otvoril/-a zobrazí ako aktívny:

Screenshot of a OpenedBy active in the Manage relationships dialog box.

Ak teraz vytvoríme zostavu, ktorá vo vizualizácii tabuľky na plátne na vytváranie zostáv používa polia Pozícia a Zamestnanec z tabuľky Pozícia_zamestnanca a pole Hodiny z tabuľky Projektové_ lístky, uvidíme len sponzorov projektu, pretože projektové lístky otvárali len oni.

Screenshot shows the Employee, Role, and Hours fields selected.

Aktívny vzťah môžeme zmeniť a namiesto vzťahu s poľom Otvoril použiť vzťah s poľom Odoslal. V okne Spravovať vzťahy zrušte začiarknutie vzťahu medzi poľami ProjektovéLístky (Otvoril/-a) a PozíciaZamestnanca (Zamestnanec), a potom začiarknutím vzťahu medzi poľami PozíciaZamestnanca (Zamestnanec)a ProjektovéLístky (Odoslal/-a).

Screenshot of changing the active relationship in the Manage relationship dialog box.

Prehľad všetkých vzťahov v zobrazení Vzťahy

Niekedy model obsahuje viacero tabuliek so zložitými vzťahmi medzi nimi. Zobrazenie Vzťahy v aplikácii Power BI Desktop zobrazuje všetky vzťahy v modeli, ich smer a kardinalitu v jednoducho pochopiteľnom a prispôsobiteľnom diagrame.

Ďalšie informácie nájdete v téme Práca so zobrazením vzťahov v aplikácii Power BI Desktop.

Riešenie problémov

Táto časť obsahuje návody a informácie o riešení problémov pri práci so vzťahmi v službe Power BI.

Nie je možné určiť vzťahy medzi poľami

Služba Power BI sa pokúša zobraziť relevantné údaje vo vizuáloch odvodzovaním vzťahov z použitého modelu. Takéto závery niekedy nie sú zjavné a možno vás prekvapí, že vo vizuáli sa zobrazí chyba, ktorá naznačuje, že medzi určitými stĺpcami neexistuje žiadny vzťah.

Ak chcete pochopiť, ako Služba Power BI určuje, či polia súvisia, použijeme vzorový model na ilustráciu niekoľkých scenárov v nasledujúcich častiach. Nasledujúci obrázok znázorňuje ukážkový model, ktorý použijeme v príkladoch scenárov.

Screenshot of a sample model used in troubleshooting scenarios.

Scenár 1: Tradičná hviezdicová schéma a nie je zadané žiadne obmedzenie mierky. S odkazom na vzorový model na predchádzajúcom obrázku sa najskôr pozrime na pravú polovicu obrázkov s tabuľkami Dodávateľ – Nákup – Produkt . V tomto príklade je tradičná hviezdicová schéma s tabuľkou faktov (Nákupy) a dvoma tabuľkami dimenzií (Produkt a Dodávateľ). Vzťah medzi tabuľkami dimenzií a tabuľkou faktov je 1 na Many (jeden produkt zodpovedá mnohým nákupom, jeden dodávateľ zodpovedá mnohým nákupom). V tomto type schémy môžeme odpovedať na otázky ako Aký predaj máme pre produkt X? a Aký predaj máme pre dodávateľa Y? a Aké produkty predáva dodávateľ Y?

Ak chceme korelovať Produkty a Dodávatelia, môžeme si prezrieť tabuľku Nákupy a zistiť, či existuje položka s rovnakým produktom a dodávateľom. Vzorový dotaz môže vyzerať ako v nasledujúcom príklade:

Correlate Product[Color] with Vendor[Name] where CountRows(Purchases)>0

predstavuje where CountRows(Purchases)>0 implicitné obmedzenie, ktoré by služba Power BI pridala, aby sa zabezpečilo vrátenie relevantných údajov. Táto korelácia prostredníctvom tabuľky Nákupy umožňuje vrátiť párovanie produktov a dodávateľov, ktoré majú aspoň jednu položku v tabuľke faktov a párovania, ktoré z hľadiska údajov dávajú zmysel. Môžete očakávať, že žiadne nezmyselné kombinácie produktových dodávateľov, v prípade ktorých sa nikdy nepoužil predaj (ktorý by bol k ničomu na analýzu) nebude zobrazený.

Scenár 2: K dispozícii je tradičná hviezdicová schéma a obmedzenie mierky. V predchádzajúcom príklade scenára 1 platí, že ak používateľ poskytne obmedzenie vo forme súhrnného stĺpca (napríklad Sum/Average/Count of Purchase Qty (Súčet/Priemer/Počet nákupov množstvo) alebo modelovej mierky (Distinct Count of VendID) (Konkrétny počet VendID), Power BI môže vygenerovať dotaz vo forme nasledujúceho príkladu:

Correlate Product[Color] with Vendor[Name] where MeasureConstraint is not blank

V takom prípade sa služba Power BI pokúsi vrátiť kombinácie, ktoré majú zmysluplné hodnoty pre obmedzenie, ktoré používateľ poskytol (nie prázdne). Power BI nemusí pridávať ani vlastné implicitné obmedzenie CountRows(Purchases)>0, ako napríklad to, čo sa urobilo v predchádzajúcom scenári 1, pretože obmedzenie, ktoré poskytol používateľ, je dostatočné.

Scenár 3: Ne hviezdicová schéma a nie je zadané žiadne obmedzenie mierky. V tomto scenári sa zameriame na stred modelu, v ktorom máme tabuľky Predaj – Produkt – Nákupy, kde máme jednu tabuľku dimenzií (Produkt) a dve tabuľky faktov (Predaj, Nákupy). Keďže tento príklad nie je hviezdicovou schémou, nemôžeme odpovedať na rovnaký typ otázok ako v scenári 1. Povedzme, že sa snažíme korelovať položky Nákupy a Predaj, pretože medzi položkami Nákupy je vzťah typu Many-to-1 s tabuľkou Produkt a vzťah typu Produkt od 1 do viacerých s tabuľkou Predaj. Predaje a nákupy sú nepriamo typu Many to Many. Môžeme prepojiť jeden Produkt s viacerými Nákupmi a jeden Produkt s mnohými predajmi, ale nemôžeme prepojiť jeden Predaj s mnohými Nákupmi alebo naopak. Mnohé Nákupy môžeme prepojiť iba s viacerými.

V takejto situácii, ak sa pokúsime skombinovať položky Nákup[VenID] a Sales[CustID] vo vizuáli, Power BI nemá konkrétne obmedzenie, ktoré môže použiť, vzhľadom na vzťah typu many-to-many medzi týmito tabuľkami. Hoci môžu existovať vlastné obmedzenia (ktoré nemusia nevyhnutne vyplývať zo vzťahov vytvorených v modeli), ktoré je možné použiť pre rôzne scenáre, Power BI nedokáže odvodiť predvolené obmedzenie len na základe vzťahov. Ak by sa služba Power BI pokúsila vrátiť všetky kombinácie týchto dvoch tabuliek, vytvorí veľké krížové spojenie a vráti nerevantné údaje. Namiesto toho Power BI vyvolá vo vizuáli chybu, napríklad takto.

Screenshot of an error dialog when relationship can’t be inferred. Alternatively, Screenshot of an error dialog where relationship isn’t inferred.

Scenár 4: Nie je zadaná ne hviezdicová schéma a obmedzenie mierky. Ak použijeme príklad zo scenára 3 a pridáme obmedzenie zadaného používateľa vo forme súhrnného stĺpca (napríklad Počet produktov[IDProduktu[IDProduktu] alebo modelovej mierky (Sales[Total Qty]), Power BI môže vygenerovať dotaz vo forme correlate Purchase[VenID] a Sales[CustID], kde MeasureConstraint nie je prázdny.

V tomto prípade služba Power BI rešpektuje obmedzenie používateľa ako jediné obmedzenie, ktoré musí Služba Power BI použiť, a vráti kombinácie, ktoré preň vytvoria neprázdne hodnoty. Používateľ viedol službu Power BI k scenáru, ktorý chce, a služba Power BI používa sprievodný materiál.

Scenár 5: Keď je k dispozícii obmedzenie mierky, ale čiastočne súvisí so stĺpcami. Existujú prípady, keď obmedzenie mierky poskytované používateľom nie je úplne prepojené so všetkými stĺpcami vo vizuáli. Mierka modelu vždy prepája všetko. Služba Power BI nakladá s týmto scenárom ako s čiernym rámčekom pri pokuse o vyhľadanie vzťahov medzi stĺpcami vo vizuáli a predpokladá, že používateľ vie, čo robí pomocou neho. Súhrnné stĺpce vo forme súčtu, priemeru a podobných súhrnov vybraných z používateľského rozhrania však môžu súvisieť iba s podmnožinou stĺpcov/tabuliek použitých vo vizuáli na základe vzťahov tabuľky, do ktorej daný stĺpec patrí. To znamená, že obmedzenie sa vzťahuje na niektoré párovania stĺpcov, ale nie na všetky. V takom prípade sa služba Power BI pokúsi nájsť predvolené obmedzenia, ktoré môže použiť pre stĺpce, ktoré nesúvisia s obmedzením poskytnutým používateľom (napríklad v scenári 1). Ak Power BI nenájde žiadne, vráti sa nasledujúca chyba.

Screenshot of an error dialog when Power BI can’t find default constraints.

Riešenie chýb vzťahov

Keď sa zobrazí chyba Nemožno určiť vzťahy medzi poľami , pri pokuse o vyriešenie chyby môžete vykonať nasledujúce kroky:

  1. Skontrolujte svoj model. Je správne nastavený pre typy otázok, na ktoré chcete odpovedať z analýzy? Dajú sa zmeniť niektoré vzťahy medzi tabuľkami? Môžete sa vyhnúť vytváraniu nepriameho many to Many?

    Zvážte konverziu schémy reverzného tvaru V na dve tabuľky a použite priamy vzťah typu many-to-many medzi nimi, ako je to popísané v téme Použitie vzťahov typu many-many v aplikácii Power BI Desktop.

  2. Pridajte obmedzenie na vizuál vo forme súhrnného stĺpca alebo mierky modelu.

  3. Ak sa pridá súhrnný stĺpec a stále sa vyskytne chyba, zvážte použitie mierky modelu.

Ďalšie informácie o modeloch a vzťahoch nájdete v nasledujúcich článkoch: