Globális/lokális számított mezők (measures) Power BI-ban

A számított mezőket (measure) két kategóriába sorolhatjuk:

  • Globális (elemzési célt szolgáló) számított mezők és
  • Lokális (vizualizációs célt szolgáló) számított mezők

A globális számított mezők minden dimenzió mentén jól számolnak, azaz nem fordulhat elő, hogy ha egy felhasználó egy globális számított mezőt behúz egy vizualizációba, akkor a vizualizáció hülyeséget mutat. Ezzel szemben a lokális számított mezők csak az adott vizualizációban számolnak jól, más vizualizációkban nincsenek értelmezve (vagy hülyeséget adhatnak vissza).

Tegyük fel hogy zárókészletet kell számolnom. Ha arra készülök, hogy csak egy adott vizualizációban kell megjeleníteni a zárókészletet mondjuk havi szinten, akkor úgy írom meg a számított mezőt, hogy havi szinten jól számoljon és nem törődők azzal, hogy hogy számol éves, negyedéves szinten.

Ha viszont elemzési célra készítem, akkor lekezelem azt is, hogy jól számoljon éves, negyedéves szinten, azaz ne aggregálja fel a havi készleteket negyedéves, éves szintre, mert az éves készlet nem azonos a havi készletek összegével.

Az elemzési céllal készült measure-t nevezzük globális számított mezőnek, a vizualizációs céllal készültet lokálisnak.

Ez mind szép és jó, de Power BI Desktopban nincsenek lokális és globális számított mezők. Illetve a motorháztető alatt vannak, de nincsenek kivezetve a felületre. Azaz fejlesztéskor nem tudom megmondani, hogy az adott számított mezőt csak egy vizualizációban (lokálisan) szeretnék létrehozni, vagy globálisan az adatmodellben, minden vizualizáció számára elérhetően. 

Hogyan tudjuk ezt áthidalni?

Power BI Service

Ha felhős Power BI-t használunk, akkor két pbix fájlt csinálunk: Egyet az adatmodellnek és egyet a riportnak.

  • Az adatmodelles fájl csak az adatmodellt (Dataset-et) tartalmazza, a riportot nem, és az adatmodelles fájlban fájlban definiáljuk a globális számított mezőket.
  • A riportos fájl csak vizualizációkat tartalmaz, adatmodellt nem. A Dataset-hez élő kapcsolattal csatlakozik. A riportos fájlban definiáljuk a lokális számított mezőket, azok nem kerülnek be a datasetbe.

Power BI Report Server

Power BI Report Server-ben nem választható szét az adatmodell és a riport, ott a fenti best practice nem működik.

Power BI Report Server használata esetén azt tudjuk csak tenni, hogy létrehozunk egy üres táblát az adatmodellben mondjuk “Viz Measures” néven, és ebbe a táblába tesszük a lokális számított mezőket, majd elrejtjük a táblát a felhasználók elől. Ez a módszer csak nekem (fejlesztőnek) segít majd, hogy elkülönítse a lokális számított mezőket a globálisaktól. De óriási segítség lesz ez amikor hozzá kell nyúlnom az évekkel ezelőtt készített modellhez, mert kapásból látni fogom, hogy melyik measure lett elemzési, és melyik lett vizualizációs céllal létrehozva.

Összefoglalva: Érdemes a lokális és globális számított mezőket elkülönítetten tárolni, még akkor is, ha a Power BI Desktop nem ismeri ezeket a fogalmakat.

Kővári Attila - BI projekt

POWER BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jöjjön el a 2023. június 14.-i Power BI workshopra vagy rendeljen kihelyezett képzést! Részletek >>

 

Új hozzászólás