Kapcsolatok létrehozása és kezelése a Power BI Desktopban

Ha több táblával rendelkezik, valószínű, hogy az összes táblából származó adatokkal végez elemzést. Az ezen táblák közötti kapcsolatok szükségesek az eredmények pontos kiszámításához, valamint a megfelelő adatok megjelenítéséhez. A legtöbb esetben nem kell semmit tennie. Az automatikus észlelés funkció elvégzi Önnek. Előfordulhat azonban, hogy saját maga kell létrehoznia a kapcsolatokat, vagy módosítania kell egy kapcsolatot. Akárhogy is, fontos megérteni a Power BI Desktopban lévő kapcsolatokat, valamint azok létrehozását és szerkesztését.

Automatikus észlelés a betöltés során

Ha egyszerre két vagy több táblát kérdez le, az adatok betöltésekor a Power BI Desktop megkísérli megkeresni és létrehozni a kapcsolatokat. A számosság, a keresztszűrés iránya és a Kapcsolat aktívvá tétele beállítás automatikusan be van állítva. A Power BI Desktop a lekérdezett táblák oszlopneveit vizsgálja annak megállapításához, hogy vannak-e lehetséges kapcsolatok. Ha vannak ilyenek, ezek a kapcsolatok automatikusan létrejönnek. Ha a Power BI Desktop nem tudja nagy megbízhatósággal meghatározni, hogy van-e egyezés, akkor nem hozza létre a kapcsolatot. A Kapcsolatok kezelése párbeszédpanelen azonban manuálisan is létrehozhat vagy szerkeszthet kapcsolatokat.

Kapcsolat létrehozása automatikus észleléssel

A Modellezés lapon válassza a Kapcsolatok>kezelése automatikus észlelés lehetőséget.

Animation showing how to create a relationship with autodetect.

Kapcsolat manuális létrehozása

  1. A Modellezés lapon válassza az Új kapcsolatok>kezelése lehetőséget.

  2. A Kapcsolat létrehozása párbeszédpanel első legördülő listájában válasszon ki egy táblát. Jelölje ki a kapcsolatban használni kívánt oszlopot.

  3. A második tábla legördülő listájában válassza ki a másik táblát a kapcsolatban. Jelölje ki a másik használni kívánt oszlopot, majd kattintson az OK gombra.

    Animation showing how to create a manual relationship.

A Power BI Desktop alapértelmezés szerint automatikusan konfigurálja a Számosság (irány), a Keresztszűrés iránya és a Kapcsolat aktívvá tétele lehetőséget az új kapcsolatban. Szükség esetén azonban módosíthatja ezeket a beállításokat. További információ: További lehetőségek ismertetése.

Ha a kapcsolathoz kijelölt táblák egyike sem tartalmaz egyedi értékeket, a következő hibaüzenet jelenik meg: Az egyik oszlopnak egyedi értékekkel kell rendelkeznie. A kapcsolat legalább egy táblájának külön, egyedi kulcsértéklistával kell rendelkeznie, ami az összes relációs adatbázis-technológia esetében gyakori követelmény.

Ha ezt a hibát tapasztalja, többféleképpen is kijavíthatja a problémát:

  • Az Ismétlődések eltávolítása használatával egyedi értékeket tartalmazó oszlopot hozhat létre. Ennek a megközelítésnek az a hátránya, hogy az ismétlődő sorok eltávolításakor elveszhetnek az információk. Gyakran előfordul, hogy egy kulcs (sor) ismétlődik, jó okból.
  • Adjon hozzá egy közvetítő táblát a modellhez a különböző kulcsértékek listájából, amely ezután a kapcsolat mindkét eredeti oszlopához lesz csatolva.

További információkért tekintse meg ezt a blogbejegyzést.

Másik lehetőségként a Modell nézet diagramelrendezéseiben egy oszlopot húzhat az egyik táblából egy másik táblázat egyik oszlopára egy kapcsolat létrehozásához.

Kapcsolat szerkesztése

A Power BI-ban kétféleképpen szerkeszthet kapcsolatokat.

A kapcsolatok szerkesztésének első módszere a Kapcsolatok szerkesztése a Modell nézetben a Tulajdonságok panelen, ahol két tábla közötti bármelyik sort kiválasztva megtekintheti a kapcsolatok beállításait a Tulajdonságok panelen. A kapcsolatok beállításainak megtekintéséhez bontsa ki a Tulajdonságok panelt.

Screenshot of adjusting relationships in the properties pane.

A kapcsolatok szerkesztését bemutató videó is látható a Tulajdonságok panelen.

A kapcsolatok szerkesztésének másik módja a Kapcsolatszerkesztő párbeszédpanel használata, amelyet számos módon nyithat meg a Power BI Desktopban. Az alábbi listában különböző módokon nyithatja meg a Kapcsolatszerkesztő párbeszédpanelt:

A Jelentés nézetben tegye az alábbiak bármelyikét:

  • Válassza a Modellezés menüszalag >Kapcsolatok kezelése elemét, majd a kapcsolatot, és válassza a Szerkesztés lehetőséget.
  • Jelöljön ki egy táblát a Mezők listában, majd válassza a Táblaeszközök menüszalag >Kapcsolatok kezelése, majd a kapcsolat kijelölése, majd a Szerkesztés lehetőséget.

Az Adatok nézetben válassza a Táblaeszközök menüszalag> Kapcsolatok kezelése, majd a kapcsolat kijelölése, majd a Szerkesztés parancsot.

