Cílem tohoto článku je ukázat "step-by-step" postup jak se v Business modelu nastaví časová dimenze, jak se vytvoří ukazatele pro časové porovnávaní (např. Výnosy zobrazující stav před určitým obdobím nebo YearToDate Výnosy). Dále pak, jak se jednoduše vytvoří ukazatele zobrazující změny (např. rozdíl, procenta, index), a nakonec, jak lze vše rozkategorizovat do složek a zpřístupnit koncovým uživatelům pro analytiku.
A/ Nastavení časové dimenze
Poznámka: Potřebujete-li vytvářet ukazatele typu "obdobíAgo" nebo "obdobíToDate", pak je nutné označit hierarchii časové dimenze příznakem "Time dimension".
V případě samotné fyzické tabulky pro časovou dimenzi je vhodné, aby datový typ sloupců pro jednotlivé úrovně (např. ROK=2008, MĚSÍC=200812) byl řetězec (STRING) - není vhodné používat číselný typ (NUMBER). Důvod je ten, že v případě použití číselného typu se ve fyzické vrstvě BI metadata repository použije typ DOUBLE (samozřejmě záleží o jaký fyzický datový typ jde), který pro "ROK=2008" bude zobrazovat hodnotu "2008,00". Toto pak může zapříčinit nesprávné fungování a počítání "Ago" ukazatelů při drilování hodnot.
1. V Business Modelu „Prodeje“ vyberte stávající hierarchii časové dimenze DIM_OBDOBI > pravé tlačítko myši > Properties ... > a zde zaškrtněte checkbox "Time dimension"
2. Na úroveň KVARTAL v hierarchii DIM_OBDOBI přidejte sloupec KVARTAL_ID (sloupec z dimenze D_OBDOBI$ - jde o PK tabulky) a označte jej jako nový logický klíč (Drag&Drop přesuňte sloupec z dimenze do hierarchie > pravé tlačítko myši > New Logical Level Key ...)
Poznámka: Chronological key je sloupec obsahující postupně se zvětšující hodnotu v čase. Na datové typu klíče nezáleží, může jím být typ číselný, řetězec nebo datum. Klíčem by měl být zvolen sloupec, který je primárním klíčem dimenzní tabulky, tj. přes tento sloupec je proveden join mezi tabulkou dimenzní a faktovou.
3. Sloupec KVARTAL_ID označte jako Chronological Key (vyberte úroveň KVARTAL > pravé tlačítko myši > Properties ... > záložka Keys)
B/ Tvorba ukazatele zobrazující stav před obdobím
1. Do faktové tabulky F_PRODEJ$ založte nový logický sloupec pro ukazatel VYNOS_PRED_CTVRTLETIM, který bude počítán z již stávajícího ukazatele (v Business Modelu „Prodeje“ vyberte tabulku F_PRODEJ$ > pravé tlačítko myši > New Object > Logical Column ... > pojmenujte jej VYNOS_PRED_CTVRTLETIM > zaškrtněte Use existing logical columns as the source)
2. V Expression Builderu vytvořte výpočet pro zobrazení stavu před obdobím (Vyberte Functions > Time Series Functions > Ago > Insert)
3. Do AGO funkce za "Measure
B/ Tvorba ukazatele YearToDate
1. Do faktové tabulky F_PRODEJ$ založte nový logický sloupec pro ukazatel VYNOS_YEAR_TODATE, který bude počítán z již stávajícího ukazatele (v Business Modelu „Prodeje“ vyberte tabulku F_PRODEJ$ > pravé tlačítko myši > New Object > Logical Column ... > pojmenujte jej VYNOS_YEAR_TODATE > zaškrtněte Use existing logical columns as the source)
C/ Tvorba ukazatelů zobrazující změnu mezi současností a minulostí
Poznámka: Pro účely porovnávání dvou ukazatelů je k dispozici
1. Ve faktové tabulce F_PRODEJ$ vyberte sloupec VYNOS > pravé tlačítko myši > Calculation Wizard
C/ Kategorizace, přesun a přejmenování nových ukazatelů v Prezentační vrstvě
Poznámka: Pro zjednodušení orientace koncových uživatelů při návrhu reportů lze prezentační metadata kategorizovat do různých podsložek. Výsledkem pak může být podobná stromová struktura:
5. Do nově vytvořených složek rozdělte (Drag&Drop) dle významu ukazatele ze složky Prodej
Výsledkem jsou nově založené ukazatele zobrazující stav před obdobím, kumulativní ukazatele zobrazující YearToDate a ukazatele zobrazující změnu mezi současností a minulostí.
Příští a zároveň poslední díl bude věnován tomu, jak toto všechno dát do provozu a tím zpřístupnit koncovým uživatelům pro reporting a analýzy.
Erik Eckhardt.
3 komentáře:
Este by som spomenul, ze atribut, ktory chceme sledovat musi mat v logickej vrstve definovany typ agregacie, inak nebude mozne funkciu AGO pouzit.
Dobrý den,
náš tým řeší problematiku kalkulace délky trvání procesu, který může být i několik dnů vč. víkendů. Můžete nám poradit jak nejlépe odstranit časové úseky jako jsou víkendy a státní svátky, tak abychom získali pouze čistý čas zpracování ? V OBI jsme podobné funkce nenašli.
Podobně nevíte náhodou zda existuje nějaká funkce, která vrací počet víkendových dní v daném časové periodě?
Díky za každou radu.
Honza
Dobrý den,
v OBI existuje funkce DayOfWeek, která vrátí číslo v rozsahu 1 až 7 odpovídající dni v týdnu (pondělí až neděle) pro zadané datum. S pomocí této funkce si můžete vytvořit umělý sloupec a na něj nastavit filtr, který bude vracet pouze pracovní dny.
Bohužel na svátky žádná funkce není.
Nejlepší bude, když si vytvoříte vlastní dimezi, která bude mít pomocný sloupec označující pracovní dny. Víkendy se dají doplnit automaticky při generování dimenze, svátky budete muset někde na internetu stáhnout a pak do dimenze doplnit.
Poté v OBI tuto dimenzi použijete s filtrem pro zobrazení pouze pracovních dnů.
S pozdravem
Eckhardt Erik
Okomentovat