Tizedestört adattípusok Power BI-ban

A Power BI kétfajta tizedestört adattípust használ a tizedes törtek tárolására:

  • Decimal Number / Tizedes tört: Lebegőpontos tizedestört adattípus (floating adattípus MSSQL-ben)
  • Fixed Decimal Number / Fixpontos tizedes tört: Fixen 4 tizedesjegyet tároló adattípus (régen Currency volt a neve, illetve a Power Pivotban még ma is ez a neve. MSSQL-ben a Decimal (19,4)) A Power BI a valóságban egész számként tárolja, egész számként dolgozik vele, csak a műveletek végén az eredményt 10^4 -nel osztva jeleníti meg.

Power BI adattípusok

Power BI adattípusok

Megj.: Sajnos nagyon rosszak ezek a nevek, mert mi köznyelvben decimálisnak nevezzük a fix hosszú tizedestörteket, ezzel szemben a Power BI pont a nem fix hosszú tizedestörteket nevezi így... De ez van, meg kell tanulni, hogy a Power BI pont fordítva nevezte el őket. 

Mivel a fixpontos tizedestörtet (Fixed Decimal adattípust) egész számként tárolja a Power BI, ezért azt sokkal hatékonyabban tudja kezelni mint a lebegőpontos adattípust. (Ennek okairól többet is megtudhat a Tabular Inside tanfolyamon, de a lényeg, hogy a hogy nem tudja olyan hatékonysággal tömöríteni a lebegőpontos számokat, mint az egész számokat) 

Emiatt tehát – ha tehetjük – érdemes a 4 tizedesjegyet fixen tároló (Fixed Decimal Number) adattípust használnunk a lebegőpontos (Decimal Number) helyett.

De nem csak a hatékonyság miatt érdemes a fix 4 tizedesjegyet tároló adattípust használnunk. Többprocesszoros gépeken, többmillió sornyi a lebegőpontos szám aggregálása a kerekítés miatt nem mindig ugyanazt az eredményt adja. Azaz előfordulhat, hogy ugyanaz a számított mező (Measure) más értéket mutat ma mint tegnap függetlenül attól, hogy az adatok nem változtak. Power BI-ban egymillió sor alatt (SSAS Tabularban 8 millió sor alatt) nem fordulhat elő, e fölött is csak kicsi lehet az eltérés, de előfordulhat. Legalábbis ez derül ki a Choosing Numeric Data Types in DAX cikkből.

Ahol nagyon kell vigyázni, az a nulla körüli lebegőpontos számok. Ha tutira akarunk menni, akkor átkonvertáljuk a lebegőpontos számokat egész számmá. (megszorozzuk a lebegőpontos számot 10-nek a tizedesjegyek számára emelt hatványával és megjelenítéskor ugyanezzel a számmal visszaosztva mutatjuk meg az eredményt)

Összefoglalva: Ha tehetjük használjunk fixpontos tizedestört (Fixed Decimal Number) adattípust a Decimal helyett, mert hatékonyabb, és mert minden matematikai műveletre következetesen ugyanazt az eredmény adja.

Kővári Attila - BI projekt

POWER BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jöjjön el a 2021. május 26.-i Power BI workshopra vagy rendeljen kihelyezett képzést! Részletek >>

 

Önkiszolgáló BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jelentkezzen a 2021. május 27-28.-i Power Pivot videókurzusra!  Részletek >>

 

Új hozzászólás