A Modell nézetben tegye az alábbiak bármelyikét:

  • Válassza a Kezdőlap menüszalag >Kapcsolatok kezelése elemét, majd a kapcsolatot, majd a Szerkesztés lehetőséget.
  • Kattintson duplán bármelyik sorra két tábla között.
  • Kattintson a jobb gombbal bármelyik sorra két tábla között, majd válassza a Tulajdonságok parancsot.
  • Jelöljön ki egy tetszőleges sort két tábla között, majd a Tulajdonságok panelen válassza a Kapcsolatszerkesztő megnyitása lehetőséget.

Végül bármelyik nézetben szerkesztheti a kapcsolatot, a jobb gombbal kattintva vagy a három pontra kattintva bármelyik tábla helyi menüjéhez juthat, majd a Kapcsolatok kezelése lehetőséget, a kapcsolatot, majd a Szerkesztés lehetőséget választhatja .

Az alábbi képen a Kapcsolat szerkesztése ablak képernyőképe látható.

Screenshot of the edit relationship window.

Kapcsolatok szerkesztése különböző módszerekkel

A Kapcsolatok szerkesztése párbeszédpanel használata irányítottabb felület a Kapcsolatok szerkesztéséhez a Power BI-ban, és jelenleg előzetes verzióban érhető el. Az egyes táblákban megtekintheti az adatok előnézetét. A különböző oszlopok kijelölésekor az ablak automatikusan ellenőrzi a kapcsolatot, és megfelelő számosságot és keresztszűrési beállításokat kínál.

A Kapcsolatok szerkesztése a Tulajdonságok panelen egyszerűbb módszer a kapcsolatok szerkesztésére a Power BI-ban. Csak azokat a táblázatneveket és oszlopokat látja, amelyek közül választhat, nem jelenik meg adatelőnézet, és a megadott kapcsolati beállítások csak a Módosítások alkalmazása lehetőség kiválasztásakor lesznek érvényesítve. A Tulajdonságok panel és annak egyszerűsített megközelítése csökkenti a kapcsolatok szerkesztésekor generált lekérdezések számát, ami fontos lehet big data-forgatókönyvek esetén, különösen DirectQuery-kapcsolatok használatakor. A Tulajdonságok panelen létrehozott kapcsolatok is fejlettebbek lehetnek, mint a Kapcsolatok szerkesztése párbeszédpanelen létrehozható kapcsolatok.

A Modell nézet diagramelrendezéseiben több kapcsolatot is kijelölhet a Ctrl billentyűt lenyomva, és több sort kijelölve több kapcsolatot is kijelölhet. A közös tulajdonságok szerkeszthetők a Tulajdonságok panelen, és a módosítások alkalmazása egy tranzakcióban dolgozza fel a módosításokat.

Az egy vagy több kijelölt kapcsolat a Delete billentyű lenyomásával is törölhető. A törlési művelet nem vonható vissza, ezért egy párbeszédpanel kéri, hogy erősítse meg a kapcsolatok törlését.

Fontos

A kapcsolatok szerkesztése a Tulajdonságok panel funkcióban jelenleg előzetes verzióban érhető el. Az előzetes verzióban várhatóan változni fognak a funkciók és dokumentáció. Ezt a funkciót engedélyeznie kell a Power BI Desktopban a Fájlbeállítások > és beállítások > előzetes > verziójú funkcióinak megtekintésével, majd a GLOBÁLIS szakaszban jelölje be a Kapcsolat panel melletti jelölőnégyzetet.

További beállítások konfigurálása

Kapcsolat létrehozásakor vagy szerkesztésekor további beállításokat is konfigurálhat. Alapértelmezés szerint a Power BI Desktop a legjobb becslése alapján automatikusan konfigurál további beállításokat, amelyek az oszlopok adatai alapján minden kapcsolat esetében eltérőek lehetnek.

Számosság

A Számosság beállítás az alábbi beállítások egyikével rendelkezhet:

Több az egyhez (*:1):: A több az egyhez kapcsolat a leggyakoribb, alapértelmezett kapcsolattípus. Ez azt jelenti, hogy egy adott tábla oszlopának több példánya is lehet egy értéknek, a másik kapcsolódó tábla pedig, amelyet gyakran keresési táblaként ismernek, csak egy értékpéldánysal rendelkezik.

Egy az egyhez (1:1): Egy-az-egyhez kapcsolat esetén az egyik tábla oszlopa csak egy adott érték egy példányával rendelkezik, a másik kapcsolódó táblában pedig csak egy adott érték egy példánya található.

Egy-a-többhöz (1:*): Egy-a-többhöz kapcsolatokban az egyik tábla oszlopa csak egy adott értékkel rendelkezik, a másik kapcsolódó tábla pedig egynél több értékkel.

Több-a-többhöz (*:*): Összetett modellekkel több-a-többhöz kapcsolatot hozhat létre a táblák között, ami eltávolítja a táblák egyedi értékeire vonatkozó követelményeket. Ez továbbá a korábbi megkerülő megoldásokat is eltávolítja, például új táblák bevezetését kizárólag kapcsolatok létrehozásához. További információ: Több-több számosságú kapcsolatok.

A számosság módosításának időpontjáról további információt a további lehetőségek ismertetése című témakörben talál.

Keresztszűrés iránya

A Keresztszűrés iránya beállítás a következő beállításokkal rendelkezhet:

Mindkettő: Szűrési célokra a rendszer mindkét táblát egyetlen táblaként kezeli. A Mindkét beállítás jól működik egyetlen táblával, amely számos keresési táblával rendelkezik, amelyek körülveszi. Ilyen például az értékesítési tényleges adatok táblája, amelynek a részlegéhez tartozik egy keresési tábla. Ezt a konfigurációt gyakran csillagséma-konfigurációnak (több keresési táblával rendelkező központi táblázatnak) nevezik. Ha azonban két vagy több olyan táblája van, amelyek keresési táblákkal is rendelkeznek (néhány közös), akkor nem szeretné használni a Mindkettő beállítást. Az előző példa folytatásához ebben az esetben egy költségvetési értékesítési táblával is rendelkezik, amely az egyes részlegek tervezett költségvetését rögzíti. A részlegtábla pedig az értékesítéshez és a költségvetési táblához is kapcsolódik. Kerülje az ilyen típusú konfiguráció mindkét beállítását.

Egyetlen: A leggyakoribb alapértelmezett irány, ami azt jelenti, hogy a csatlakoztatott táblákban a szűrési lehetőségek azon a táblán működnek, ahol az értékek összesítése történik. Ha Power Pivotot importál az Excel 2013-ban vagy korábbi adatmodellben, minden kapcsolatnak egyetlen iránya lesz.

A keresztszűrés irányának módosításáról további információt a További lehetőségek ismertetése című témakörben talál.

Kapcsolat aktívvá tétele

Ha be van jelölve, a kapcsolat az aktív, alapértelmezett kapcsolatként szolgál. Olyan esetekben, amikor két tábla között több kapcsolat is van, az aktív kapcsolat lehetővé teszi, hogy a Power BI Desktop automatikusan olyan vizualizációkat hozzon létre, amelyek mindkét táblát tartalmazzák.

Ha többet szeretne tudni arról, hogy mikor legyen aktív egy adott kapcsolat, olvassa el a További lehetőségek ismertetése című témakört.

Kapcsolatok ismertetése

Miután összekapcsolt két táblát egy kapcsolattal, mindkét táblában úgy dolgozhat az adatokkal, mintha egyetlen tábla lennének. Ezután nem kell aggódnia a kapcsolat részletei miatt, vagy a táblákat egyetlen táblába kell egyesítenie, mielőtt importálja őket. A Power BI Desktop számos esetben automatikusan létrehozhat kapcsolatokat. Ha azonban a Power BI Desktop nem tudja nagy bizonyossággal meghatározni, hogy léteznie kell-e két tábla közötti kapcsolatnak, akkor nem hozza létre automatikusan a kapcsolatot. Ebben az esetben ezt kell tennie.

Tekintsünk át egy gyors oktatóanyagot, amelyből jobban megismerheti, hogyan működnek a kapcsolatok a Power BI Desktopban.

Tipp.

Ezt a leckét saját maga is elvégezheti:

  1. Másolja a következő ProjectHours táblázatot egy Excel-munkalapra (a cím kivételével), jelölje ki az összes cellát, majd válassza a Táblázat beszúrása lehetőséget>.
  2. A Tábla létrehozása párbeszédpanelen válassza az OK gombot.
  3. Jelöljön ki egy táblázatcellát, válassza a Táblatervező>tábla neve lehetőséget, majd írja be a ProjectHours nevet.
  4. Tegye ugyanezt a CompanyProject tábla esetében is.
  5. Importálja az adatokat az Adatok lekérése a Power BI Desktopban használatával. Válassza ki a két táblát adatforrásként, majd válassza a Betöltés lehetőséget.

Az első tábla, a ProjectHours a munkajegyek rekordja, amely rögzíti, hogy egy személy hány órát dolgozott egy adott projekten.

ProjectHours

Jegy SubmittedBy Óra Projekt DateSubmit
1001 1002 Brewer, Alan 22 Kék 1/1/2013
1002 1002 Brewer, Alan 26 Piros 2/1/2013
1003 Ito, Shu 34 Sárga 12/4/2012
1004 1002 Brewer, Alan 13 Narancssárga 1/2/2012
1005 Bowen, Eli 29 Purple 10/1/2013
1006 Bento, Nuno 35 Zöld 2/1/2013
1007 Hamilton, David 10 Sárga 10/1/2013
1008 Han, Mu 28 Narancssárga 1/2/2012
1009 Ito, Shu 22 Purple 2/1/2013
1010 Bowen, Eli 28 Zöld 10/1/2013
1011 Bowen, Eli 9 Kék 10/15/2013

Ez a második tábla, a CompanyProject a hozzárendelt prioritású projektek listája: A, B vagy C.

CompanyProject

ProjName Priority (Prioritás)
Kék A
Piros h
Zöld K
Sárga K
Purple h
Narancssárga K

Figyelje meg, hogy minden tábla rendelkezik egy projektoszloppal. Mindegyik neve kissé eltérő, de az értékek úgy néznek ki, mintha ugyanazok lennének. Ez a különbség fontos, és hamarosan visszatérünk hozzá.

Most, hogy a két táblát egy modellbe importáltuk, hozzunk létre egy jelentést. Elsőként a projektprioritás által elküldött órák számát szeretnénk megkapni, ezért a Mezők panelen a Prioritás és az Órák lehetőséget választjuk.

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

Ha a jelentésvásznon tekintjük meg a táblázatot, látni fogja, hogy az órák száma minden projekt esetében 256, ami egyben az összeg is. Nyilvánvaló, hogy ez a szám nem helyes. Miért? Ennek az az oka, hogy a két tábla közötti kapcsolat nélkül nem tudjuk kiszámítani az egyik táblából (a Projekt táblában lévő órák) származó értékek összegét egy másik táblában (Prioritás a Vállalatiprojekt táblában) lévő értékek szerint.

