Számított oszlopok (Calculated Columns) Power BI-ban
Aki volt nálam Power BI workshopon az nem is hallhatott a számított oszlopokról. És ez nem véletlen. Kezdő szinten tudatosan nem oktatom. 8-10 éve még oktattam a számított oszlopokat, de azt vettem észre, hogy sokan számított mezők (measures) helyett számított oszlopokkal oldottak meg mindent. És ez baj.
A számított oszlopok ugyanis nem hatékonyak. Szükséges rosszak, amit csak akkor használunk, ha az import során nem tudjuk, vagy nehezen tudjuk kiszámolni az oszlopok értékét.
A számított oszlop ugyan tömörítve van tárolva, de a tömörítés hatékonysága koránt sem olyan jó, mint az importált oszlopoké. A Tabular (A Power BI adatbáziskezelője) ugyanis a táblák rendezési sorrendjének meghatározásakor nem veszi figyelembe a számított oszlopokban tárolt értékeket.
Háttérinfó: A Tabular az import során heurisztikusan elkezdni rendezgetni az oszlopokat és közben méri, hogy melyik rendezés adja a legjobb eredményt. Ezt kb 10 másodpercig csinálja és a 10 másodperc alatt gyűjtött információk alapján hozza meg azt a döntést, hogy milyen sorrendben rendezze az oszlopokat. De ebben a döntésben nem veszek részt a számított oszlopok, így a számított oszlopok tárolása koránt sem lesz olyan hatékony, mint az importált oszlopoké.
És a számított oszlopok kiszámolásához a Tabular csak egy szálat tud használni és a számítást soronként iterálva hajtja végre. Ráadásul oszloponként iterál. Azaz, ha több számított oszlopunk is van a táblában, akkor
- Megfogja az első számított oszlopot
- Végigiterálva a teljes táblát kiszámolja az oszlop értékét, majd
- Megy a következő oszlopra,
- Végignyalja újra a teljes táblát
- Kiszámolja az oszlop értékét
- És így tovább
Ez nagy tábláknál igen költséges.
Mindezek miatt számított oszlopokat csak akkor használunk, ha
- Ha képlet megírásához DAX kell
- Ha a képlet kiszámításához kell valami az adatmodellből (pl másik measure)
- Ha nem értünk a Power Query-hez, vagy a forrásrendszer lekérdező nyelvéhez
Nem főben járó bűn számított oszlopot használni, ha a tábla kicsi, a képlet egyszerű, és csak kevés számított oszlopot használunk. De a legjobb gyakorlat az, hogy nem használunk számított oszlopokat. Minden sorszintű kalkulációt a betöltés közben (Power Query-vel), vagy ha terhelhetjük a forrásrendszert, akkor forrásoldalon számolunk ki.
Kővári Attila - BI projekt

POWER BI ADATMODELL TERVEZŐ WORKSHOP
Tudjon meg többet az itt elhangzottakról! Jöjjön el a 2025. december 11.-i Power BI adatmodell tervező tanfolyamra! Részletek >>

TABULAR INSIDE VIDEÓKURZUS
Tudjon meg többet az itt elhangzottakról és jelentkezzen a Tabular Inside videókurzusra! Részletek >>

BI projekt: BI & DWH Tervezés, tanfolyam, tanácsadás - 


Új hozzászólás