pondělí, 9. listopadu 2009

Dokumentační nepřesnost, týkající se „Security groups“ v metadatech BI Serveru

Jistě je všem, kteří s OBIEE již nějakou dobu pracují znám koncept Security Groups, které jsou definovány v metadatech BI serveru a které slouží k definovaní restrikcí v metadatech (objektové omezení pro objekty prezentační vrtsvy a „data level“ omezení definovaním tzv. security filtrů).

Standardní dokumentace OBIEE, konkrétně dokument „Server Administration Guide“ upřesňuje (v kapitole 15 „Security in Oracle BI“, odstavec Working with Groups , část „Group Inheritance“ uplatnění tzv. „least restrictive“ pravidla v případě, že uživatel je přirazen k více skupinám s „konfliktně“ nadefinovanými přístupovými privilegii:

„If there are multiple groups acting on a user or group at the same level with conflicting security attributes, the user or group is granted the least restrictive security attribute. Any explicit permissions acting on a user take precedence over any privileges on the same objects granted to that user through groups.“

Zjednodušeně řečeno, je-li definována security skupina GROUPA, která má např. právo „Read“ na subjektovou oblast SA1 prezentační vrstvy metadat a security skupina GROUPB, která má „Read“ privilegium na subjektovou oblast SA1 explicitně odebránu, pak je-li uživateli USER1 přidělena jak skupina GROUPA, tak GROUPB, pak tento uživatel má (díky „least restrictive“ pravidlu) „Read“ právo na subjektovou oblast SA1.

Toto pravidlo ovšem neplatí v případě definic tzv. „data level security“ pomocí „security filtrů“ :


Zde naopak platí „most restrictive „ pravidlo – tj. např. mám-li definovánu na úrovni business modelu logickou faktovou tabulku Fact1, a 2 security skupiny GROUPA a GROUPB, přičemž pro GROUPA nadefinuji pro tuto logickou faktovou tabulku „security filter“ a pro skupinu GROUPB tento filtr definován nebude. Pokud se uživatel USER1, kterému je přiřazena jak skupina GROUPA, tak skupina GROUPB dotazuje (v nástroji Answers) na metriky faktové tabulky, jsou mu data této faktové tabulky vždy omezena filtrem, definovaným pro skupinu GROUPA (i když zároveň patří i do skupiny GROUPB, která nad touto faktovou tabulkou žádný filtr nadefinován nemá).


Takže se v případě security filtrů nenechte zmást popisem ve standardní OBIEE dokumentací, chování BI serveru tomu neodpovídá.



Michal Zima (Teura s.r.o.)

čtvrtek, 5. listopadu 2009

Instalace Hyperion Shared Services (HSS) na Oracle databázi s českou lokalizací

V dokumentaci Oracle Hyperion Enterprise Performance Management System Installation Start Here Release 11.1.1 jsou uvedeny následující požadavky na konfiguraci Oracle databáze pro instalaci HSS:
  • Database character set = AL32UTF8 nebo UTF8 nebo UTFE
  • grant CREATE SESSION, CREATE VIEW, RESOURCE
  • nls_length_semantics = ’CHAR’
  • nls_language = ‘AMERICAN‘
  • nls_territory = ‘AMERICA‘

Potíže s tím spojené jsou tyto:
  1. Bez těchto parametrů (s výjimkou prvního) nelze HSS rozběhnout. Typický příznak: během instalace a zejména při spuštění HSS služby se opakovaně (na konzoli, v logu) objevuje chyba ORA-01722: invalid number.
  2. Řada instancí Oracle v českých zemích nemá tyto parametry.
  3. Změnit parametry nls_* na databázi (alter system) není obvykle dost dobře možné.
  4. Změnit parametry nls_* na klientovi (tj. stroj, kde běží HSS), podle mých dosavadních pokusů nestačí. HSS se totiž připojují přes driver JDBC Merant 5.2, který je vůči nastavení environmentu i javovským locale typu -Duser.language=en -Duser.region=US zcela imunní.
Workaround:

create or replace trigger hyperion.nls_bugfix_trigger
after logon on database
declare u VARCHAR2(30);
begin
select user into u from dual;
if u = 'HYPERION' then
execute immediate 'alter session set nls_territory = ''AMERICA'' ' ;
execute immediate 'alter session set nls_language = ''AMERICAN'' ' ;
execute immediate 'alter session set nls_length_semantics = ''CHAR'' ' ;
end if;
end;
/

Testováno na verzi 11.1.1.2. Netestováno, zda problém přetrvává i na 11.1.1.3 (původní myšlenka viz. zde).



Michal Tomek (konzultant společnosti Neit Consulting)


pondělí, 2. listopadu 2009

Oracle BI – GO URL a české znaky

Jako součást jednoho projektu jsme implementovali GO URL API pro volání PDF a XLS reportů s parametry. V takovém případě se nevyhnete použití češtiny. České znaky jsou součástí řetězců, které jsou předávané jako hodnoty jednotlivých parametrů a zde byla čeština použita i v názvech samotných sestav v katalogu. V URL samozřejmě češtinu použít nelze.
Řešením je použít tzv. URL encoding. Při instalaci Oracle BI na platformě MS Windows a použití klienta na téže platformě (MS Internet Explorer 8) je třeba použít variantu UTF-8. Následující tabulka ukazuje, který znak nahradit jakou sekvencí:

Český znak UTF-8 sekvence
ě %C4%9B
š %C5%A1
č %C4%8D
ř %C5%99
ž %C5%BE
ý %C3%BD
á %C3%A1
í %C3%AD
é %C3%A9
ď %C4%8F
ť %C5%A5
ň %C5%88
ú %C3%BA
ů %C5%AF
Š %C5%A0
Č %C4%8C
Ř %C5%98
Ž %C5%BD
Á %C3%81
Ú %C3%9A

Na závěr malý příklad:
PŮVODNÍ URL:
http://biserver/analytics/saw.dll?Go&Path=/Shared/Kontrola/Reporty/Pokuty+Osob&NQUser=Administrator&Action=Navigate&Format=PDF&P0=2&P1=eq&P2="D01%20Datum".Datum&P3=13.9.2009&P4=like&P5="D15%20Důvod%20pokuty".Text&P6=%25500%25

UPRAVENÉ URL:
http://biserver/analytics/saw.dll?Go&Path=/Shared/Kontrola/Reporty/Pokuty+Osob&NQUser=Administrator&Action=Navigate&Format=PDF&P0=2&P1=eq&P2="D01%20Datum".Datum&P3=13.9.2009&P4=like&P5="D15%20D%c5%afvod%20pokuty".Text&P6=%25500%25



Petr Zeman (softwarový konzultant, OKsystem s.r.o.)

čtvrtek, 29. října 2009

ODI a OutOfMemoryError

Nedávno se mi na jednom projektu stalo, že jsem v ODI na svém počítači vyvinul transformační pumpy (Interface), které se na jiném počítači již nedařilo otevřít.
Během otevírání ODI Interface (ve fázi načítání grafického zobrazení transformace) vždy došlo k chybě "Diagram can not be loaded ...... java.lang.OutOfMemoryError ....".
Po bližší analýze jsem zjistil, že na daném PC je nainstalovaná jiná verze Javy, která konzumuje mnohem více paměti než ta moje.

Řešením bylo zvětšit defaultní hodnoty ODI parametrů (ODI_INIT_HEAP, ODI_MAX_HEAP) které ovlivňují kolik paměti budou mít ODI komponenty k dispozici.
  • ODI_INIT_HEAP - Initial java machine heap size used by OracleDI modules (defaultní hodnota po instalaci je 32MB)
  • ODI_MAX_HEAP - Maximum java machine heap size used by OracleDI modules (defaultní hodnota po instalaci je 256MB)

Parametry se mění v souboru .../oracledi/bin/odiparams.bat (instalace na Windows), .../oracledi/bin/odiparams.sh (instalace na Linux / Unix).


Erik Eckhardt

pondělí, 26. října 2009

Oracle Day 2009


19.11.2009 proběhne v Top Hotel Praha největší Oracle konference která kdy v ČR byla pořádána. Dopolední část je více zaměřená na business a strategii, odpolední část je rozdělena do paralelních sekcí se zaměřením na technologie (Databáze, Middleware, Bezpečnost), aplikace (OAUG) a vybraná průmyslová odvětví (Veřejný sektor, Zdravotnictví a pojišťovnictví, Obchod a průmysl, Finanční sektor).

Samotnou sekci zaměřenou pouze na DW/BI zde nenajdete, ale jednotlivé DW/BI technologie a aplikace jsou obsaženy v následujících sekcích:

Exadata
  • Databáze (Sun Oracle Database Machine - Extrémní výkon pro OLTP I DWH)
  • Finanční sektor (EXADATA V2 - eXtremní výkon pro finanční aplikace a datové sklady)
ODI
  • Middleware (Když Service Bus nestačí přidejte Data Integrator)
BI/EPM
  • OAUG (Zkušenosti s Oracle Hyperion)
  • OAUG (Využití Oracle JD Edwards v provozu a reportingu společnosti KRPA)
  • Finanční sektor (Představení nové generace aplikací Oracle Financial Services Analytical Applications)
  • Obchod a průmysl (Analytické aplikace: Předpřipravené řešení pro rychlé získání dat, analýz a výstupů z ERP a CRM systémů)


Registrační stránka a detailní informace o konferenci najdete zde.


Erik Eckhardt

čtvrtek, 22. října 2009

Nové demo na BI Demo Serveru

Během léta jsem pracoval na POC pro jednu telekomunikační společnost. Jelikož problematika POC byla docela zajímavá (sledování poruchovosti provozovaných služeb a jejich následné řešení jednotlivými servisními středisky) domluvil jsem se zákazníkem možnost umístění vytvořeného POC na náš BI Demo Server.


POC vychází z reálného datového modelu, pouze veškeré hodnoty ukazatelů jsou zkresleny a číselníky/dimenze jsou anonymizovány - tzn. podobnost s vašimi reálnými službami a servisními středisky je čistě náhodná.





Erik Eckhardt.

pondělí, 19. října 2009

Oracle Warehouse Builder 11gR2

Spolu s druhým releasem Oracle Database 11g byl v září uvolněn i druhý release Oracle Warehouse Builder 11g. Narozdíl od prvního release verze 11, která byla víceméně stejná jako verze OWB10gR2, je v současné verzi řada vylepšení a novinek (detailní seznam viz. níže).

Mezi ty nejdůležitější určitě bude patřit nativní podpora heterogenních zdrojů, Code-Template Mapping, webové služby a generování metadata repository pro Oracle Business Intelligence Enterprise Edition.

Tři výše uvedené jsou v současné chvíli prvním krokem integrace klasického OWB a ODI (v únoru 2009 jsem psal o vzniku nové edice s názvem Oracle Data Integrator Enterprise Edition, která licenčně spojuje Oracle Data Integrator a placenou DB Option OWB Enterprise ETL, která od té doby přestala být samostatně prodejná).

Zajímá-li vás roadmapa pro Oracle Warehouse Builder, pak ji najdete zde, Statement of Direction nejdete zde.

OWB11gR2 si můžete stáhnout z OTN
Bohužel stejně jako Oracle Database 11gR2 je i OWB11gR2 v současné době dostupné pouze na platformě Linux - tzn. chcete-li začít vyvíjet v novém OWB musíte mít jako OS klientské stanice Linux a nebo spustit OWB na některém z vašich Linux serverů a např. přes VNC nebo jiný remote desktop se k němu přihlásit.

Seznam nových vlastností OWB11gR2, seskupeno podle kategorií:
Upozornění: Z pohledu licencování mohou být některé nové vlastnosti použity pouze v případě, že vlastníte licenci Oracle Data Integrator Enterprise Edition. Seznam licencovaných vlastností najdete zde.

Native Support for Heterogeneous Databases

OWB now provides extensive built-in support for non-Oracle databases. JDBC connectivity is added alongside previous support for ODBC and database gateways, and OWB now supports in-database ELT operations on non-Oracle databases. Other enhancements improve access to data from non-Oracle sources such as mainframe and flat file data.

Features in this area include:

SOA Integration Enhancements for ETL and Data Quality

The ETL and data quality functionality in OWB can now be integrated into SOA-style architectures.

Features in this area include:

Data Warehousing and Business Intelligence Enhancements

The data warehousing-specific support in OWB has improved. These improvements provide smarter dimensional object operators for ETL and support for more storage types for dimensional objects.

Features in this area include:

Administrator Usability Enhancements

OWB administration tasks are simplified and improved by a number of features in this release. Administration has been extended to support new feature areas such as heterogeneous database support and Web services integration.

Features in this area include:

ETL Mapping Enhancements

ETL mappings have been enhanced to add new transformation capabilities and to improve the productivity of developers working with flat files and designing and debugging ETL mappings.

Features in this area include:

Process Flow Enhancements

OWB process flows have been enhanced to integrate with new activity types, out of the box, and to support integration of OWB ETL and data quality with SOA solutions.

Features that enhance process flows include:


Kompletní seznam nových vlastností OWB11gR2 je dostupný zde, dokumentaci najdete zde.



Erik Eckhardt.