Megosztás a következőn keresztül:


Egy-az-egyhez kapcsolati útmutató

Ez a cikk adatmodellezőként célozza meg Önt, aki a Power BI Desktoppal dolgozik. Útmutatást nyújt az egy-az-egyhez modellkapcsolatok használatához. Egy-az-egyhez kapcsolat akkor hozható létre, ha mindkét tábla közös és egyedi értékeket tartalmazó oszlopot tartalmaz.

Feljegyzés

Ebben a cikkben nem foglalkozunk a modellkapcsolatok bemutatásával. Ha nem ismeri teljesen a kapcsolatokat, azok tulajdonságait vagy konfigurálását, javasoljuk, hogy először olvassa el a Modellkapcsolatok című cikket a Power BI Desktopban .

Az is fontos, hogy tisztában legyen a csillagséma kialakításával. További információ: A csillagséma és a Power BI fontossága.

Két forgatókönyvhöz tartoznak az egy-az-egyhez kapcsolatok:

  • Degenerált dimenziók: Egy ténytáblábólszármaztatható egy degenerált dimenzió.

  • Soradatok több táblára is kiterjednek: Egyetlen üzleti entitás vagy tárgy két (vagy több) modelltáblaként van betöltve, esetleg azért, mert az adatok különböző adattárakból származnak. Ez a forgatókönyv gyakran előfordulhat dimenziótáblák. A fő termékadatok például egy operatív értékesítési rendszerben vannak tárolva, a kiegészítő termékadatok pedig egy másik forrásban vannak tárolva.

    Szokatlan azonban, hogy két ténytáblát egy-az-egyhez kapcsolattal kapcsol össze. Ennek az az oka, hogy mindkét ténytáblának azonos dimenzióval és részletességgel kell rendelkeznie. Emellett minden ténytáblának egyedi oszlopokra van szüksége a modellkapcsolat létrehozásához.

Dimenziók degenerálása

Ha egy ténytáblából származó oszlopokat használ szűrésre vagy csoportosításra, érdemes lehet külön táblázatban elérhetővé tenni őket. Így elkülönítheti a szűréshez vagy csoportosításhoz használt oszlopokat a ténysorok összegzéséhez használt oszlopoktól. Ez az elkülönítés a következő lehet:

  • Csökkentse a tárterületet.
  • Egyszerűsítse a modellszámításokat.
  • Hozzájárul a jobb lekérdezési teljesítményhez.
  • Intuitívabb Adat panelt biztosít a jelentéskészítőknek.

Vegyünk egy Sales nevű forrástáblát, amely két oszlopban tárolja az értékesítési rendeléssor referenciaadatait.

Diagram bemutatja a Sales degenerált dimenziótáblához tartozó táblasorokat. A tervet a következő bekezdés ismerteti.

A OrderNumber oszlop tárolja a rendelésszámot, a OrderLineNumber oszlop pedig sorsorokat tárol a sorrenden belül.

Az alábbi képen láthatja, hogy a rendelésszám és a rendeléssorszám oszlopai még nem töltődtek be a Sales táblába. Ehelyett az értékeiket egy helyettesítő kulcs oszlop létrehozásához használták OrderLineNumberID. (A kulcs értékét úgy számítjuk ki, hogy megszorozzuk a rendelésszámot 1000-gyel, majd hozzáadjuk a rendeléssorszámot.)

Diagram két táblát mutat be: Sales és Sales Order. Egy egy-az-egyhez kapcsolat kapcsolja össze az Order Line Number ID oszlopokat.

A Sales Order dimenziótábla gazdag élményt nyújt a jelentéskészítők számára két oszlopával: Sales Order és Sales Order Line. Ezek az oszlopok támogatják azokat a jelentésterveket, amelyeknek szűrni, csoportosítani vagy részletezni kell a rendeléseket és a rendeléssorokat.

Mivel a Sales Order tábla az értékesítési adatokból származik, az egyes táblákban pontosan ugyanannyi sornak kell lennie. Ezenkívül az egyes OrderLineNumberID oszlopok között egyező értékeknek kell lenniük.

Soradatok több táblára kiterjedően

Vegyünk egy példát, amely két egy-az-egyhez kapcsolódó dimenziótáblát tartalmaz: Product és Product Category. Minden tábla importált adatokat jelöl, és egy SKU (készletmegőrzési egység) oszlopot tartalmaz, amely egyedi értékeket tartalmaz.

