Práce se vztahy a kardinalitou
Na rozdíl od jiných systémů pro správu databází má Power BI koncept směrovosti na vztah. Tato směrovost hraje důležitou roli při filtrování dat mezi více tabulkami. Když načtete data, Power BI automaticky vyhledá vztahy, které v datech existují, podle názvů sloupců. Můžete také použít Spravovat vztahy k ruční úpravě těchto možností.
Například jste získali mnoho tabulek z databáze prodeje a následující obrázek je příkladem vašeho sémantického modelu. Power BI autodetekovalo několik vztahů, ale nemůžete rozeznat, co znamenají. Chcete se ujistit, že vztahy přesně odrážejí ty, které existují ve vašich datech.
Vztahy
Následují různé typy vztahů, ve kterých najdete Power BI.
Vztah mnoho k jednomu (*:1)
nebo jeden k mnoha (1: *)
Popisuje vztah, ve kterém máte mnoho instancí hodnoty v jednom sloupci, které souvisí pouze s jednou jedinečnou odpovídající instancí v jiném sloupci.
Popisuje směrovost mezi tabulkami faktů a dimenzí.
Je nejběžnějším typem směrovosti a je Power BI výchozí, když automaticky vytváříte vztahy.
Příkladem vztahu jedna k mnoha by bylo mezi tabulkami CountryName a Territory, kde můžete mít mnoho oblastí, které jsou spojeny s jednou jedinečnou zemí.
Vztah jeden ku jednomu (1:1):
Popisuje vztah, ve kterém je mezi dvěma tabulkami společný pouze jeden výskyt hodnoty.
Vyžaduje jedinečné hodnoty v obou tabulkách.
Nedoporučuje se, protože tento vztah ukládá nadbytečné informace a naznačuje, že model není navržen správně. Je lepší kombinovat tabulky.
Příkladem vztahu jedna ku jedné by bylo, kdybyste měli produkty a ID produktů ve dvou různých tabulkách. Vytváření vztahu jedna ku jedné je nadbytečné a tyto dvě tabulky by se měly kombinovat.
Vztah mnoho k mnoha (.):
Popisuje vztah, kde je mnoho hodnot společných mezi dvěma tabulkami.
Nevyžaduje jedinečné hodnoty v žádné tabulce ve vztahu.
Nedoporučuje se; nedostatek jedinečných hodnot zavádí nejednoznačnost a vaši uživatelé nemusí vědět, který sloupec hodnot na co odkazuje.
Například následující obrázek ukazuje vztah many-to-many mezi tabulkami Prodej a Objednávka ve sloupci OrderDate , protože k více prodejům může být přidruženo více objednávek. Je zavedena nejednoznačnost, protože obě tabulky mohou mít stejné datum objednávky.
Směr křížového filtru
Data lze filtrovat na jedné nebo obou stranách vztahu.
S směrem jediného křížového filtru:
K filtrování dat lze použít pouze jednu tabulku ve vztahu. Například tabulku 1 lze filtrovat podle tabulky 2, ale tabulku 2 nelze filtrovat podle tabulky 1.
Spropitné
Sledujte směr šipky na vztahu mezi vašimi tabulkami, abyste věděli, kterým směrem bude filtr proudit. Obvykle chcete, aby tyto šipky ukazovaly na vaši tabulku faktů.
U vztahu jedna k mnoha nebo mnoho k jedné bude směr křížového filtru ze strany "jedna", což znamená, že k filtrování dojde v tabulce, která má mnoho hodnot.
S oba směry křížového filtru nebo obousměrným křížovým filtrem:
Jednu tabulku ve vztahu lze použít k filtrování druhé. Například tabulku dimenzí lze filtrovat přes tabulku faktů a tabulky faktů lze filtrovat přes tabulku dimenzí.
Při použití obousměrného křížového filtrování se vztahy mnoho k mnoha můžete mít nižší výkon.
Upozornění týkající se obousměrného křížového filtrování: Neměli byste povolit vztahy obousměrného křížového filtrování, pokud plně nerozumíte důsledkům toho. Povolení může vést k nejednoznačnosti, nadměrnému vzorkování, neočekávaným výsledkům a potenciálnímu snížení výkonu.
Mohutnost a směr křížového filtru
Pro vztahy jedna ku jedné je jedinou možností, která je k dispozici, obousměrné křížové filtrování. Data lze filtrovat na obou stranách tohoto vztahu a výsledkem je jedna zřetelná, jednoznačná hodnota. Můžete například filtrovat podle jednoho ID produktu a vrátit vám jediný produkt a můžete filtrovat podle produktu a vrátit vám jediné ID produktu.
U vztahů mnoho k mnoha si můžete vybrat filtrování v jednom směru nebo v obou směrech pomocí obousměrného křížového filtrování. Nejednoznačnost, která je spojena s obousměrným křížovým filtrováním, je zesílena ve vztahu many-to-many, protože mezi různými tabulkami bude existovat více cest. Pokud vytvoříte míru, výpočet nebo filtr, může dojít k nezamýšleným následkům tam, kde jsou vaše data filtrována a v závislosti na tom, jaký vztah Power BI motor zvolí při použití filtru, konečný výsledek se může lišit. Tato situace platí také pro obousměrné vztahy a proč byste měli být při jejich používání opatrní.
Z tohoto důvodu jsou vztahy mnoho k mnoha a/nebo obousměrné vztahy komplikované. Pokud si nejste jisti, jak vaše data vypadají, když jsou agregována, mohou tyto typy vztahů s otevřeným koncem s více směry filtrování zavádět více cest daty.
Vytvořte vztahy mnoho k mnoha
Zvažte scénář, kdy máte za úkol vytvořit vizuál, který zkoumá rozpočty pro zákazníky a účty. Můžete mít více zákazníků na stejném účtu a více účtů se stejným zákazníkem, takže víte, že musíte vytvořit vztah mnoho k mnoha.
Chcete-li vytvořit tento vztah, přejděte na Řídit vztahy> Nový. Ve výsledném okně vytvořte vztah mezi zákaznické identifikační číslo sloupec v CustomerTable a AccountTable. Vztah je nastaven na many-to-many a typ filtru je v obou směrech. Okamžitě budete upozorněni, že byste tento typ vztahu měli používat pouze v případě, že se očekává, že žádný sloupec nebude mít jedinečné hodnoty, protože byste mohli získat neočekávané hodnoty. Protože chcete filtrovat v obou směrech, vyberte si obousměrné křížové filtrování.
Vybrat OK. Nyní jste úspěšně vytvořili vztah mnoho k mnoha.
Další informace naleznete v části Vztahy mnoho k mnoha v Power BI.