pondělí 28. června 2010

Reporting v OBI nad SAP BW

Oracle BI umožňuje napojení jak na tradiční relační zdroje dat, tak i na vybrané multidimenzionální databáze. Jednou z nich jsou multidimenzionální kostky systému SAP Business Warehouse (takzvané InfoCubes).


Nastavení na straně SAP BW
Oracle BI přistupuje k SAP BW pomocí XMLA – stejně jako k většině jiných multidimenzionálních databází, které podporuje. Proto, abychom InfoCubes SAP BW zpřístupnili pomocí tohoto rozhraní, je třeba aktivovat příslušnou webovou službu, kterou budeme z OBI volat.


Detailní popis nastavení je nad rámec článku. Výsledkem je aktivní webová služba na následující URL adrese: http://[ADRESA_SERVERU]:[PORT]/sap/bw/xml/soap/xmla, kde ADRESA_SERVERU je aplikační server systému SAP BW a PORT obvykle kolem čísla 8000.


Import do fyzické vrstvy Oracle BI
Import do fyzické vrstvy metadat probíhá obdobně, jako pro relační zdroje. V menu Administration Tool zvolit File > Import > from Multi-dimensional. Následně je třeba vybrat:
  • Provider Type: SAP/BW 3.5/7.0
  • URL: Adresa nastavená v předchozím kroku
  • Username a Password: Přihlášení do SAP BW

Výsledkem importu je nová databáze s multidimenzionální kostkou. Naimportována byla veškerá metadata kostky: tedy ukazatele i dimenze a to včetně hierarchií.


Přes pravé tlačítko a volbu „View Members...“ lze zkontrolovat hodnoty příslušné dimenze a tím otestovat připojení.


Business Model
Pro definici Business modelu stačí celou naimportovanou strukturu přenést „drag and drop“. Z fyzické vrstvy se přenesou ukazatele (i s nastavenou agregací) a dimenze (i s hierarchiemi). V rámci definice Business Modelu tak není třeba provádět žádné manuální úpravy.


Nezapomeňme na vytvoření prezentačního katalogu.


Výsledek

V BI Answers pak máme možnost standardním způsobem vytvořit report, využívat drillování hierarchiemi a podobně.

Logický dotaz vygenerovaný Prezentačním Serverem má standardní podobu:

SELECT Channel."Channel Level 00" saw_0, Channel."Channel Level 01" saw_1, "Product Group Hierarchy"."Product Group Hierarchy Level 00" saw_2, "$ZD_SALES".Quantity saw_3, "$ZD_SALES".Revenue saw_4 FROM "$INFOCUBE" ORDER BY saw_0, saw_1, saw_2


Fyzický dotaz generovaný BI Serverem do SAP BW však již není klasické SQL, ale multidimenzionální MDX dotaz:

With set [ZR_CHAN1] as '{[ZR_CHAN].[LEVEL00].members}' set [ZR_CHAN2] as ' hierarchize ({ [ZR_CHAN1], Generate({[ZR_CHAN1]},Descendants([ZR_CHAN].currentmember,[ZR_CHAN].[LEVEL01],SELF), ALL) } )' set [ZR_PROD PRODUCT GROUP HIERARCHY1] as '{[ZR_PROD PRODUCT GROUP HIERARCHY].[LEVEL00].members}‚ set [Axis1Set] as 'crossjoin ({[ZR_CHAN2]},{[ZR_PROD PRODUCT GROUP HIERARCHY1]})‚ member [Measures].[MS1] as '[Measures].[Z_REV]‚ member [Measures].[MS2] as '[Measures].[ZR_QTY]‚ select {[Measures].[MS1],[Measures].[MS2]} on columns, NON EMPTY {[Axis1Set]}properties MEMBER_UNIQUE_NAME, PARENT_UNIQUE_NAME on rows from [$ZD_SALES]



Jakub Genža (CapGemini)

pondělí 21. června 2010

