Ugrás a fő tartalomra

Számított oszlop vs. számított mező (Measure) a Power BI-ban


Számított oszlop vs. számított mező (Measure) a Power BI-ban


A Power BI két fő számítási típust kínál a modellben történő adatelemzéshez: számított oszlopok és számított mezők (Measure-ök). Bár mindkettő a DAX (Data Analysis Expressions) nyelvet használja, alapvető különbségek vannak közöttük.



1. Számított oszlop (Calculated Column)

A számított oszlop egy új oszlop, amelyet egy adott táblában hozunk létre, és soronként számítódik ki. Az oszlop minden sora rendelkezik egy értékkel, amelyet a megadott DAX-kifejezés alapján számítunk ki.

Jellemzői:

  • Minden egyes sorhoz egyedi értéket rendel.
  • Tárolt értékeket tartalmaz (az értékek a tárolt adatok részei lesznek).
  • Az értékek az adatok frissítésével (refresh) újraszámolódnak.
  • Hasonló a relációs adatbázisokban található oszlopokhoz.
  • A számítások az egyes sorokon belül történnek, nincs aggregáció.
  • Több memóriát fogyaszthat, mivel a számítási eredmények tárolásra kerülnek.

Példa számított oszlopra:

Tegyük fel, hogy van egy Sales nevű táblánk, amely tartalmazza a Unit Price és a Quantity oszlopokat. Ha szeretnénk egy új oszlopot, amely kiszámítja az egyes tranzakciók bevételét, a következő DAX kifejezést használhatjuk:

--DAX
Total Revenue = Sales[Unit Price] * Sales[Quantity]

Ebben az esetben minden egyes sor kap egy kiszámított értéket a táblában, amely a két oszlop szorzata.



2. Számított mező (Measure)

A számított mező olyan dinamikusan számított érték, amelyet vizualizációkban használunk, és az aktuális szűrési, szeletelési vagy aggregálási kontextus alapján számítódik ki.

Jellemzői:

  • Nem egy tábla konkrét oszlopához tartozik, hanem a teljes modellhez kapcsolódik.
  • Nem tárolja az értékeket, hanem dinamikusan számítódik ki.
  • A szűrők és szeletelők (slicers) hatására az értéke változhat.
  • Kisebb memóriaigényű, mivel nem tárol adatokat, hanem a lekérdezés során számítja ki az értékeket.
  • Aggregációkhoz használható (pl. SUM, AVERAGE, MAX, MIN, COUNT).

Példa számított mezőre:

Ha egy Total Revenue mértéket (Measure-t) szeretnénk létrehozni, amely az összes eladást összegzi:

--DAX
Total Revenue Measure = SUM(Sales[Unit Price] * Sales[Quantity])

Ez a measure automatikusan kiszámítódik, amikor egy vizualizációhoz hozzáadjuk, és figyelembe veszi az aktuális szűrőfeltételeket is.



3. Példa a különbségre vizualizációval

Tegyük fel, hogy egy oszlopdiagramot szeretnénk létrehozni, amely az Total Revenue értéket mutatja országonként.

  1. Ha számított oszlopként hozzuk létre a Total Revenue-t, akkor az minden egyes tranzakcióhoz külön számolódik ki, és az országok szerinti összesítéshez egy SUM aggregációt kell használnunk a vizualizációban.
  2. Ha Measure-ként használjuk, akkor a Power BI automatikusan az adott ország szűrési kontextusa alapján számolja ki az értéket.


4. Összehasonlító táblázat

TulajdonságSzámított oszlop (Calculated Column)Számított mező (Measure)
HozzárendelésEgy adott táblához tartozikNem kötött táblához
TárolásTárolt értékek (memóriaigényes)Nem tárolódik, dinamikusan számítódik
Számítási módSoronként számítódik kiVizualizációk kontextusában számolódik
Frissítés módjaAdatfrissítéskor újraszámolódikLekérdezéskor (runtime) számolódik
Felhasználási helyTáblázatok, relációkhoz szükséges oszlopokAggregációkhoz, KPI-khoz, dinamikus számításokhoz
MemóriahasználatMagasabb memóriaigényKisebb memóriaigény


5. Mikor használjuk az egyiket vagy a másikat?

  • Számított oszlopot használjunk, ha:

    • Új oszlopra van szükség relációkhoz vagy táblaszűréshez.
    • Statikus értékeket akarunk előre kiszámolni és tárolni.
    • Egy oszlop minden sorában egyedi értékre van szükség.
  • Measure-t használjunk, ha:

    • Dinamikus számításokra van szükség vizualizációkhoz.
    • A számításoknak reagálniuk kell a szeletelőkre és szűrőkre.
    • Memóriahatékony megoldást keresünk.


Összegzés

A számított oszlopok statikusak és minden sorhoz egyedi értéket rendelnek, míg a számított mezők dinamikusan számítódnak ki az aktuális szűrési kontextus alapján. A választás attól függ, hogy milyen jellegű adatelemzést szeretnénk végezni.

Ha Power BI-ban dolgozol, általában előnyösebb Measure-t használni, mivel ezek memóriahatékonyabbak és dinamikusabb számításokat tesznek lehetővé. 



DAX alapok


Alapvető DAX függvények: 

SUM, COUNT, AVERAGE, MIN, MAX, RELATED, IF, DISTINCTCOUNT, RANKX


Idősor kezelő függvények: 

SAMEPERIODLASTYEAR, TOTALYTD, DATEADD


Szűrő függvények

CALCULATE, FILTER, ALL, ALLEXCEPT


Szöveg függvények

CONCATENATE, LEFT, RIGHT, MID, SUBSTITUTE 


Szülő - gyerek viszony függvények

 PATH, PATHLENGTH, PATHITEM,




Adatmodell optimalizálás

DAX Optimalizálja adatmodelljét a jobb teljesítmény és a gyorsabb jelentésbetöltés érdekében.
- Felesleges oszlopok eltávolítása: 
Távolítsa el az elemzéshez nem szükséges oszlopokat az adatmodell méretének csökkentésére és a teljesítmény javítására.
- Adattömörítés: 
Használjon kisebb méretű adattípusokat (pl. Int64 helyett Tizedes) a jobb tömörítés érdekében.
- Rendezés oszlop szerint: 
Használja a "Rendezés oszlop szerint" funkciót a rendezési teljesítmény javításához látványelemek.
- Mértékegységek használata: 
A jobb teljesítmény érdekében használjon mértékeket a számított oszlopok helyett nagy adathalmazokban.
- Kétirányú kapcsolatok: 
Óvatosan használja a kétirányú kapcsolatokat teljesítménybeli problémákat és kétértelmű eredményeket okoz.
- Növekményes frissítés: 
Végezze el a növekményes frissítést az adatbetöltési idő csökkentése érdekében nagy adathalmazok.


Legjobb módszerek és elvek

  • Az adatok megértése: Ismerkedjen meg az adatforrásokkal és szerkezettel az adatmodellezés megkezdése előtt.
  • Tervezze meg adatmodelljét: Határozza meg céljait, követelményeit és adatkapcsolatait az adatmodell felépítése előtt.
  • Legyen egyszerű: Törekedjen az adatmodell egyszerűségére és karbantarthatóságára.
  • Elnevezési konvenciók: Használjon világos és következetes elnevezési konvenciókat a táblákhoz,
  • oszlopok és mértékek.
  • Hierarchiák használata: Hozzon létre hierarchiákat, hogy megkönnyítse a részletezési és feltárási lehetőségeket látványelemek.
  • Hibakezelés: Alkalmazzon hibakezelési technikákat, például IFERROR és DIVIDE to számítási hibák elkerülése.
  • Dokumentálja munkáját: Karbantartsa a dokumentációt összetett számításokhoz és olyan intézkedéseket, amelyek segítenek a többi felhasználónak megérteni az adatmodellt


Megjegyzések