Íme egy részleges modelldiagram a két tábláról.

diagram egy olyan modellt ábrázol, amely két táblát tartalmaz, ahol a soradatok táblázatokat fednek le. A tervet a következő bekezdés ismerteti.

Az első tábla neve Product, és három oszlopot tartalmaz: Color, Productés SKU. A második tábla neve Product Category, és két oszlopot tartalmaz: Category és SKU. Az egy-az-egyhez kapcsolat a két SKU oszlopot összekapcsolja. A kapcsolat mindkét irányban szűr, ami mindig az egy-az-egyhez kapcsolatok esetében fordul elő.

A kapcsolatszűrő propagálásának működésének leírásához az alábbi képen néhány táblázatsor látható. A cikkben szereplő összes példa ezen adatokon alapul.

Termék- és termékkategória táblákat és néhány adatsort bemutató diagram. A sor részleteit a következő bekezdés ismerteti.

A két tábla soradatait a következő listajeles lista ismerteti:

  • A Product tábla három sorból áll:
    • SKU CL-01, Productpóló, ColorZöld
    • SKU CL-02, ProductJeans, ColorBlue
    • SKU AC-01, ProductHat, ColorKék
  • A Product Category tábla két sorból áll:
    • SKU CL-01, CategoryRuházat
    • SKU AC-01, CategoryTartozékok

Figyelje meg, hogy a Product Category tábla nem tartalmaz sort a termék SKU CL-02számára. A hiányzó sor következményeit a cikk későbbi részében tárgyaljuk.

A Adat panelen a jelentéskészítők két táblában találják meg a termékhez kapcsolódó mezőket: Product és Product Category. Lássuk, mi történik, ha mindkét tábla mezői hozzáadódnak egy táblavizualizációhoz. Ebben a példában a SKU oszlop a Product táblából származik.

Diagram, amely az Adatok panelt két táblával és egy négy oszlopot tartalmazó táblavizualizációval mutatja. A CL-02 termék SKU kategóriaértéke ÜRES.

Figyelje meg, hogy a termékváltozat Category értéke ÜRES. Ennek az az oka, hogy a termékhez tartozó Product Category táblában nincs megfelelő sor.

Ajánlások

Ha lehetséges, javasoljuk, hogy ne hozzon létre egy-az-egyhez modellkapcsolatokat, ha a soradatok a modelltáblákra terjednek ki. Ennek az az oka, hogy ez a kialakítás a következőt teheti:

  • Járuljon hozzá az Adatpanel zsúfoltságához, és a szükségesnél több táblát soroljon fel.
  • Megnehezítheti a jelentéskészítők számára a kapcsolódó mezők keresését, mert több táblában vannak elosztva.
  • Korlátozza a hierarchiák létrehozásának lehetőségét, mivel a szinteknek ugyanabból a táblából származó oszlopokon kell alapulniuk.
  • Váratlan eredményeket eredményez, ha a sorok nem teljes egyezést mutatnak a táblák között.

A konkrét javaslatok attól függően különböznek, hogy az egy-az-egyhez kapcsolat a forráscsoporton belül vagy a forráscsoporton belül van-e. A kapcsolatértékelésről további információt Modellkapcsolatok a Power BI Desktopbancímű témakörben talál.

Egy-az-egyhez kapcsolat a forráscsoporton belül

Ha egy-az-egyhez forráscsoport közötti kapcsolat áll fenn a táblák között, javasoljuk, hogy egyesítse az adatokat egyetlen modelltáblában. Ezt a Power Query-lekérdezések egyesítésével teheti meg.