Oracle GoldenGate a DDL replikace

  • Úvod do Oracle GoldenGate najdete zde.
  • Popis integrace mezi Oracle GoldenGate a Oracle Data Integrator najdete zde.
  • Popis instalace Oracle GoldenGate najde zde.
  • Konfiguraci prostředí, procesů a start replikace najdete zde.
  • Oracle GoldenGate Trail vs. ASCII,SQL nebo XML soubory najdete zde.

Kromě real-time přenosu databázových transakcí (DML operace) Oracle GoldenGate podporuje i replikace DDL příkazů.

V případě Oracle databáze je replikace DDL příkazů podporována pro všechny verze a edice databáze, které standardně OGG podporuje pro přenosy DML operací.
Z pohledu databázových objektů jsou podporovány následují: CLUSTER, FUNCTION, INDEX, PACKAGE, PROCEDURE, ROLE, SEQUENCE, SYNONYM, TABLE, TABLESPACE, TRIGGER, TYPE, VIEW, MATERIALIZED VIEW, USER.

Step-by-step postup pro zapnutí podpory replikace DDL operací:


1. Vypnutí funkcionality Oracle Recycle Bin
Pro podporu DDL replikací je potřeba na zdrojové databázi vypnut Recycle Bin

sqlplus / as sysdba
show parameter recycle

Jestliže je recyclebin zapnut (on), pak jej vypněte:
  • pro SPFILE - alter system set recyclebin=off scope=both;
  • pro PFILE - do init[SID].ora vložte parametr recyclebin=off a restartujte databázi

2. Vytvoření db uživatele pro pomocné OGG objekty

a/ Ve zdrojové databázi založte pomocného uživatele (potřebná práva viz. článek Oracle GoldenGate - Instalace - DB uživatelé a práva), který bude vlastnit pomocné OGG objekty potřebné pro replikaci DDL:
  • DDL Marker Table (GGS_MARKER): obsahuje informace o DDL operacích
  • DDL History Table (GGS_DDL_HIST): obsahuje historické informace o DDL operacích
  • DDL Trigger (GGS_DDL_TRIGGER_BEFORE): zachytává DDL příkazy a ukládá je do GGS_MARKER a GGS_DDL_HIST
  • User Role (GGS_GGSUSER_ROLE): role pro uživatele pod kterým běží Extract proces, obsahuje potřebná oprávnění pro DDL replikace
  • + další pomocné objekty jako indexy, sequence, atd. (více viz. níže uvedené skripty)

b/ Do souboru GLOBALS (v případě, že neexistuje, pak jej založte v kořenovém adresáři OGG) přidejte parametr GGSCHEMA ukazující na výše vytvořeného uživatele a restartujte Manager proces.



3. Instalace pomocných db objektů pro DDL replikace

Přejděte do kořenového adresáře OGG a spusťte SQLPlus s oprávněním SYSDBA.

sqlplus / as sysdba

Z prostředí SQLPlus postupně spusťte níže uvedené skripty:

@marker_setup.sql
Enter GoldenGate schema name: OGG



@ddl_setup.sql
Enter GoldenGate schema name: OGG
Enter mode of installation:INITIALSETUP



@role_setup.sql
Enter GoldenGate schema name: OGG

grant GGS_GGSUSER_ROLE to vas_ogg_uzivatel;



@ddl_enable.sql




4. Kontrola správného nastavení pro DDL replikace

@marker_status.sql


@ddl_status.sql



5. Vytvoření Extract procesu s podporou pro DDL replikace
(podrobnější popis parametrů a významu viz. článek Oracle GoldenGate – Konfigurace prostředí, procesů a start replikace)

Spusťte utilitu ggsci a poté:

edit params EOGGDDL


vložte:
EXTRACT EOGGDDL
USERID ogg, password ogg

EXTTRAIL ./dirdat/ed
DDL INCLUDE MAPPED
DDLOPTIONS ADDTRANDATA, REPORT
TABLE OGG_SRC.*;


a uložte soubor.

Poznámka:
  • DDL zapíná podporu DDL operací (INCLUDE MAPPED zahrnuje objekty a operace patřící do kategorie MAPPED: CREATE, ALTER, DROP, RENAME, GRANT, REVOKE pro TABLE, INDEX, TRIGGER, SEQUENCE, MATERIALIZED VIEW)

  • DDLOPTIONS ovlivňuje chování DDL (ADDTRANDATA automaticky zapne supplemental logging pro vzniknou tabulku; REPORT zaznamenává dodatečné informace do OGG reportu Extract procesu)

add extract EOGGDDL, tranlog, begin now

add exttrail ./dirdat/ed, extract EOGGDDL, megabytes 5


start EOGGDDL


6. Vytvoření DataPump procesu

edit params POGGDDL

vložte:
EXTRACT POGGDDL
PASSTHRU RMTHOST localhost, MGRPORT 7809
RMTTRAIL ./dirdat/rd
TABLE OGG_SRC.*;


a uložte soubor.

Poznámka:
  • PASSTHRU se používá u Data Pump procesu když není požadována transformace nebo filtrování dat, u DDL replikace je tento parametr podmínkou

add extract POGGDDL, exttrailsource ./dirdat/ed

add rmttrail ./dirdat/rd, extract POGGDDL, megabytes 5

start POGGDDL



7. Vytvoření Replicat procesu s podporou pro DDL replikace

edit params ROGGDDL

vložte:
replicat ROGGDDL
userid ogg, password ogg

assumetargetdefs
discardfile ./dirrpt/ROGGTRG1.dsc, purge

DDL INCLUDE MAPPED

DDLOPTIONS REPORT

map OGG_SRC.*, target OGG_TRG.*;


a uložte soubor.

Poznámka:
  • DDL zapíná podporu DDL operací (INCLUDE MAPPED zahrnuje objekty a operace patřící do kategorie MAPPED: CREATE, ALTER, DROP, RENAME, GRANT, REVOKE pro TABLE, INDEX, TRIGGER, SEQUENCE, MATERIALIZED VIEW - další kategorie viz. OGG dokumentace)

  • DDLOPTIONS ovlivňuje chování DDL (REPORT zaznamenává dodatečné informace do OGG reportu Replicat procesu)

  • ASSUMETARGETDEFS struktura zdrojových a cílových tabulek musí být shodná


add replicat ROGGDDL, exttrail ./dirdat/rd

start ROGGDDL


8. Kontrola běhu jednotlivých procesů

status *



Testování DDL replikací

Založení tabulky (obrázek obsahuje vždy zdroj | cíl)


Přidání sloupce


Přejmenování tabulky


Klasické DML





Erik Eckhardt

čtvrtek 17. června 2010

Konverze string na date nebo timestamp

Někdy je nutné získat datum z „nestandardního“ textového řetězce a použít ho přímo ve filtru nebo ve výpočtu.

Příklad: Potřebujeme zobrazit data za předchozích 24 měsíců od měsíce ‘2009/01‘.
Jde o jednoduchý filtr, kde čas chceme omezit na pomocí:
  1. Konverze string na datum
  2. Odpočítání 24 měsíců.
Konverze:
V databázi Oracle by bylo použití triviální to_date('2009/01', 'YYYY/MM') nebo to_timestamp('2009/01', 'YYYY/MM').

OBI EE přímo poskytuje jenom dvě možnost jak vytvořit z textu datum nebo timestamp a to pomocí funkcí:
  1. DATE 'YYYY-MM-DD HH:MM:SS' a TIMESTAMP ' YYYY-MM-DD HH:MM:SS'
  2. CAST ('nls_date_format' as date) a CAST (' nls_timestamp_format' as timestamp)
Čili, vstupní řetězec v prvním případě nelze použít, protože není ve formátu YYYY-MM a v druhém případě nevíme, jak jsou nls formáty nastaveny.

V případě použití funkce date a timestamp není možné jako parametr předat další funkci, které by třeba provedla nahrazení '-' za '/' a proto se jednoduchá konverze na datum komplikuje.

Workaround:
Použití nativní databázové funkce volané pomocí evaluate (více viz. dokument Oracle BI Server and Embedded DB Functions):

cast(evaluate('add_months(to_date(''@{mesic}{2010/01}/01'',''YYYY/MM/DD''),-24)' as date) as date)


Karel Hübl (GEM System International)

pondělí 14. června 2010

eSeminar: Oracle GoldenGate - Real Time Data Integration and High Availability Solutions

24. června 2010 od 10:00 (CET) se bude konat veřejný eSeminář na téma Oracle GoldenGate - Real-Time Data Integration and High Availability Solutions.

Chcete-li se semináře účastnit, pak se prosím registrujte zde.


pondělí 7. června 2010

Oracle BI 11g - tento týden školení, za měsíc oficiální uvedení

Tento týden absolvuji 4-denní školení na Oracle Business Intelligence 11g a přesně za měsíc (7.7.2010) dojde k oficiálnímu uvedení na trh.

Máte-li zájem účastnit se akce osobně, pak pro Londýn se registrujte zde, ostatní lokace viz. níže.


Další lokace uvedení Oracle BI 11g jsou:

čtvrtek 3. června 2010

Generování obrázků z BI Interactive Dashboards do formátu PDF

Jeden náš zákazník řešil následující: používá na svých Dashboardech obrázky – pomocí komponenty „Link or Image“ – kde se odkazuje na „externí“ stránky s obrázky, např. :


Takto nadefinovaný obrázek se pak zobrazí na stránce dashboardu :


Ale při generování do PDF formátu obrázek chybí:


Možnost (možná ne jediná, ale zatím jsem na jinou nepřišel), jak docílit umístění obrázku ve vygenerovaném PDF je obrázek udělat „součástí“ BI Presentation Service Pluginu (J2EE komponenta, běžící v rámci aplikačního serveru – např. oc4j, Oracle Application Server , Apache Tomcat či jiný aplikační server), aby bylo možné se na obrázek odkazovat pomocí syntaxe : fmap:[složka]/[obrázek].

Postup je následující :
1) Vytvoření složek na aplikačním serveru v adresáři instalace BI Presentation Service a nakopírování obrázků

Alokujte adresář na aplikačním serveru – tj. tam, kde běží aplikační server, do kterého byla deployována J2EE aplikace BI Presentation Service Plugin – analytics.war/ear – např. v případě „lokální“ Windows OBIEE instalace je to adresář OracleBI/j2ee/home/applications/analytics. V tomto adresáři jsou umístěny podadresáře tzv. stylů – jedná se o tyto 2 foldery (referuji instalaci s oc4j – pro Apache Tomcat se může lišit) :

OracleBI/j2ee/home/applications/analytics/analytics/res/s_oracle10/ – styl Oracle
OracleBI/j2ee/home/applications/analytics/analytics/s_Siebel77/ – styl Siebel


V těchto 2 adresářích vytvořte 2 podadresáře pro umístění vašich „custom“ obrázků, např. "moje":

Do těchto adresářů pak nakopírujte obrázky, které chcete „vystavit“ na dashboardu.

Stejné adresáře (spolu s krokem kopírování obrázků) je nutné vytvořit i na serveru, kde běží komponenta BI Presentation Service – a to v následující adresářové struktuře:

OracleBI /Oracle BI/web/app/res/s_oracle10/images/moje
OracleBI /Oracle BI/web/app/res /s_Siebel77 /images/moje

2) Restart komponent
Provedete restart :
- komponenty BI Presentation Service
- aplikačního serveru (oc4j, Apache Tomcat …)

3) Vytvoření objektu „Link or Image“ na stránce dashboardu

Na stránce dashboardu pak založte objekt „Link or Image“ s následující referencí na obrázek :


A výsledek ve vygenerovaném PDF dokumentu ze stránky dashbaordu je pak dle očekávání (obsahuje referovaný obrázek):



Michal Zima (Teura)