Miért építsünk mindig külön dátum táblát?

Egy on-the-job Power BI képzésen jött elő a következő probléma: Az üzlet kért a belső datás csapattól egy „széles” táblát amely tartalmazza az összes elemzéshez szükséges oszlopot. A datás csapat meg is adta: Benne volt minden tranzakció és a tranzakcióhoz a tranzakció pillanatában tartozó összes jellemző: A tranzakció dátuma, az értékesített cikkek jellemzői, a vevők, a csatorna jellemzői és minden fontos dátum is.

Miután beimportáltuk Power BI-ba, kapásból kiegészítettük az adatmodellt egy külön dátum táblával, úgy ahogy a az nagykönyvben meg van írva. De felmerült kérdésként, hogy miért kell egy plusz dátum tábla, ha a széles tábla tartalmazza az összes szükséges dátum attribútumot, azok szép megnevezését, stb. Teljesen feleslegesnek tűnt egy ilyen jól előkészített tábla mellé beimportálni egy plusz dátum táblát.

Látszólag nem is indokolja semmi. Legalábbis addig nem, amig nem használjuk az idősor kalkuláló DAX függvényeket (DateAdd(), SamePeriodLastYear(), stb) Ezek a függvények ugyanis csak folytonos dátum intervallumon működnek jól, ha lyukak vannak az idősorban akkor hibásan tudnak működni. Márpedig a tranzakciókat tartalmazó táblában lesznek lyukak ha egy adott napon nincs értékesítés.

Mutatom a példát:

Power BI: Miért hozzunk létre szeparált dátum táblát?

Power BI: Miért hozzunk létre szeparált dátum táblát?

A fenti táblázatban az adott napot megelőző napot írtam ki, és tisztán látszik, hogy január 6.-nak nincs előző napja. 2020-ban nem volt január 5.-e? Dehognem. Csak ebben a dátum oszlopban nem volt. Ha külön dátum táblából vettük volna az előző napot, ott lett volna... (Tudom, hogy ha átírnám a képletet a következő alakra: DATEADD('Tábla'[Dátum].[Date], -1, DAY)) akkor jól működne a DAX képlet, de ehhez be kell kapcsolni az auto date/time (Automatikus dátum/idő új fájlok esetében) funkciót, amit by default mindig kikapcsolunk. És a .[Date] és azt csinálná, hogy a Power BI beépített dátum táblájából venné ki az előző napot. Úgyhogy ezzel csak áttolnánk a kutyapiszkot a szomszéd portájára...)

Egy szónak is száz a vége: Minden esetben létre kell hozni az adatmodellben egy külön dátum táblát. Akkor is, ha a tranzakció tábla minden szükséges információt tartalmaz a dátumokról.

Megj.: Most látom, hogy erről a problémáról már 15! évvel ezelőtt is írtam. Nem újkeletű problémáról van szó valószínűleg minden multidimenziós vagy oszlopalapú adatbázis-kezelő így működik, és így is fog működni...

Kővári Attila - BI projekt

Önkiszolgáló BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jelentkezzen a 2020. december 10-11.-i Power Pivot videókurzusra!  Részletek >>

hozzászólás

Kedves Attila! Lehetne kérni egy kis részletezést a hozzákapcsolt dátumtáblával kapcsolatban is, hogy mégis mik a nagykönyv irányadó útmutatásai; lehet én vagyok infóhiányban vagy hangzik a kérés laikusként, de mivel annyira ki volt fejtve a dátumtábla fontossága, ami érthető is és hasznos, így már kíváncsivá tett a dátumtáblával kapcsolatos nagykönyv iránymutatásaival kapcsolatban is. Köszönöm. JbrImre

Ez lenne az? https://www.biprojekt.hu/blog/Datum-tabla-az-Excel-2016-ban

OK. A következő hetekben írok a témáról. Voltak változások Power Pivot / Power BI oldalon is az elmúlt pár évben, úgyhogy érdemes újra feleleveníteni a témát. Ráadásul a Power Pivottal kapcsolatos dolgokról már külföldön sem írnak, úgyhogy terveztem is, hogy előveszem a témát.

Köszönöm. ;-)

Elkészült a cikk a Dátum tábla best practice-ekről. Link: https://www.biprojekt.hu/blog/datum-tabla-power-pivot-power-bi Üdv, Attila

Új hozzászólás