Az alábbi lépések egy módszertant mutatnak be az egy-az-egyhez kapcsolódó adatok összevonására és modellezésére.

  1. Lekérdezések egyesítése: A két lekérdezés egyesítésekor figyelembe kell venni az egyes lekérdezések adatainak teljességét. Ha egy lekérdezés teljes sorkészletet (például főlistát) tartalmaz, egyesítse a másik lekérdezést vele. Állítsa be az egyesítési átalakítást úgy, hogy egy bal oldali külső illesztést használjon, amely az alapértelmezett illesztéstípus. Ez az illesztési típus biztosítja, hogy megtartsa az első lekérdezés összes sorát, és kiegészítse őket a második lekérdezés összes egyező sorával. Bontsa ki a második lekérdezés összes szükséges oszlopát az első lekérdezésbe.

    Egyetlen termék dimenziótáblába konszolidált adatokat ábrázoló diagram.

  2. Lekérdezési terhelés letiltása: Mindenképpen tiltsa le a második lekérdezés terhelését . Így nem tölti be az eredményét modelltáblaként. Ez a konfiguráció csökkenti az adatmodell tárolóméretét, és segít az Adatpanel zsúfoltságának megszüntetésében.

    A példánkban a jelentéskészítők egyetlen Product nevű táblát találnak az Adatok panelen. Az összes termékhez kapcsolódó mezőt tartalmazza.

  3. Hiányzó értékek lecserélése: Ha a második lekérdezés nem egyező sorokat tartalmaz, a null értékek megjelennek az abból beszúrt oszlopokban. Szükség esetén érdemes lehet lecserélni a null értékeket egy jogkivonat értékére. A hiányzó értékek cseréje különösen fontos, ha a jelentéskészítők oszlopértékek szerint szűrnek vagy csoportosítanak, mivel a BLANK-k megjelenhetnek a jelentésvizualizációkban.

    Az alábbi képen vegye észre, hogy a termék SKU CL-02 kategóriája most [Nem definiált]olvasható. A lekérdezésben a null kategóriák helyébe ezzel a jogkivonat szövegértékével léptek.

    A Termék tábla Adat ablaktábláját ábrázoló diagram. Emellett egy négy oszlopot tartalmazó táblavizualizációt is megjelenít. A CL-02 termékváltozat kategóriaértéke nincs definiálva.

  4. Hierarchiák létrehozása: Ha a most konszolidált tábla oszlopai között kapcsolatok vannak, érdemes lehet hierarchiákat létrehozni. Így a jelentéskészítők gyorsan azonosítják a jelentésvizualizációk részletezési lehetőségeit.

    Példánkban a jelentéskészítők most már használhatnak kétszintű hierarchiát: Category és Product.

    Az adatok panelt ábrázoló diagram. A Termék tábla tartalmazza a Termékek hierarchiát.

Ha szeretné, hogy a különálló táblák hogyan segítik a mezők rendszerezését, javasoljuk, hogy egyetlen táblába összesítse őket. Továbbra is rendszerezheti a mezőket, de ehelyett megjelenítési mappákat használhat.

A példánkban a jelentéskészítők a Category mezőt a Marketing megjelenítési mappában találják meg.

Diagram az Adat panelen, ahol a Kategória mező egy Marketing nevű megjelenítési mappában található.

Ha továbbra is úgy dönt, hogy a modellben egy-az-egyhez forráscsoport-kapcsolatokat határoz meg, lehetőség szerint ellenőrizze, hogy vannak-e egyező sorok a kapcsolódó táblákban. Mivel a forráscsoporton belüli egy-az-egyhez kapcsolat normál kapcsolatként van kiértékelve, az adatintegritási problémák BLANK-ként jelentkezhetnek a jelentésvizualizációkban. (Az ebben a cikkben bemutatott első táblavizualizációban egy BLANK csoportosítási példát láthat.)

Forráscsoportközi egy-az-egyhez kapcsolat

Ha egy-az-egyhez forráscsoportközi kapcsolat áll fenn a táblák között, nincs alternatív modellterv – hacsak nem összesíti előre az adatforrásban lévő adatokat. A Power BI korlátozott kapcsolatként értékeli ki az egy-az-egyhez modellt. Ezért ügyeljen arra, hogy a kapcsolódó táblákban egyező sorok legyenek, mivel a nem egyező sorok nem jelennek meg a lekérdezési eredmények között.

Egy diagram egy forráscsoport egy-az-egyhez kapcsolatát ábrázolja, amely egy korlátozott kapcsolat.

Lássuk, mi történik, ha mindkét tábla mezői hozzá vannak adva egy táblavizualizációhoz, és a táblák között korlátozott kapcsolat áll fenn.

diagram két táblázatvizualizációt mutat be, amelyeket a következő bekezdésben ismertetünk.

Az első táblázatvizualizáció, amely forráscsoportközi kapcsolatot használ, csak két sort jelenít meg. A termékváltozat CL-02 hiányzik, mert nincs egyező sor a Product Category táblában. A második táblavizualizáció, amely a modell egyetlen összevont tábláján alapul, három sort jelenít meg.

A cikkhez kapcsolódó további információkért tekintse meg a következő forrásokat: