čtvrtek 15. října 2009

Vytváranie Essbase kocky pomocou Essbase Studio 11g

Súčasťou EPM platformy v11 je nástroj Essbase Studio, ktorý poskytuje prostredie pre modelovanie dát, definíciu hierarchií a návrh Essbase kocky.


Úvod
Prv, ako si predstavíme Essbase Studio, uvediem pár slov ku štruktúre Essbase kocky. Essbase kocka pozostáva z dimenzií. Členovia dimenzie sú usporiadaní do hierarchickej štruktúry. Prvky jednej úrovne sa konsolidujú na vyššiu úroveň na základe definovaného konsolidačného operátora (Sčítanie, Odčítanie, Násobenie, Delenie, Percenta, Ignore). Tu je príklad Essbase Outline – definície Essbase kocky v nástroji Essbase Administration Services:



V nasledujúcom texte popíšem, ako sa dá zadefinovať štruktúra Essbase kocky a nahrať do nej dáta z Oracle DB. Ako demo dáta si zoberiem schému používateľa „andemo“, ktoré sú použité v deme Oracle BI Dashboards (štruktúra dát popísaná ďalej v texte).

Pre potreby tohto dema je potrebné mať naštartovanú databázu, kde je uložené Essbase repozitoty a nasledovné Windows Services z Hyperion platformy:



Štart Essbase Studio
Essbase Studio je súčasťou Essbase platformy a po inštalácii sa nachádza v skupine Oracle EPM System –> Essbase –> Essbase Studio. Najprv treba naštartovať Essbase Server (nie je definovaný ako Windows service) a potom spustiť Essbase Studio Console. Prihlásiť sa možno ako používateľ admin s heslom password. Po prihlásení sa objaví obrazovka s troma panelami:
  • Source Navigator (vpravo)
  • Workarea
  • Metadata Navigator


1. Pripojenie k dátovému zdroju Oracle DB
Upozornění: Pro vyzkoušení si níže uvedeného příkladu si můžete data (Excel) a jejich popis stáhnout zde.

Úplne prvý krok je pripojenie sa k dátovému zdroju, z ktorého budeme čerpať nielen dáta ale aj položky, z ktorých budú pozostávať dimenzie. V pravej časti Source navigatora sú dve záložky „Data Sources“ a „Minischemas“. Označíme si Data Sources – pravý klik New – Data Source



Connectio Name – označenie pripojenia, u mňa „MyORCL“
Datasource Type – typ databázy, okrem Oracle DB su podporované nasledovné zdroje: MS SQL, IBM DB2, Oracle BI Server, Essbase, Dimension Server (je súčasťou EPM Architekt), text file.
V nižšej časti zadáme identifikátory Oracle databázy, posledný riadok „Database Name“ označuje schému používateľa.

V nasledujúcom kroku vyberieme tabuľky, ktoré budú použité na definovanie dimenzií pre Essbase kocku. Na úrovni DB je definovaná star schema pozostávajúca z nasledovných tabuliek: PRODEJ je faktová tabuľka, GEOGRAFIE, OBDOBI, PRODKANAL su dimenzionálne tabuľky. Tieto tabuľky budú základom Essbase modelu.



V ďalšom kroku si dáme vytvoriť Minischému, ktorá nám v grafickej podobe zobrazuje vzťah medzi tabuľkami, prípadne môžme tento vzťah dodefinovať. V tomto kroku máme možnosť využiť Introspection, ktorá odhaľuje hierarchie v dimenzionálnych tabuľkách. Výsledok nám môže ušetriť čas, avšak automaticky detekované dimenzie nie sú vždy korektné.



V tomto kroku ukončíme definovanie dátového zdroja, kliknutím na „Finish“ sa v strednej časti obrazovky („Work area“) zobrazí Minischéma.



Keďže na úrovni databázy nie sú nadefinované foreign keys, treba tieto vzťahy dodefinovať ručne v grafickom editore drag&drop od stĺpca faktovej tabuľky na stĺpec dimenzionálnej tabuľky. Pritom sa objavi editor, kde skontrolujeme a potvrdíme postupne tieto join podmienky:

PRODEJ.PRODKANAL_ID = PRODKANAL. PRODKANAL_ID
PRODEJ.GEOGRAFIE_ID = GEOGRAFIE.GEOGRAFIE_ID
PRODEJ.OBDOBI_ID = OBDOBI.KVARTAL_ID



2. Definovanie metadát
Presunieme sa do ľavej časti – Metadata navigator, kde si vytvoríme nový adresár (Folder) „Andemo“, v ktorom budú uložené všetky metadáta týkajúce sa nášho projektu. V adresári „Andemo“ vytvoríme podadresár „DimElements“, kde budú uložené položky použité pri definícii Essbase kocky. Postup:

A/ V časti Data Sources – pripojenie MyORCL označíme všetky štyri tabuľky a drag&drop ich prenesieme do Metadata Navigatora do adresára DimElements.

