čtvrtek 11. března 2010

OBI Purge cache pomocí Event Polling Table

Na projektu jsme chtěli automaticky vyprázdnít OBI cache po aktualizaci dimenze nebo faktové tabulky. Vzhledem k tomu, že jako ETL používáme ODI, rozhodli jsme se nakonfigurovat OBI Event Polling Table (EVP) s tím, že ODI Knowledge Modul zajistí po aktualizaci tabulky vložení odpovídajícího záznamu do Event Polling Table (více o Event Polling Table viz. dokumentace Oracle BI Server Administration Guide, kapitola Cache Event Processing with an 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
) ;



Karel Hübl (Architekt společnosti GEM System International)

Žádné komentáře: