Follow Us on Twitter

Usage Tracking in de Oracle BI Suite

Oktober 2009 - Bij veel implementaties van OBIEE is er een behoefte van de klant om inzicht te krijgen in het klikgedrag van eindgebruikers. Welke rapportages en dashboards worden wanneer en hoe vaak gebruikt? Dit kan gebruikt worden om de dashboards beter af te stemmen op het gedrag en de behoefte van de organisatie, maar bijvoorbeeld ook op het toerekenen van kosten naar divisies en afdelingen gebaseerd op de resources die ze gebruiken.

In de Oracle BI Suite is een tot nu redelijk onbelichte module die hiervoor gebruikt kan worden. Deze module heet Usage Tracking en werkt met statistieken over het gebruik die in de BI Server van OBIEE zijn vastgelegd. Het resultaat hiervan kan ook gebruikt worden op bijvoorbeeld performance optimalisatie slagen toe te passen bij veel gebruikte resources.

In dit whitebook zal ik aangeven hoe je Usage Tracking kunt installeren, welke log gegevens worden bijgehouden en een aantal rapporten als voorbeeld laten zien.

Installatie van Usage Tracking

Het installeren van Usage Tracking in Oracle gaat als volgt:

  1. Creeer een user usage_tracking in de back-end database (of gebruik een bestaande user).
  2. Creeer de tabel S_NQ_ACCT, het script hiervoor is: ...\OracleBI\server\Schema\ SAACCT.Oracle.sql.
  3. Importeer S_NQ_ACCT in de OBI Administration Tool.
    Import
  4. Creeer de connection pool voor Usage Tracking.
    Usage tracking
  5. Pas de ...\OracleBI\server\Config\NQSConfig.ini aan.
    Zet ENABLE = YES;
    Zet de PHYSICAL_TABLE_NAME en CONNECTION_POOL. Gebruik hiervoor de waarden zoals die zichtbaar zijn in de physical layer
    Physical layer
    NQSCOnfig
  6. Herstart de BI Server.

Architectuur van Usage Tracking in OBIEE

Architectuur OBI EE

Bovenstaand figuur geeft de architectuur van OBIEE weer. We zullen dit plaatje gebruiken om de werking van Usage Tracking uit te leggen.

Een gebruiker vraagt een Answers rapport op of raadpleegt een Dashboard pagina. Een logische query wordt naar de BI Server gezonden.

De logische query wordt door de BI Server vertaald in 1 of meerdere database queries. Als caching in OBIEE niet wordt gebruikt, worden de database queries direct naar de back-end database gezonden. Als de caching aan staat worden de database queries eerst naar de cache gezonden. Als dit geen resultaten oplevert worden de database queries naar de back-end database gezonden en vervolgens in de cache geplaatst. Levert dit wel resultaten op, dan komt het resultaat direct uit de cache.

Het resultaat wordt teruggezonden naar de presentatie server.

De logische query resulteert in 1 record in de logging tabel (of het logging bestand).

De loggegevens

In het logbestand of de logtabel worden de volgende gegevens vastgelegd:

Soort Veld

Veld

Beschrijving

User

USER_NAME

De naam van de gebruiker die de logische query naar de BI Server stuurt.

Dit veld kan gebruikt worden om aan een gebuikersdimensie te joinen, op deze manier kan dan ook gerapporteerd worden op het niveau van afdeling etc.

User

RUNAS_USER_NAME

De naam van de impersonated gebruiker.

Dit veld is over het algemeen leeg.

Datum

START_DT

De startdatum van de logische query. (zonder tijd).

Dit veld kan gebruikt worden om aan een tijdsdimensie op dagniveau te joinen, op deze manier kan dan ook gerapporteerd worden op het niveau van week, maand etc.

Datum

START_TS

De startdatum van de logische query. (met tijd).

Dit veld wordt over het algemeen niet gebruikt in rapportages, maar kan wel handig zijn bij het foutzoeken.

Datum

START_HOUR_MIN

Het uur en de minuut van de startdatum van de logische query.

Dit veld kan gebruikt worden om aan een tijdsdimensie op uurniveau te joinen.

Datum

END_DT

De einddatum van de logische query. (zonder tijd).

Dit veld wordt over het algemeen niet gebruikt in rapportages.

Datum

END_TS

De einddatum van de logische query. (met tijd).

Dit veld wordt over het algemeen niet gebruikt in rapportages.

Datum

END_HOUR_MIN

Het uur en de minuut van de einddatum van de logische query.

Dit veld wordt over het algemeen niet gebruikt in rapportages.

Cache

CACHE_IND_FLG

Y geeft een cache hit aan, N een cache miss.

Dit veld in combinatie met de volgende 2 kan gebruikt worden om de performance van cache van de BI Server te optimaliseren.

Cache

NUM_CACHE_HITS

Aantal cache hits.

Cache

NUM_CACHE_INSERTED

Aantal inserts in de cache.

Duur

COMPILE_TIME_SEC

Aantal seconden dat de BI Server nodig heeft om de query te compileren.

Duur

CUM_DB_TIME_SEC

Aantal seconden dat de BI Server wacht op de back-end database om de query uit te voeren.

Dit veld in kan gebruikt worden om de performance van de back-end database te optimaliseren.

Duur

TOTAL_TIME_SEC

Aantal seconden dat de client applicatie moet wachten op de BI Server bij de uitvoering van een query.

Aantal

NUM_DB_QUERY

Het aantal queries verzonden naar de back-end databases (inclusief cache) voor de uitvoering van de logische query.

Aantal

CUM_NUM_DB_ROW

Aantal rijen geretourneerd door de back-end database (inclusief cache).

Aantal

ROW_COUNT

Aantal rijen geretourneerd door de BI Server.

Fout

SUCCESS_FLG

De status van de query na uitvoering.

Fout

ERROR_TEXT

Foutboodschap van de BI Server of de back-end database.

Server

NODE_ID

Naam van de BI Server.

Dit is een constante.

BI Repository

REPOSITORY_NAME

De naam van de BI repository.

Dit is een constante.

BI Repository

PRESENTATION_NAME

Naam van de presentatie catalogus.

BI Repository

SUBJECT_AREA_NAME

Naam van het business model.

Query

QUERY_SRC_CD

De bron van de logische query, bijvoorbeeld ‘Report’, ‘ValuePrompt’, ‘GlobalFilter’.

Bij rapportage over het gebruik van dashboards kunnen we filteren op ‘Report’.

Query

QUERY_TEXT

De SQL van de logische query.

Dashboard

SAW_DASHBOARD

Padnaam van het dashboard.

Dashboard

SAW_DASHBOARD_PG

Paginanaam van het dashboard.

Answers

SAW_SRC_PATH

Padnaam van het answers rapport.

Voorbeeld toepassingen

In de inleiding heb ik aangegeven waarvoor Usage Tracking gebruikt kan worden. Bijvoorbeeld het toerekenen van het gebruik van dashboards aan gebruikers of afdelingen. Dit kan met onderstaande query die het gebruik weergeeft van de dashboards per gebruiker per maand:

select user_name                                   gebruiker
,to_char(trunc(start_dt,'MONTH'),'YYYY MM') maand
,saw_dashboard                              dashboard
,saw_dashboard_pg                           dashboard_pagina
,sum(total_time_sec)                        duur_tot
,round(avg(total_time_sec),2)               duur_gem
,count(1)                                   aantal
from   s_nq_acct
where  query_src_cd         = 'Report'
and    saw_dashboard       is not null
group by user_name
,trunc(start_dt,'MONTH')
,saw_dashboard 
,saw_dashboard_pg
order by user_name
,trunc(start_dt,'MONTH')
,saw_dashboard
,saw_dashboard_pg
;

Dashboards

Een query die de top 10 oplevert van rapporten met queries die gemiddeld het langst duren in de back-end database kan een goed startpunt zijn voor het aanpakken van performance bottlenecks in de back-end database:

select rapport
,db_duur_avg
,db_duur_max
	,db_duur_min
	,db_duur_sum
	,aantal
	,positie 
from (select saw_src_path                  rapport
   ,round(avg(cum_db_time_sec),2) db_duur_avg
,max(cum_db_time_sec)          db_duur_max
,min(cum_db_time_sec)          db_duur_min
,sum(cum_db_time_sec)          db_duur_sum
,count(1)                      aantal
,rank() 
	over   (order by avg(cum_db_time_sec) desc) positie
	from   s_nq_acct
	where  start_dt      > add_months(sysdate,-1)
	   and saw_src_path is not null
		 and cache_ind_flg = 'N'
group by saw_src_path
	 )
where  positie <= 10
;

Rapporten

Conclusie

Usage Tracking is eigenlijk “een dashboard van het dashboard” en is gebaseerd op het gebruik en de inrichting van de onderliggende architectuur van OBIEE, de BI Server.

Aan de voorkant (presentatie van dashboards en rapportages) kan het zinvolle informatie opleveren over de mate waarin de organisatie gebruik maakt van de geïmplementeerde dashboards (of beter nog: niet gebruik maakt). Informatie hiervan kan gebruikt worden om dashboard anders in te delen, zodat belangrijke informatie eenvoudiger gevonden kan worden.

Usage Tracking kan aan de achterkant (het gebruik van data sources) ingezet worden om heel gericht aan database optimalisatie te doen, voor bijvoorbeeld enkel die tabellen die heel frequent gebruikt worden.

Referenties

Oracle Business Intelligence Server Administration Guide Version 10.1.3.2

Over de auteur
Bob Haverkort is BI consultant bij AORTA BI Solutions. Hij is analytisch ingesteld en ervaren in het technisch implementeren van Oracle BI oplossingen. Bob heeft de afgelopen 8 jaar gewerkt in en rondom Oracle BI projecten en zich gespecialiseerd in het technisch implementeren van datawarehouse concepten en modellen. Hij heeft daarbij ruime ervaring opgedaan met Oracle Warehouse Builder, PL/SQL en OBI EE. Zijn specialisme ligt op het inrichten van de BI Server (metadata laag) in combinatie met het aanleveren van data uit de database. Bob is goed in staat om snel en grondig een vertaling te maken van functionele eisen en wensen naar een technische implementatie.

Waardering:
 

Reacties

Hallo, Wij gebruike OBIEE en BI Publisher. BIP wordt veelal standalone aangeropen, na autorisatie (SSO IIS) via OBIEE. Zijn er mogelijkhden het gebruike van BIP rapporten te monitoren? (wie, wat, wanneer etc)

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.