pondělí 29. března 2010
ODI a Soubory jako zdroj nebo cíl (a proč Reverse engineering struktury souboru nic neprovede)
Než začnete pracovat se samotným souborem, je potřeba v ODI Topologii pro technologii File, nadefinovat konektor (Data Server) a adresář (Physical Schéma), ve kterém budou soubory umístěny.
Použijte driver com.sunopsis.jdbc.driver.file.FileDriver pomocí kterého bude prováděn reverse engineering. Driver má několik parametrů, tím nejdůležitějším je ENCODING=[encoding_code] (File encoding, default encoding value is ISO8859_1) a možná OPT=TRUE|FALSE (Option optimizes file access on multiprocessor machines for better performances. Using this option on single processor machine may cause performances loss. Default value is FALSE).
Po založení Data Serveru založte Physical Schéma, které ukazuje na adresář se soubory. Je dobré oddělit adresář s daty (schéma) od adresáře s logy a jinými soubory (work schéma), které budou generovány různými „bulk loadery“ při načítání souborů.
Máte-li založené Fyzické schéma, přidejte Logické schéma a kontext.
Reverse-engineering v ODI
Postup pro načtení struktury souboru je jiný než pro databáze:
1. Založte Model, nastavte technologii na File, vyberte Logické schéma, kontext.
2. Do modelu přidejte nový DataStore, na záložce Definition jej pojmenujte (Name) a z adresáře vyberte zdrojový soubor (Resource Name).
3. Na záložce Files nastavte detail ohledně souboru jako je formát (Delimited / Fixed), oddělovač řádků a sloupců.
4. Na záložce Columns klikněte na tlačítko Reverse a ODI provede načtení struktury (jména sloupců, datové typy a šířky) souboru
Pozor! V určitých případech se Vám může stát, že reverse engineering proces nic neprovede. Důvodem je zamknutí DataStore souboru před spuštěním samotného reverse engineering procesu (chování zamykání objektů lze nastavit v menu User parameters / Lock object when opening).
K uzamknutí souboru nejčastěji dochází v případech, kdy během definice souborového DataStore stisknete na tlačítko Apply – tím se DataStore uzamkne (vedle jména souboru je zobrazen zámek) a Reverse sloupců nic neprovede. Vyhnout se tomu můžete tak, že buď změníte chování zamykání objektů a nebo se budete vyvarovat kliknutí na tlačítko Apply před spuštěním Reverse sloupců souboru.
Soubor jako zdroj
V případě, že soubor bude zdrojem, pak využijte dodávané Znalostní moduly pro nahrávání souborů do cílových databází („LKM File to [vaše_cílová_technologie]“ – moduly využívají „bulk loadery“ jednotlivých databází). Pokud žádný modul neodpovídá vaší cílové databázi, pak použijte „LKM File to SQL“ (Loads data from an ASCII or EBCDIC File to any ISO-92 compliant database).
Soubor jako cíl
V případě, že soubor bude cílem, pak můžete:
Erik Eckhardt
čtvrtek 25. března 2010
ODI a MS Excel jako zdroj nebo cíl
V případě, že se chcete z ODI připojit k souborům MS Excel, pak je nutné (stejně jako pro MS Access) na nějaké MS Windows stanici nadefinovat ODBC zdroj ukazující na požadovaný XLS soubor a samozřejmě mít nainstalovaný XLS ovladač.
Z pohledu ODI by měl na stejném serveru běžet ODI Agent, který bude mít přístup k nadefinovanému ODBC zdroji.
Jakmile existuje ODBC zdroj pro Excel, tak můžete v ODI topologii pod technologií MS Excel vytvořit nový Data Server. Jako driver použijte dodávaný JDBC-ODBC bridge (sun.jdbc.odbc.JdbcOdbcDriver), jako URL cestu na výše vytvořený ODBC zdroj (jdbc:odbc:
Pro vytvořený Data Server založte Fyzické schéma, dále pak Logické schéma a kontext.
Nastavení XLS souboru před Reverse-engineeringem
Před samotným Reverse-engineering procesem se musí v Excelu nadefinovat jména, které pak ODI uvidí jako obyčejné tabulky:
V listu Excelu vyberte oblast buněk a z menu Insert vyberte Name > Define..
Reverse-engineering v ODI
Máte-li nadefinovanou topologii a oblasti v Excelu, můžete provést Reverse-engineering v ODI. Založte Model, nastavte technologii na MS Excel, vyberte Logické schéma a kontext.
Na záložce Selective Reverse proveďte načtení tabulek definovaných v Excelu.
MS Excel jako zdroj
V případě, že Excel bude zdrojem, pak využijte dodávané Znalostní moduly pro nahrávání dat z „any ISO-92 compliant“ databází - tj. LKM, které mají v názvu zdrojové technologie SQL (např. „LKM SQL to Oracle“, „LKM SQL to SQL“ nebo jiné).
MS Excel jako cíl
A/ IKM SQL to SQL Append
V případě, že MS Excel bude cílem, pak ihned můžete začít využívat modul „IKM SQL to SQL Append“. ODI Staging Area je potřeba z cíle (Excel) přesunout na zdroj nebo jiný server.
V případě, že během integrace dat do MS Excel obdržíte následující chybu: [Microsoft][ODBC Excel Driver] Operation must use an updateable query, je potřeba v definici ODBC odznačit Read Only mód.
Potřebujete-li promazat data v cílovém Excelu, pak k dispozici v KM máte volby TRUNCATE a DELETE_ALL:
Jestliže u daného KM nastavíte volbu TRUNCATE, pak dostanete chybu: [Microsoft][ODBC Excel Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE' (TRUNCATE pro Excel není podporován).
Jestliže u daného KM nastavíte volbu DELETE_ALL, pak dostanete chybu: [Microsoft][ODBC Excel Driver] Deleting data in a linked table is not supported by this ISAM (DELETE operace přes daný ODBC driver není podporována).
Workaround může být DROP a opětovný CREATE tabulky. Upravte v IKM DELETE krok, nahraďte jej DROPem a dejte na začátek IKM.
B/ "LKM SQL to SQL" a "IKM SQL Incremental Update"
Po menší úpravě můžete začít využívat i moduly „LKM SQL to SQL“ a „IKM SQL Incremental Update“, ale je potřeba:
1. zajistit,
2. zajistit, aby se při vytváření pomocné integrační tabulky nepoužil datový typ VARCHAR2 (u sloupce IND_UPDATE), jinak obdržíte chybu: [Microsoft][ODBC Excel Driver] Syntax error in field definition:
3. přidat "AS" mezi 'I' a sloupec IND_UPDATE, jinak dostanete chybu: [Microsoft][ODBC Excel Driver] Syntax error (missing operator) in query expression ''I' IND_UPDATE'.
4. přepsat
Výsledkem je přihrávání nových a aktualizace stávajících záznamů v MS Excel (tzn. v Excelu vznikají a dále zůstávají dva listy / tabulky, které jsou využívány pro nahrávání a integraci dat).
Erik Eckhardt
pondělí 22. března 2010
ODI a MS Access jako zdroj nebo cíl
V případě, že se chcete z ODI připojit k MS Access databázi, pak je nutné na nějaké MS Windows stanici nadefinovat ODBC zdroj ukazující na požadovanou MS Access databázi a samozřejmě mít nainstalovaný MS Access ovladač.
Z pohledu ODI by měl na stejném serveru běžet ODI Agent, který bude mít přístup k nadefinovanému ODBC zdroji.
Jakmile existuje ODBC zdroj pro MS Access databázi, tak můžete v ODI topologii pod technologií MS Access vytvořit nový Data Server. Jako driver použijte dodávaný JDBC-ODBC bridge (sun.jdbc.odbc.JdbcOdbcDriver), jako URL cestu na výše vytvořený ODBC zdroj (jdbc:odbc:[odbc_dsn_alias]
Pro vytvořený Data Server založte Fyzické schéma, dále pak Logické schéma a kontext.
Máte-li nadefinovanou topologii, můžete provést Reverse-engineering MS Access databáze: Založte Model, nastavte technologii na MS Access, vyberte Logické schéma, kontext a na záložce Selective Reverse proveďte načtení MS Access modelu.
MS Access jako zdroj
V případě, že MS Access bude zdrojem, pak využijte dodávané Znalostní moduly pro nahrávání dat z „any ISO-92 compliant“ databází - tj. LKM, které mají v názvu zdrojové technologie SQL (např. „LKM SQL to Oracle“, „LKM SQL to SQL“ nebo jiné).
MS Access jako cíl
V případě, že MS Access bude cílem, pak pro:
Nahrání - využijte dodávané Znalostní moduly pro nahrávání dat do „any ISO-92 compliant“ databází - tj. LKM, které mají v názvu cílové technologie SQL (např. „LKM SQL to SQL“ nebo jiné). Integraci – využijte dodávaný Znalostní modul „IKM Access Incremental Update“, který zajistí automatickou aktualizaci stávajících dat nebo přihrání dat nových.
POZOR! V případě, že během nahrávání nebo integrace dat do MS Access obdržíte následující chybu:
[Microsoft][ODBC Microsoft Access Driver] Syntax error in CREATE TABLE statement, tak zkontrolujte nastavení Fyzického schématu pro MS Access technologii – prefixy pomocných tabulek nesmí obsahovat znak dolar „$“ - nutno odstranit nebo změnit!
Erik Eckhardt
čtvrtek 18. března 2010
ODI a GoldenGate - integrace hotova v ODI 10.1.3.6.0_02
Oracle GoldenGate lze použít pro různé typy scénářů s hlavními požadavky na:
- přenos transakcí v reálném čase
- minimální zatížení zdrojových systémů při extrakci dat
- velmi nízká latence přenosu
- neomezená vzdálenost mezi zdrojovou a cílovou databází
- dodržení transakční integrity během výpadku a poruchách sítě
- přenosy v homogenním nebo heterogenním prostředí
- přenosy mezi různými verzemi, edicemi a OS platformami
- ...
Nejběžnější scénáře nasazení Oracle GoldenGate jsou:
Silnou stránkou Oracle GoldenGate je jeho nezávislost na verzích, edicích a dodavatelích zdrojových / cílových databází, a také nezávislost na operačním systému na kterém jsou provozovány.
GoldenGate vám umožní v reálném čase přenášet data z Oracle DB verze 8i běžící na 32-bit Windows do Oracle DB 11g běžící na IBM AIX, nebo mezi Oracle DB Standard Edition a Oracle DB Enterprise Edition, a nebo v heterogenním prostředí mezi různými systémy jako např. z DB2 do MS SQL, Teradaty a zpět.
Integrace mezi ODI a Oracle GoldenGate je pomocí Znalostního modulu „JKM Oracle to Oracle Consistent (OGG)“, který umožňuje přímo z prostředí ODI Designera automaticky generovat infrastrukturu pro GoldenGate, tj. parametrické soubory PRM a OBY.
Real-time Data Warehousing s pomocí ODI a GoldenGate pak vypadá následovně:
Nová verze ODI je dostupná na stránkách Oracle Support pod označením 9449058.
Erik Eckhardt
pondělí 15. března 2010
Operace dělení nad sloupcem celočíselného datového typu
Z repository dostupného po nainstalování poslední verze (10.1.3.4.1) Oracle BI Enterprise Edition jsem použil dva sloupce:
Cílová oblast: Sample Sales,
Tabulka: F2 Units – 23 Dimension Total, Sloupec: 8-66 Total # or Orders (Cnt Dt for All Orders)
Tabulka: D2 Market, Sloupec: M01 Market
Zároveň pro přehlednost jsem nastavil filtr na poslední sloupec s jedinou hodnotou „Market 5“.
Výsledná tabulka po přejmenování sloupců vypadala takto:
Faktový sloupec jsem v dotazu zopakoval a nastavil pro něj hodnotu 1/100:
Výsledek byl následující:
Zkusil jsem přidat ještě jednou stejný sloupec do sestavy a použít matematickou funkci pro zaokrouhlování s následným dělením stem:
Funkce ROUND si zřejmě alokuje pro svůj výpočet paměťový prostor pro datový typ, který zvládá desetinné operace (např. FLOAT nebo REAL) a proto výsledek odpovídal mému očekávání:
čtvrtek 11. března 2010
OBI Purge cache pomocí Event Polling Table
Jedná se v podstatě o velmi triviální záležitost, na webu jsme našli několik jednoduchých step by step postupů konfigurace EVP v ODI. V praxi jsme však narazili na následující problém:
Použita byla databáze Oracle 10gR2 a zakládací skript EVP tabulky dle dokumentace. Po konfiguraci Event Polling Table se v logu NQServer.log objevovali následující chyby v závislosti na tom, jaký ovladač byl použit pro import metadat EVP tabulky:
- Pokud jsme použili OCI driver:
- [55004] The prepare operation failed while polling from table UET.
- [nQSError: 22005] Repository metadata: column has no data type information.
- [55005] The cache polling delete statement failed for table UET. - Pokud jsme použili ODBC driver:
- [55004] The prepare operation failed while polling from table UET.
- [nQSError: 22006] Repository metadata: missing column object: ID=0:34.
- [55005] The cache polling delete statement failed for table S_NQ_EPT.
- [nQSError: 22006] Repository metadata: missing column object: ID=0:34.
Příčinou byl z hlediska Event Polling nekorektní reverse engineering metadat EVP tabulky do OBI repository. Sloupec UPDATE_TS typu DATE bylo nutno manuálně v OBI repository nastavit na DATETIME.
Přikládám funkční kombinaci zakládacího skriptu EVP tabulky a screenshot metadat EVP v OBI repository:
create table S_NQ_EPT (
UPDATE_TYPE DECIMAL(10,0) DEFAULT 1 NOT NULL,
UPDATE_TS DATE DEFAULT SYSDATE NOT NULL,
DATABASE_NAME VARCHAR2(120) NULL,
CATALOG_NAME VARCHAR2(120) NULL,
SCHEMA_NAME VARCHAR2(120) NULL,
TABLE_NAME VARCHAR2(120) NOT NULL,
OTHER_RESERVED VARCHAR2(120) DEFAULT NULL NULL
) ;
pondělí 8. března 2010
Oracle University Vás zve na školení Oracle Data Integrator: Administration and Development
Školení se koná ve dnech 3.- 6. 5. 2010 v Praze - Oracle University, Škrétova 12, Praha 2. Máte-li o školení zájem, pak přímo kontaktuje Oracle University na education_cz@oracle.com
pátek 5. března 2010
Seminář: Vlastnosti Oracle Database 11g pro Datové sklady
Prezentace ze semináře:
- „Best practices“ pro Datové sklady
Martin Gerneš, Oracle BI&DW Solution Architect - Partitioning, Compression a OLAP 11g
Erik Eckhardt, Oracle BI&DW Solution Consultant - RAC a ASM 11g pro Datové sklady
- Tuning a diagnostika v Exadata V2
David Krch, Oracle DB Solution Consultant - Nabídka školení pro Datové sklady
Martin Zikmunda, Oracle University
eec.
čtvrtek 4. března 2010
Dva nové kumulativní patche pro ODI - Patch Set 10.1.3.5.6 a 10.1.3.6.0
Oba dva patche lze aplikovat na jakoukoli verzi počínaje základní 10.1.3.5.0.
Pozor: patch 10.1.3.6.0 mění strukturu Master i Work repository.
Patche jsou ke stažení z Oracle Support pod označením 9377717 (10.1.3.6.0 z 13-FEB-2010) a 9327111 (10.1.3.5.6 z 29-JAN-2010).
Informace o předešlých verzí najdete zde.
Version 10.1.3.6.0
New/Modified Objects
The following KMs have been modified or added in this version:
IKM SQL to Hyperion Planning - Modified
Bugs Fixed
8855049 - Random "java.sql.SQLException: Closed Connection" error appears when running scenarios, while updating a session task. Connection to the repository is lost and session stops.
7696856 - Users not having "view/edit data" privileges are able to see table data through interface diagrams.
8993849 - Some session task logs are grayed out for a user with limited privileges in operator.
9309858 - IKM SQL To Hyperion Planning: ERROR_LOG_FILENAME overwrites and does not append log content.
9056142,9188539 - Repository Structure Fix. This patch set includes a fix to the repository structure. Running an upgrade of the Master and work repositories after this patch fix invalid the repository structures. See Repository Structure Fix for more information.
Version 10.1.3.5.6
New/Modified Objects
The following KMs have been modified or added in this version:
LKM DB2 400 Journal to SQL - Modified
JKM DB2 400 Simple (Journal) - Modified
IKM Oracle Slowly Changing Dimensions - Modified
LKM SAP ERP to Oracle (SQLLDR) - Modified
RKM SAP ERP - Modified
LKM SAP BW to Oracle (SQLLDR) - Modified
RKM SAP BW - Modified
Bugs Fixed
6870772 - Unable to reverse engineer a Datastore or to insert/update a Datastore containing a LOB family type object.
6667705 - Version restore operation causes a deadlock and prevents simultaneous users from updating other repository objects.
8855049 - While updating a session task, repository connections are closed abruptly there by causing "closed connection" exception .
8967643 - "java.lang.NumberFormatException:" when attempting to connect to a set of XSD files.
9103310 - With no overwrite on change configured, IKM Oracle Slowly Changing Dimension fails at step 272 "Updating Existing Row".
9235923 - Missing KMS in the impexp folder, LKM DB2 400 Journal to SQL and JKM DB2 400 Simple (Journal).
9094083 - LKM SAP ERP to Oracle (SQLLDR) : File separator changed to \n for UNIX systems.
9170437 - RKM SAP ERP: Retrieve list of SAP modules dynamically.
9094083 - LKM SAP BW to Oracle (SQLLDR) : File separator changed to \n for UNIX systems.
9249552 - SAP BW RKM : Obsolete step "INSTALL RFC FUNCTIONS" removed from KM.
8848077 - OdiSAPAleServer and OdiSAPAleClient cannot connect to recent sap Netweaver systems. This is due to an incompatibility of these tools with JCO 3. To use a compatible version of the tools. Alter the SAPALE tools calls to use with OdiSAPAleServer3 and OdiSAPAleClient3 instead.
9201073 - Cannot load metadata that includes shared members into HFM 11.1.1.3
Erik Eckhardt
pondělí 1. března 2010
BI Publisher a stálé zapnutí Režimu dostupnosti
- Standardní režim
- Režim dostupnosti
Standardní režim je více vhodný pro vývojáře a administrátory sestav – umožňuje definovat a konfigurovat jednotlivé sestavy v repository (po levé straně jsou k dispozici různá menu).
Režim dostupnosti je více vhodný pro koncové uživatele – nabízí sestavy v přehledné stromové struktuře bez jakýchkoli dodatečný menu – uživatel vybere sestavu a ta se mu buď ihned spustí nebo naplánuje její vygenerování.
Do jaké režimu se má BI Publisher po zalogování přepnou je potřeba vybrat na logovací obrazovce. Režim dostupnosti je standardně vypnutý – tj. uživatel jej musí explicitně zapínat.
V případě, že uživatel opomene zapnout Režim dostupnosti, pak lze dodatečně zapnout v rámci menu Předvolby. Pozor: předvolba se po odlogování přepíše opět nastavením logovací obrazovky.
Proto požadují-li vaši uživatelé, aby byl Režim dostupnosti stále zapnut, pak lze využít menší workaround v podobě upravení logovací stránky.
Jak na to
- Logovací stránku login.jsp najdete v adresáři vašeho J2EE containeru, v mém případě ...\OracleBI\oc4j_bi\j2ee\home\applications\xmlpserver\xmlpserver\login.jsp
- Soubor login.jsp si zálohujte
- Soubor login.jsp otevře v notepadu a vyhledejte input type="checkbox"
- Za input type="checkbox" doplňte checked="yes"
Poté již bude Režim dostupnosti standardně zapnut!
Erik Eckhardt