B/ Vymažeme stĺpce, ktoré nebudeme potrebovať, výsledok na nasledujúcom obrázku. Pri výbere si môžeme pomôcť náhľadom na dáta, v časti Data Sources si označíme tabuľku, pravý klik – View Sample Data



C/ DimElement môže byť odvodený od hodnoty stĺpca, pričom je možné využiť sadu preddefinovaných funkcií (toto je len ukážka)



Ďalším krokom je definícia dimenzií. V adresári „DimElements“ vytvoríme adresár „Hierarchies“, v ňom New –> Hierarchy. Prvú hierarchiu si pomenujeme Obdobie a Drag&Drop si do tabuľky v dolnej časti prenesieme DimElement Rok a Kvartal. Kvartal odsunieme o úroveň vpravo (tlačítko so šipkou). Takto definovanú hierarchiu si môžeme pozrieť pomocou tlačítka „Preview“. Definíciu hierarchie uložíme „Save“. Podobne vytvoríme hierarchie Geografie (EU_Celkem -> Stat) a ProdKanal (má iba jednu úroveň ProdKanal).



Na záver pridáme „Measure Hierarchy“ s názvom Predaj. Postup ten istý, Naklad a Vynos su na tej istej úrovni. Do tejto dimenzie pridáme novú položku Zisk. Klikneme tlačítko Add – > User-defined sibling, názov Zisk a posunieme túto položku na prvé miesto tabuľky, Vynos a Naklad odsunieme doprava. Spôsob výpočtu zisku nadefinujeme neskôr. Definíciu hierarchie Predaj uložíme kliknutím na „Save“.



3. Vytvorenie Cube Schema a Essbase modelu

Ďalším krokom je definovanie Cube Schema. Cube obsahuje definície jednotlivých hierarchií a nameraných hodnôt (measures), na základe ktorých sa buduje Essbase model. V Metadata Navigatore si označíme adresar Andemo -> pravy klik na myš –> New –> Cube Schema. Objaví sa Wizard, kde označíme Predaj ako Measure Hierarchy a Obdobie, Geografie, ProdKanal ako Hierarchies:



V ďalšom kroku označíme: Create Essbase Model a klikneme na tlačítko Finish.



V jednom kroku sa nám vygeneruje Cube Schema aj Essbase Model, ktorý môžme vidieť v strednej časti.



Vygenerovaný Essbase Model môžeme nasadiť na Essbase server pomocou Cube Deployment Wizardu (opäť pravý klik na myš, keď sme nastavený na Essbase modeli). Najprv vytvoríme pripojenie ku Essbase serveru.



Ďalej zadáme meno aplikácie a meno databázy, ktoré budú vygenerované spolu s Essbase kockou. Ďalšie voľby v Deployment Wizarde:
  • Load task Type – vyberieme Build outline and load data
  • Load Data Options – má zmysel pri inkrementálnom load-e, pri prvom loade použijeme Add to existing data.



Kliknutím na „Model Properties“ môžeme definovať vlastnosti špecifické pre Essbase, ako sú:
  • Na úrovni modelu sa definuje typ aplikácie (Block Storage, ktorý je default, resp. Aggregate Storage)
  • Na úrovni hierarchie sa definuje Dimension storage: Dense/Sparse (len v prípade Block Storage)
  • Na úprovni členov dimenzie Consolidation (operátor pre konsolildáciu členov na vyššiu úrovaň) a Data Storage. Viď obr. nižšie.

Toto je miesto, kde nadefinujeme vzťah pre výpočet zisku: VÝNOS s konsolidačným operátorom + (addition), NÁKLAD s konsolidačným oprátorom – (subtraction). To znamená, že Zisk sa bude počítať ako VÝNOS – NÁKLAD. ZISK je zadefinovaný s operátorom + (addition), čo znamená, že táto hodnota sa bude prenášať aj na najvyššiu úroveň hierarchie, čo je Predaj.



Kliknutím na tlačítko „Close“ prebehne validácia zadaných hodnôt. Ak je všetko v poriadku, dostaneme sa späť do obrazovky Cube Deployment Wizard. Kliknutim na tlačítko „Finish“ prebehne deployment na Essbase server.



Úspešný Deployment môžeme skontorlovať cez Essbase Administratrion Services. Takto vyzerá vygenerovaný Outline pre našu aplikáciu Andemo:



A toto je náhľad na dáta pomocou SmartView.



Prípadné chyby z deployemntu môžete nájsť v adresári HYPERION_HOME\logs\esbstudio \server.log. V tomto súbore je zaznamenaný aj vygenerovaný SQL príkaz pre zdrojovú DB. Takže, ak by náhodou bola databáza po deploymente prázdna, treba sa zamerať na tento SQL príkaz.


Gabriela Hečková (Oracle Slovensko)

Žádné komentáře: