Szerepjátszó dimenziók a Power BI-ban
Kővári Attila
2019. május 20.
Szerepjátszó dimenzióknak nevezzük azokat a dimenziókat (táblákat) amelyek ugyanazzal az adattartalommal más-más szerepet töltenek be egy adatmodellben.
Tipikus példa szerepjátszó dimenzióra a dátum dimenzió: Ugyanaz a dátum tábla szerepelhet az adatmodellben, mint teljesítés dátuma, számlázás dátuma, szállítás dátuma, stb. Ezek a táblák a nevükön kívül mindenben azonosak.
A szerepjátszó dimenziók arra lettek kitalálva, hogy csak egyszer kelljen tárolni a dimenziót - esetünkben a dátum táblát - és minden más szerepét a táblának, csak virtuálisan kelljen létrehozni, ne kelljen többször is letárolni az adatbázisban. Na ez utóbbi az, amit a Power BI nem tud.
Illetve pontosítok. Tudja a Power BI is, csak nem úgy, ahogy a relációs adattárház világában megszoktuk. Ott ugyanis lehetőségünk van arra, hogy a view-kal létrehozzuk a szerepjátszó dimenziókat és minden view-ban saját nevet adjunk az oszlopoknak (pl rendelés dátuma, számlázás dátuma, kiszállítás dátuma). Na ez utóbbit nem tudja a Power BI. Ezt csak úgy tudjuk elérni, hogy :
- Beimportáljuk újra a dátum táblát más néven
- Calculated táblát hozunk létre a Dátum tábla alapján:
Calculated Table (Számított táblázat) létrehozása Power BI-ban
Bár a neve alapján azt gondolhatnánk, hogy a Calculated Table nem kerül letárolásra, de ez nem igaz. A Calculated Table pont úgy tárolódik, mint egy kutya közönséges tábla. (Azaz nem olyan, mint a fenti relációs adattárházas példánál a nézetek)
Miért baj, hogy letárolódik? A dátum tábla esetén nem baj. Egy párezer soros tábla többszöri tárolásának nincs nagy költsége. De képzeljen egy olyan adatbázist, ahol hívásokat elemzünk és ugyanaz az ügyfél lehet a hívó és a hívott oldalon is. Kétszer letárolni egy többmillió soros ügyféltörzset csak azért, mert több szerepe lehet ugyanannak az ügyfélnek már lehet fájó.
Összefoglalva: Ha ugyanaz a tábla több szerepben is meg kell hogy jelenjen az adatmodellben és azt szeretnénk, hogy minden szerepjátszó dimenziótábla oszlopai utaljanak a szerep nevére (rendelés dátuma, számlázás dátuma, ...) akkor azokat többször is le kell tárolnunk.
Kővári Attila - BI projekt
Már készül a következő cikk. Kérjen értesítést a megjelenéséről itt.
Új hozzászólás