Tehát hozzunk létre egy kapcsolatot a két tábla között.

Emlékszik azokra az oszlopokra, amelyeket mindkét táblában láttunk projektnévvel, de hasonló értékekkel? Ezt a két oszlopot használva hozzunk létre kapcsolatot a táblák között.

Miért ezek az oszlopok? Nos, ha megnézzük a ProjectHours tábla Projekt oszlopát, olyan értékeket látunk, mint a Kék, a Piros, a Sárga, a Narancssárga stb. Valójában több olyan sort látunk, amelyek azonos értékkel rendelkeznek. Valójában számos színértékünk van a Projecthez.

Ha megnézzük a CompanyProject tábla ProjName oszlopát, azt látjuk, hogy a projektnévhez csak egy színérték tartozik. A táblázat minden színértéke egyedi, és ez azért fontos, mert kapcsolatot hozhatunk létre a két tábla között. Ebben az esetben egy több az egyhez kapcsolat. Több-az-egyhez kapcsolat esetén az egyik tábla legalább egy oszlopának egyedi értékeket kell tartalmaznia. Néhány kapcsolathoz további lehetőségek is rendelkezésre állnak, amelyeket később áttekintünk. Egyelőre hozzunk létre kapcsolatot a két tábla projektoszlopai között.

Az új kapcsolat létrehozása

  1. Válassza a Kapcsolatok kezelése lehetőséget a Modellezés lapon.

  2. A Kapcsolatok kezelése területen az Új lehetőséget választva nyissa meg a Kapcsolat létrehozása párbeszédpanelt, ahol kiválaszthatjuk a kapcsolathoz használni kívánt táblákat, oszlopokat és egyéb beállításokat.

  3. Az első legördülő listában válassza a ProjectHours elemet első táblázatként, majd válassza ki a Project oszlopot. Ez az oldal a kapcsolatunk sok oldala.

  4. A második legördülő listában a CompanyProject elő van jelölve második táblaként. Válassza ki a ProjName oszlopot. Ez az oldal a kapcsolatunk egyik oldala.

  5. Fogadja el a kapcsolat beállításainak alapértelmezett beállításait, majd kattintson az OK gombra.

    Screenshot of the Create relationship dialog box.

  6. A Kapcsolatok kezelése párbeszédpanelen válassza a Bezárás lehetőséget.

A teljes nyilvánosságra hozatal érdekében most hozta létre ezt a kapcsolatot a legnehezebb módon. Az Automatikus észlelés lehetőséget a Kapcsolatok kezelése párbeszédpanelen is kiválaszthatja. Valójában az automatikus észlelés automatikusan létrehozta volna a kapcsolatot az adatok betöltésekor, ha mindkét oszlopnak ugyanaz a neve.

Most nézzük meg újra a táblázatot a jelentésvászonon.

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

Ez sokkal jobban néz ki, nem igaz?

Amikor prioritás szerint összegzünk órákat, a Power BI Desktop megkeresi a CompanyProject keresési táblában lévő egyedi színértékek minden példányát, megkeresi a ProjectHours tábla egyes értékeinek minden példányát, majd kiszámítja az egyes egyedi értékek összegét.

Az automatikus észlelés miatt előfordulhat, hogy nem is kell ennyit tennie.

További lehetőségek ismertetése

Ha létrejön egy kapcsolat, akár automatikus észleléssel, akár manuálisan hoz létre egyet, a Power BI Desktop automatikusan további beállításokat konfigurál a táblák adatai alapján. Ezek a további kapcsolati beállítások a Kapcsolat létrehozása és a Kapcsolat szerkesztése párbeszédpanel alsó részén találhatók.

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

A Power BI általában automatikusan beállítja ezeket a beállításokat, és nem kell őket módosítania. Azonban számos olyan helyzet van, amikor ezeket a beállításokat saját maga szeretné konfigurálni.

Automatikus kapcsolatfrissítések

Kezelheti, hogy a Power BI hogyan kezeli és automatikusan módosítja a kapcsolatokat a jelentésekben és modellekben. Ha meg szeretné adni, hogy a Power BI hogyan kezeli a kapcsolatok beállításait, válassza a Fájlbeállítások>és beállítások>lehetőséget a Power BI Desktopban, majd válassza az Adatbetöltés lehetőséget a bal oldali panelen. Megjelennek a kapcsolatok beállításai.

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

Három lehetőség közül választhat és engedélyezhet:

  • Kapcsolatok importálása adatforrásokból az első betöltéskor: Ez a beállítás alapértelmezés szerint be van jelölve. Ha ki van választva, a Power BI ellenőrzi az adatforrásban definiált kapcsolatokat, például az adattárházban lévő külső kulcs-/elsődlegeskulcs-kapcsolatokat. Ha ilyen kapcsolatok léteznek, az adatok első betöltésekor a Power BI-adatmodellbe lesznek tükrözve. Ez a beállítás lehetővé teszi, hogy gyorsan elkezdjen dolgozni a modellel, ahelyett, hogy saját maga kellene megkeresnie vagy definiálnia ezeket a kapcsolatokat.

  • Kapcsolatok frissítése vagy törlése az adatok frissítésekor: Ez a beállítás alapértelmezés szerint nincs kijelölve. Ha kiválasztja, a Power BI ellenőrzi az adatforrás-kapcsolatok változásait a szemantikai modell frissítésekor. Ha ezek a kapcsolatok megváltoztak vagy el lettek távolítva, a Power BI a saját adatmodelljében tükrözi ezeket a változásokat, és frissíti vagy törli őket az egyezésre.

    Figyelmeztetés

    Ha a megadott kapcsolatokra támaszkodó sorszintű biztonságot használ, nem javasoljuk a beállítás kiválasztását. Ha eltávolít egy kapcsolatot, amelyre az RLS-beállítások támaszkodnak, előfordulhat, hogy a modell kevésbé biztonságos.

  • Új kapcsolatok automatikus észlelése az adatok betöltése után: Ezt a beállítást az Automatikus észlelés a betöltés során című témakörben ismertetjük.

Az adatok jövőbeli frissítése eltérő számosságot igényel

A Power BI Desktop általában automatikusan meg tudja határozni a kapcsolat legjobb számosságát. Ha felül kell bírálnia az automatikus beállítást, mert tudja, hogy az adatok a jövőben megváltoznak, módosíthatja azt a Számosság vezérlővel. Tekintsünk meg egy példát, ahol egy másik számosságot kell kiválasztanunk.

A CompanyProjectPriority tábla az összes vállalati projekt és azok prioritásának listája. A ProjectBudget tábla azoknak a projekteknek a készlete, amelyekhez a költségvetést jóváhagyták.

CompanyProjectPriority

ProjName Priority (Prioritás)
Kék A
Piros h
Zöld K
Sárga K
Purple h
Narancssárga K

ProjectBudget

Jóváhagyott projektek BudgetAllocation AllocationDate
Kék 40 000 12/1/2012
Piros 100 000 12/1/2012
Zöld 50 000 12/1/2012

Ha kapcsolatot hozunk létre a ProjectBudget tábla Jóváhagyott projektek oszlopa és a CompanyProjectPriority tábla ProjectName oszlopa között, a Power BI automatikusan egyre állítja a számosságot(1:1), a keresztszűrési irányt pedig mindkettőre.

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

A Power BI azért teszi ezeket a beállításokat, mert a Power BI Desktopban a két táblázat legjobb kombinációja a következő:

ProjName Priority (Prioritás) BudgetAllocation AllocationDate
Kék A 40 000 12/1/2012
Piros h 100 000 12/1/2012
Zöld K 50 000 12/1/2012
Sárga K

Purple h

Narancssárga K

A két tábla között egy-az-egyhez kapcsolat van, mert a kombinált tábla ProjName oszlopában nincsenek ismétlődő értékek. A ProjName oszlop egyedi, mert minden érték csak egyszer fordul elő, ezért a két tábla sorai közvetlenül, duplikáció nélkül kombinálhatók.

Tegyük fel azonban, hogy tudja, hogy az adatok a következő frissítéskor megváltoznak. A ProjectBudget tábla frissített verziója mostantól további sorokat tartalmaz a Kék és a Piros projektekhez:

ProjectBudget

Jóváhagyott projektek BudgetAllocation AllocationDate
Kék 40 000 12/1/2012
Piros 100 000 12/1/2012
Zöld 50 000 12/1/2012
Kék 80 000 6/1/2013
Piros 90,000 6/1/2013

Ezek a további sorok a két tábla legjobb kombinációját jelentik:

ProjName Priority (Prioritás) BudgetAllocation AllocationDate
Kék A 40 000 12/1/2012
Piros h 100 000 12/1/2012
Zöld K 50 000 12/1/2012
Sárga K

Purple h

Narancssárga K

Kék A 80000 6/1/2013
Piros h 70 000 6/1/2013

Ebben az új kombinált táblában a ProjName oszlop ismétlődő értékekkel rendelkezik. A két eredeti tábla nem lesz egy-az-egyhez kapcsolat a tábla frissítése után. Ebben az esetben, mivel tudjuk, hogy a jövőbeli frissítések miatt a ProjName oszlop duplikációkat fog eredményezni, a Számosságértékét egy (*:1) értékre szeretnénk állítani, a ProjectBudget és a CompanyProjectPriority több oldalán.

Keresztszűrés irányának módosítása összetett táblák és kapcsolatok halmazához

A legtöbb kapcsolat esetében a keresztszűrés iránya Mindkettő értékre van állítva. Vannak azonban szokatlanabb körülmények, amikor előfordulhat, hogy ezt a beállítást az alapértelmezetttől eltérően kell beállítania. Ilyen például, ha a Power Pivot egy régebbi verziójából importál egy modellt, ahol minden kapcsolat egyetlen irányba van beállítva.

A Mindkét beállítás lehetővé teszi, hogy a Power BI Desktop úgy kezelje a csatlakoztatott táblák minden aspektusát, mintha egyetlen tábla lennének. Vannak azonban olyan helyzetek, amikor a Power BI Desktop nem tudja beállítani egy kapcsolat keresztszűrésének irányát Mindkettő értékre, és nem egyértelmű alapértelmezett értékeket biztosít jelentéskészítési célokra. Ha a kapcsolat keresztszűrésének iránya nem mindkettő, akkor az általában azért van, mert kétértelműséget eredményezne. Ha az alapértelmezett keresztszűrő beállítás nem működik Önnél, próbálja meg egy adott táblára vagy mindkettőre beállítani.

Az egyirányú keresztszűrés számos esetben működik. Ha az Excel 2013-ban vagy korábbi verzióiban importált egy modellt a Power Pivotból, az összes kapcsolat egyetlen irányba lesz beállítva. Az egyetlen irány azt jelenti, hogy a csatlakoztatott táblák szűrési lehetőségei azon a táblán működnek, ahol az összesítési munka történik. Néha a keresztszűrés megértése kissé nehéz lehet, ezért nézzünk meg egy példát.

Egyirányú keresztszűrés esetén, ha olyan jelentést hoz létre, amely összegzi a projektórákat, akkor a CompanyProject tábla és annak Prioritás oszlopa, illetve a CompanyEmployee tábla és annak Város oszlopa alapján is összegzheti (vagy szűrheti). Ha azonban projektenként meg szeretné számolni az alkalmazottak számát (ez kevésbé gyakori kérdés), az nem fog működni. Egy olyan értékoszlopot fog kapni, amely megegyezik. Az alábbi példában mindkét kapcsolat keresztszűrési iránya egyetlen irányra van beállítva: a ProjectHours tábla felé. Az Értékek mezőben a Projekt mező a Count (Darabszám) értékre van állítva:

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

A szűrőspecifikáció a CompanyProjecttől a ProjectHoursig fog áramlani (az alábbi képen látható módon), de nem fog a CompanyEmployee-be áramlani.

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

Ha azonban a keresztszűrési irányt Mindkettő értékre állítja, az működni fog. A Mindkét beállítás lehetővé teszi, hogy a szűrőspecifikáció a CompanyEmployee felé haladjon.

Diagram of a cross filtering example with flow both ways

Ha a keresztszűrési irány mindkettőre van állítva, a jelentés helyesen jelenik meg:

Screenshot of cross filtering direction set to Both.

Mindkét irány keresztszűrése jól működik a táblázatkapcsolatok mintájához, például a korábban bemutatott mintához. Ezt a sémát leggyakrabban csillagsémaként nevezik, például a következőhöz:

Diagram of cross filtering both directions in star schema.

A keresztszűrés iránya nem működik jól az adatbázisokban gyakran előforduló általánosabb mintával, például az alábbi ábrán:

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

Ha egy ilyen táblázatminta hurkokkal rendelkezik, akkor a keresztszűrés kétértelmű kapcsolatok készletét hozhatja létre. Ha például összead egy mezőt a TableX-ből, majd úgy dönt, hogy a TableY egy mezője alapján szűr, akkor nem egyértelmű, hogy a szűrő hogyan haladjon a felső vagy az alsó táblán keresztül. Az ilyen típusú mintára gyakori példa, hogy a TableX értékesítési táblázatként tényleges adatokat tartalmaz, a TableY pedig költségvetési adatokat tartalmaz. Ezután a középső táblák olyan keresési táblák, amelyeket mindkét tábla használ, például osztás vagy régió.

Az aktív/inaktív kapcsolatokhoz hasonlóan a Power BI Desktop nem engedélyezi a kapcsolatok mindkettőre való beállítását, ha kétértelműséget hoz létre a jelentésekben. Ezt a helyzetet többféleképpen is kezelheti. Íme a két leggyakoribb:

  • A kétértelműség csökkentése érdekében törölje vagy jelölje meg a kapcsolatokat inaktívként. Ezután lehet, hogy beállíthat egy kapcsolat keresztszűrését mindkettőként.
  • Hozzon be kétszer egy táblát (a második alkalommal más néven), hogy kiküszöbölje a hurkokat. Így a kapcsolatok mintája olyan, mint egy csillagséma. Csillagséma esetén az összes kapcsolat beállítható mindkettőre.

Helytelen aktív kapcsolat

Amikor a Power BI Desktop automatikusan hoz létre kapcsolatokat, néha több kapcsolat is létrejön két tábla között. Ha ez a helyzet áll fenn, a kapcsolatok közül csak az egyik aktív. Az aktív kapcsolat az alapértelmezett kapcsolat, így ha két különböző tábla mezőit választja ki, a Power BI Desktop automatikusan létrehozhat egy vizualizációt. Bizonyos esetekben azonban az automatikusan kiválasztott kapcsolat hibás lehet. A Kapcsolatok kezelése párbeszédpanelen beállíthatja a kapcsolatot aktívként vagy inaktívként, vagy beállíthatja az aktív kapcsolatot a Kapcsolat szerkesztése párbeszédpanelen.

Az alapértelmezett kapcsolat biztosításához a Power BI Desktop egyszerre csak egyetlen aktív kapcsolatot engedélyez két tábla között. Ezért először inaktívként kell beállítania az aktuális kapcsolatot, majd be kell állítania az aktív kapcsolatot.

Lássunk egy példát. Az első tábla a ProjectTickets, a második pedig az EmployeeRole.

ProjectTickets

Jegy OpenedBy SubmittedBy Óra Projekt DateSubmit
1001 Perham, Tom 1002 Brewer, Alan 22 Kék 1/1/2013
1002 Római, Dániel 1002 Brewer, Alan 26 Piros 2/1/2013
1003 Roth, Daniel Ito, Shu 34 Sárga 12/4/2012
1004 Perham, Tom 1002 Brewer, Alan 13 Narancssárga 1/2/2012
1005 Római, Dániel Bowen, Eli 29 Purple 10/1/2013
1006 Roth, Daniel Bento, Nuno 35 Zöld 2/1/2013
1007 Roth, Daniel Hamilton, David 10 Sárga 10/1/2013
1008 Perham, Tom Han, Mu 28 Narancssárga 1/2/2012
1009 Római, Dániel Ito, Shu 22 Purple 2/1/2013
1010 Roth, Daniel Bowen, Eli 28 Zöld 10/1/2013
1011 Perham, Tom Bowen, Eli 9 Kék 10/15/2013

EmployeeRole

Alkalmazott Szerepkör
Bento, Nuno Projektmenedzser
Bowen, Eli Projekt érdeklődője
1002 Brewer, Alan Projektmenedzser
Hamilton, David Projekt érdeklődője
Han, Mu Projekt érdeklődője
Ito, Shu Projekt érdeklődője
Perham, Tom Projektszponzor
Római, Dániel Projektszponzor
Roth, Daniel Projektszponzor

Valójában két kapcsolat van itt:

  • Az EmployeeRole tábla Alkalmazottja és a ProjectTickets táblában lévő SubmittedBy között.
  • A ProjectTickets tábla OpenedBy és az EmployeeRole tábla Alkalmazottja között.

Screenshot of a two-relationship example.

Ha mindkét kapcsolatot hozzáadjuk a modellhez (először OpenedBy ), akkor a Kapcsolatok kezelése párbeszédpanelen látható, hogy az OpenedBy aktív:

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

Most, ha létrehozunk egy jelentést, amely az EmployeeRole szerepkör- és alkalmazottmezőit használja, és a ProjectTickets Órák mezőjét egy táblavizualizációban a jelentésvásznon, csak a projektszponzorokat látjuk, mert csak ők nyitottak meg egy projektjegyet.

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

Módosíthatjuk az aktív kapcsolatot, és az OpenedBy helyett lekérhetjük a SubmittedByt. A Kapcsolatok kezelése területen törölje a jelet a ProjectTickets(OpenedBy) és az EmployeeRole(Employee) kapcsolatból, majd ellenőrizze az EmployeeRole(Employee) to Project Tickets(SubmittedBy) kapcsolatot.

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

Az összes kapcsolat megtekintése Kapcsolat nézetben

Előfordulhat, hogy a modell több táblával és összetett kapcsolatokkal rendelkezik közöttük. A Power BI Desktop kapcsolatnézete egy könnyen érthető és testreszabható diagramon jeleníti meg a modellben lévő összes kapcsolatot, azok irányát és számosságát.

További információ: Kapcsolat nézet a Power BI Desktopban.

Hibaelhárítás

Ez a szakasz útmutatást és hibaelhárítási információkat nyújt a Power BI-kapcsolatok használatakor.

A mezők közötti kapcsolatok nem határozhatók meg

A Power BI a használt modell kapcsolatainak következtetésével megkísérli megjeleníteni a releváns adatokat a vizualizációkban. Néha az ilyen következtetések nem egyértelműek, és előfordulhat, hogy meglepődve lát egy hibát a vizualizációban, ami azt jelzi, hogy bizonyos oszlopok között nincs kapcsolat.

Ha meg szeretné magyarázni, hogy a Power BI hogyan határozza meg, hogy a mezők összefüggnek-e, használjunk példamodellt a következő szakaszok néhány forgatókönyvének szemléltetéséhez. Az alábbi képen a példaforgatókönyvekben használt mintamodell látható.

Screenshot of a sample model used in troubleshooting scenarios.

1. forgatókönyv: Hagyományos csillagséma, és nincs megadva mértékkorlátozás. Az előző képen szereplő mintamodellre hivatkozva először a képek jobb felében tekintsük meg a Vendor – Purchases – Product táblákat. Ez a példa egy hagyományos csillagséma a Tény táblával (Vásárlások) és két Dimenzió táblával (Product and Vendor). A dimenziótáblák és a ténytábla közötti kapcsolat 1 és több között van (egy termék több vásárlásnak felel meg, egy szállító pedig több vásárlásnak felel meg). Az ilyen típusú sémákban olyan kérdésekre is választ kaphatunk, mint az X termékhez tartozó Értékesítések ésMilyen értékesítések vannak az Y szállítóhoz? és Milyen termékeket ad el a Vendor Y?

Ha a termékeket és szállítókat korrelálni szeretnénk, a Vásárlások táblában megnézve megállapíthatjuk, hogy van-e egy bejegyzés ugyanazzal a termékkel és szállítóval. Egy mintalekérdezés a következő példához hasonlóan nézhet ki:

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

Ez where CountRows(Purchases)>0 egy implicit korlátozás, amelyet a Power BI a releváns adatok visszaadása érdekében adna hozzá. Ha ezt a korrelációt a Vásárlások táblán keresztül végezzük, visszaadhatjuk a termék-szállítók olyan párosítását, amelyek egy ténytáblában legalább egy bejegyzéssel rendelkeznek, az adat szempontjából értelmes párosításokat. Számíthat arra, hogy a Product-Vendor olyan nem érzékeny kombinációi, amelyekhez soha nem volt értékesítés (ami elemzésre használhatatlan lenne) nem jelenik meg.

2. forgatókönyv: Hagyományos csillagséma és mértékkorlátozás. Az 1. forgatókönyv előző példájában, ha a felhasználó összegzett oszlop formájában (például vásárlások összege/átlaga/darabszáma) vagy modellmértékként (VendID eltérő száma) biztosít kényszert, a Power BI a következő példa formájában tud lekérdezést létrehozni:

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

Ilyen esetben a Power BI olyan kombinációkat kísérel meg visszaadni, amelyek a felhasználó által megadott korlátozás szempontjából jelentőséggel bíró értékekkel rendelkeznek (nem üres). A Power BI-nak nem kell hozzáadnia a CountRows(Purchases)>0 saját implicit korlátozását is, például azt, hogy mi történt az előző 1. forgatókönyvben, mert a felhasználó által megadott korlátozás elegendő.

3. forgatókönyv: Nem csillagséma és nincs megadva mértékkorlátozás. Ebben a forgatókönyvben a modell középpontjára összpontosítjuk a figyelmünket, ahol a Sales – Product – Purchases táblák találhatók, ahol egy dimenziótábla (Termék) és két ténytábla (Értékesítés, Vásárlások) található. Mivel ez a példa nem csillagséma, nem tudjuk megválaszolni ugyanazokat a kérdéseket, mint az 1. forgatókönyvben. Tegyük fel, hogy megpróbáljuk korrelálni a vásárlásokat és az értékesítéseket, mivel a vásárlások több-1 kapcsolatban vannak a Termékkel, a Product pedig 1–1 kapcsolattal rendelkezik a Sales szolgáltatással. Az értékesítések és a vásárlások közvetetten több a többhöz. Egy terméket számos vásárláshoz és egy termékhez kapcsolhatunk számos értékesítéshez, de egy értékesítést nem kapcsolhatunk össze több vásárláshoz , vagy fordítva. Számos vásárlást csak számos értékesítéshez kapcsolhatunk össze.

Ebben az esetben, ha a Vásárlás[VenID] és a Sales[CustID] függvényt egy vizualizációban próbáljuk kombinálni, a Power BI nem rendelkezik konkrét korlátozással, amely a táblák közötti Sok-sok kapcsolat miatt alkalmazható. Bár lehetnek olyan egyéni kényszerek (nem feltétlenül a modellben létrehozott kapcsolatokból erednek), amelyek különböző forgatókönyvekre alkalmazhatók, a Power BI nem tudja kizárólag a kapcsolatok alapján következtetni az alapértelmezett kényszerre. Ha a Power BI megpróbálja visszaadni a két tábla összes kombinációját, akkor nagy keresztcsatlakozás jön létre, és nem releváns adatokat ad vissza. Ehelyett a Power BI hibát jelez a vizualizációban, például az alábbiakat.

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

4. forgatókönyv: Nem csillagséma és mértékkorlát van megadva. Ha a 3. forgatókönyvből vesszük a példát, és egy felhasználó által megadott kényszert adunk hozzá egy összegzett oszlop (például Termék száma[ProdID] vagy modellmérték (Sales[Total Qty]) formájában, a Power BI létrehozhat egy lekérdezést korrelátumvásárlás[VenID] és Sales[CustID] formájában, ahol a MeasureConstraint nem üres.

Ebben az esetben a Power BI tiszteletben tartja a felhasználó kényszerét, mivel ez az egyetlen kényszer, amelyet a Power BI-nak alkalmaznia kell, és visszaadja a nem üres értékeket eredményező kombinációkat. A felhasználó végigvezette a Power BI-t a kívánt forgatókönyvre, és a Power BI alkalmazza az útmutatást.

5. forgatókönyv: Ha meg van adva egy mértékkorlátozás, de részben kapcsolódik az oszlopokhoz. Vannak olyan esetek, amikor a felhasználó által megadott mértékkorlátozás nem kapcsolódik teljesen a vizualizáció összes oszlopához. A modellmértékek mindig mindent összekapcsolnak. A Power BI fekete dobozként kezeli ezt a forgatókönyvet, amikor megpróbál kapcsolatot keresni a vizualizáció oszlopai között, és feltételezi, hogy a felhasználó tudja, mit csinál a használatával. A felhasználói felületen kiválasztott Összeg, Átlag és hasonló összegzések formájában szereplő összesített oszlopok azonban csak a vizualizációban használt oszlopok/táblák egy részhalmazához kapcsolódhatnak annak a táblának a kapcsolatai alapján, amelyhez az oszlop tartozik. Ezért a korlátozás egyes oszlopok párosítására vonatkozik, de nem mindenkire. Ebben az esetben a Power BI megpróbálja megkeresni azokat az alapértelmezett korlátozásokat, amelyeket a felhasználó által megadott kényszer nem kapcsolódó oszlopokra alkalmazhat (például az 1. forgatókönyvben). Ha a Power BI nem talál ilyent, a következő hibaüzenet jelenik meg.

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

Kapcsolati hibák elhárítása

Amikor megjelenik a Mezőhiba közötti kapcsolatok nem határozhatók meg, a következő lépéseket követve megpróbálhatja megoldani a hibát:

  1. Ellenőrizze a modellt. Megfelelően van beállítva az elemzésből megválaszolni kívánt kérdések típusaihoz? Meg tudja változtatni a táblák közötti kapcsolatokat? El tudja kerülni, hogy közvetett sok-sokhoz hozzon létre?

    Fontolja meg a fordított V alakzatséma két táblává alakítását, és használjon közvetlen Több-többhöz kapcsolatot közöttük a Power BI Desktopban a több-többhöz kapcsolatok alkalmazásában leírtak szerint.

  2. Adjon hozzá egy korlátozást a vizualizációhoz összegzett oszlop vagy modellmérték formájában.

  3. Ha összegzett oszlopot ad hozzá, és továbbra is hiba van, érdemes lehet modellmértékeket használni.

A modellekről és kapcsolatokról az alábbi cikkekben talál további információt: