Apr 11
19
Después de un par de intentos fallidos de solucionar un problema con el nuevo motor gráfico que no despliega algunas graficas en mis dashboards, los ingenieros de soporte de Oracle me han mencionado que la unica forma de instalar OBIEE 11g en ambientes Unix/Linux de 64 bits es usando la opcion de “Software Only” en el programa de instalacion e instalando WebLogic de forma separada.
La imagen en esta nota muestra la opcion “Enterprise” que instala una version 32-bit de WebLogic. La ventaja de usar un servidor virtual de SUSE Linux corriendo en Oracle Virtual Box es que puedo facilmente restaurar mi respaldo y empezar el proceso sin tener que instalar la base de datos y correr RCU de nuevo.
![]()
Espero poder publicar una guia de instalacion para ambientes de 64-bits, mientras tanto el vinculo a las notas donde se menciona esta limitante es este:
http://download.oracle.com/docs/cd/E14571_01/doc.1111/e14770/biee.htm#CHDIHIE
On October of 2006 Oracle acquired Sunopsis a sofware company whose flagship product was one of the up-and-coming players in the datata warehousing arena. Sunopsis for easy integration in environments with multiple database systems and differentiated itself by adopting an Extract-Load-Transform architecture that decreased the learning curve for database developers that were immediately able to create transformation using familiar SQL syntax. By utilizing the computing power in the target database Sunopsis’ ELT architecture potentially decreased the need for additional computing power in a dedicated ETL server.
Fast forward five years and Sunopsis is now Oracle Data Integrator, it is a key component of the Fusion Middleware Data Integration product line and it’s looking good, a few features that large enterprise customers will find interesting are:
It seems as if the merging of Oracle Warehouse Builder and Sunopsis’ functionalities has been beneficial to the end product and, in general, to the enterprise customer. Now it remains to be seen how aggressively Oracle”s sales force can take market share from ODI’s top competitors IBM Information Server and Informatica PowerCenter.
Stay tunned for additional product reviews and, of course, OBIEE and Business Intelligence updates…
I have been working with a lot of materialized views in our PeopleSoft Campus Solutions Warehouse lately and let me tell you, they can be a pain some times. Before I go into technical details here are some best practices that we have developed in our environment for data that is loaded once nightly:
It is important to note that these materialized views are being used as helper tables to determine the most recent surrogate key values for each dimension entity and the datasets are fairly small, we are testing partitioning some of this data but haven’t come up with an optimal partitioning method so that we can reap the benefits of partition elimination to the degree we would like.
Check out the Puget Sound Oracle User Group page for the pacific northwest for a deeper look at Materialized Views and DBMS_MVIEW.
I made a nice discovery today when trying to extract a list of the physical table aliases under the Global Dimensions physical display folder in my PeopleSoft EPM Fusion Intelligence repository. After several frustrating attempts to use the query repository dialog I discovered that I the appropriate filters are automatically populated if I right click the physical display folder and select “Display Related > Physical Table”. Once I got this figured out I was able to export the list of tables to a CSV file that I could manipulate and format with excel. Here’s a picture to help you find the dialog:
The difference between Logical Tables, Logical Table Sources (LTS) and the physical tables that compose a Logical Table Source, here are some basic guidelines that have helped me get this concept to seat more clearly in my mind.
Logical Tables like organization in the picture on the left are used to create drill down paths or dimensions like Dim_Organizaition.
Usually when you drag and drop a column from a table that is not currently being used in your logical table, the physical table containing such column gets added as a new Logical Table Source (LTS) such as UofA on the image on your left. This most usually is not the result you should be aiming for, in general, when a the column you are adding to a Logical Table comes from the same system of record you have been using you should just rename the LTS to reflect the name of the system of record in the same fashion we renamed ours to UofA and then go edit the sources for this LTS.
The confusion often stems from having what I would call “Logical Table Source” Sources (LTSS). The image below depicts them for UofA, you can acces this dialog by double clicking any LTS.
Physical Table FRS_GL_ACCOUNTS is a “Logica Table Source” Source (LTSS) for Logical Table Source UofA. The rationale again is that UofA represents a system of record (source) that brings in information from more than one physical table to build our organization logical table.
If you still have questions add comments to this post and let’s get the discussion started
Oracle Corporation’ (ORCL) acquisition of Golden Gate Software on July of 2009 was a big step for Oracle in its quest to build a open and heterogeneous product line that will be more appealing to enterprise customers with complex OLTP and data warehouse environments. You can find a detailed presentation of the considerations that were taken into consideration regarding this acquisition here.
In the data warehousing space this is a welcome addition to the earlier acquisition of Sunopsis (now Oracle Data Integrator ) a Extract-Load-Transform alternative to traditional ETL tools such as Informatica and IBM Information Server (DataStage) that plays nice in heterogeneous database environments and is significantly easier to use, and more stable than the displaced Oracle Warehouse Builder (OWB).
Key areas where Golden Gate can be of use in a heterogeneous database environment:
Under the last scenario events can be fed into real time alerts or dashboard Key Performance Indicator’s in real time in addition to triggering additional events when the event is orchestrated via an enterprise bus.
Here’s a link to a step by step installation and configuration demo at Oracle Technology Network (OTN).
Stay tunned for additional product reviews and OBIEE tips and tricks that are coming soon and check my review of Oracle Data Integrator here..
I have been working a lot on content migration and service configuration of our linux-based OBIEE servers lately. One thing that has definitively helped me a lot is that I took some time to define these linux environment variables on the linux account’s ~/.bash_profile file:
OBI_HOME= #this helps me navigate really quick to my OracleBI folder (ie. OBI_HOME=/some/really/long/path/OracleBI)
export OBI_HOME
OBI_DATA= #this helps me navigate really quick to my OracleBIData folder (ie. OBI_DATA=/some/really/long/path/OracleBIData)
export OBI_DATA
OBI_REP= #this helps me navigate really quick to my OBIEE repository folder (ie. OBI_REP=$OBI_HOME/server/Repository)
export OBI_REP
OBI_CAT= #this helps me navigate really quick to my OBIEE presentation server catalogs folder (ie. OBI_CAT=$OBI_DATA/web/catalog/)
export OBI_CAT
Now I can move to my repository folder from anywhere in the file system by just typing:
$ cd $OBI_REP
I need to test some of Subversion’s functionality without our server admins hating me at work so I decided to build me a local server based on this post by Jeff Atwood, I installed the server with the Apache 2.o bindings from SVN’s website. So after getting the binaries in my computer’s hard disk this is how it went:









For any inquiries on this topic please post to the General Discussion or Best Practices threads on the THE Business Intelligence Forum, our better alternative to sites that make you pay to look at answers like dsxchange or that disallow references to any of their competitors like ITToolbox…
This was one of those errors that are very simple yet take a lot of your time to figure out. When trying to create a Informatica Power Center Repository Service in the web interface for the administration console I ran into a “An Exception has occurred. The database connection detail for service INFA_REPO_SVC are invalid. Please check log for details”, after a long time searching online and looking at different forums I finally came across a post that recommended you use the following format for your repository database entry on tnsnames.ora:
BIAPPS.world = (DESCRIPTION = (ADDRESS = (COMMUNITY=mycompany.world)(PROTOCOL = TCP)(HOST =myhost)(PORT = 1521) ) (CONNECT_DATA = (SERVER = DEDICATED) (SID=biapps) (GLOBAL_NAMES= biapps.world) (SERVICE_NAME = biapps) ) )
Once I changed my tnsnames.ora I was able to connect and create my repository. Check this other post for the script I used to create the database account and storage configuration for the repository.
I have a scheduled script that refreshes some of my materialized views but sometimes these operations could fail if the database backup takes too long or an unexpected condition presents. This led me to think of sending the output of my refresh procedures to my email or my team’s listserv, here are sample versions of my scripts:
| daily_mview_refresh.sql: |
|
| daily_mview_refresh.sh: |
|
Something to have in mind would be to incorporate appropriate error handling in the stored procedures being called and also providing some output that would indicate progress through the materialized view refresh process. In the scripts I actually use I also collect statistics and rebuild some indices, each view is refreshed in a different procedure as to contain any errors and allow the remaining views to be built anyway.
The Informatica repository is designed to reside in a database system, for my local test environment I will be hosting it in an Oracle 11g database. Here are two design principles that need to be taken into consideration when setting up the database that will host your repository:
When creating a production repository additional considerations should be taken to ensure that your backup strategy will allow you to always recover the repository data from a potential failure with full integrity. To help you get started I’m providing a template for a script that will create a user, a tablespace and grant basic permissions to your user, I’m using this configuration for my local test install.
Review the step by step list of activities by going back to the Pre-Install Task List…
Here’s a list of useful reference I’ve found online while trying to setup our DataStage ETL & OBIEE version control environment:
http://svn.collab.net/repos/svn/trunk/doc/user/svn-best-practices.html
http://www.codinghorror.com/blog/archives/001093.html
http://subversion.tigris.org/faq.html
http://svnbook.red-bean.com/nightly/en/index.html
Since the rest of the team found the name of the script I created to bounce our OBIEE server very comic I decided to share bounce_like_a_tiger.sh with you:
#!/bin/sh
#Initialization
#get the action/parameter
command=$1
bin_ps=/bin/ps
bin_awk=/usr/bin/awk
bin_grep=/usr/bin/grep
#validate that the action to execute is either start, stop, forcestop or autorestart
if [ "$command" = "start" -o "$command" = "stop" -o "$command" = "forcestop" -o "$command" = "autorestart" ]; then
#set work directory
OBI_HOME=/opt/OBIEE/OracleBI
export OBI_HOME
else
echo “Invalid parameter…”
echo “Syntax: ”
echo ” obiee.sh { start | stop | forcestop | autorestart }”
exit 1
fi
if [ "$command" = "start" ]; then
echo “obiee.sh WILL START ALL SERVICES…”
echo “”
#Step 1: execute command on OBI Server
processname=run-sa.sh
echo “Executing: ”
echo ${OBI_HOME}/setup/run-sa.sh $command
${OBI_HOME}/setup/run-sa.sh $command
ec=$?
echo “exit code: ” $ec
echo “…”
echo “…”
if [ "$ec" != "0" ]; then
echo “An error occurred running run-sa.sh … OBIEE.sh is aborting…”
exit 1
fi
#Step 2: execute command on OBI Presentation Services
echo “Executing: ”
echo ${OBI_HOME}/setup/run-saw.sh $command
${OBI_HOME}/setup/run-saw.sh $command
ec=$?
echo “exit code: ” $ec
echo “…”
echo “…”
if [ "$ec" != "0" ]; then
echo “An error occurred running run-saw.sh … OBIEE.sh is aborting…”
exit 1
fi
#Step 3: execute command on OBI Scheduler
echo “Executing: ”
echo ${OBI_HOME}/setup/run-sch.sh $command
${OBI_HOME}/setup/run-sch.sh $command
ec=$?
echo “exit code: ” $ec
echo “…”
echo “…”
if [ "$ec" != "0" ]; then
echo “An error occurred running run-sch.sh … OBIEE.sh is aborting…”
exit 1
fi
#Step 4: execute command on OBI Cluster Controller
echo “Executing: ”
echo ${OBI_HOME}/setup/run-ccs.sh $command
${OBI_HOME}/setup/run-ccs.sh $command
ec=$?
echo “exit code: ” $ec
if [ "$ec" != "0" ]; then
echo “An error occurred running run-ccs.sh … OBIEE.sh is aborting…”
exit 1
fi
elif [ "$command" = "stop" -o "$command" = "forcestop" ]; then
echo “obiee.sh WILL SHUTDOWN ALL SERVICES…”
echo “”
#Step 4: execute command on OBI Cluster Controller
echo “Executing: ”
echo ${OBI_HOME}/setup/run-ccs.sh $command
${OBI_HOME}/setup/run-ccs.sh $command
ec=$?
echo “exit code: ” $ec
echo “…”
echo “…”
if [ "$ec" != "0" ]; then
echo “An error occurred running run-ccs.sh … OBIEE.sh is aborting…”
exit 1
fi
#Step 3: execute command on OBI Scheduler
echo “Executing: ”
echo ${OBI_HOME}/setup/run-sch.sh $command
${OBI_HOME}/setup/run-sch.sh $command
ec=$?
echo “exit code: ” $ec
echo “…”
echo “…”
if [ "$ec" != "0" ]; then
echo “An error occurred running run-sch.sh … OBIEE.sh is aborting…”
exit 1
fi
#Step 2: execute command on OBI Presentation Services
echo “Executing: ”
echo ${OBI_HOME}/setup/run-saw.sh $command
${OBI_HOME}/setup/run-saw.sh $command
ec=$?
echo “exit code: ” $ec
echo “…”
echo “…”
if [ "$ec" != "0" ]; then
echo “An error occurred running run-saw.sh … OBIEE.sh is aborting…”
exit 1
fi
#Step 1: execute command on OBI Server
echo “Executing: ”
echo ${OBI_HOME}/setup/run-sa.sh $command
${OBI_HOME}/setup/run-sa.sh $command
ec=$?
echo “exit code: ” $ec
if [ "$ec" != "0" ]; then
echo “An error occurred running run-sa.sh … OBIEE.sh is aborting…”
exit 1
fi
fi
exit 0
Here’s my latest run on uninstalling Oracle Application Server 10.1.3.0 from a SuSE 10 Enterprise box:
Important: Be sure to backup your OAS instance and the OAS repository database before you proceed with these instructions.
$ORACLE_HOME/oui/bin/runInstaller
P.S.: Complete instructions to be found on Oracle’s OTN at http://download.oracle.com/docs/cd/B32110_01/install.1013/b32198/deinst.htm#CHDHFGDA
Yesterday I had the opportunity to take a first pass on desigining documentation and project management templates for our PeopleSoft implementation along with two of my co-workers, here’s some of the lessons we have learned as we started working with the KISS principle in mind:
APPROACH
USABILITY
ACCESSIBILITY
More to come on this as the project keeps rolling… enjoy your weekend!
I just finished OBIEE Repository Life Cycle diagram in visio I hope it can be of help during training and in your organizations. The attempt today was to illustrate in a very simple diagram the metadata development process in a OBIEE multi-user development environment (MUDE).
Bon Soir!
-Ignacio
In a long anticipated move among both Fusion Intelligence and Oracle BI Apps customers, Oracle has released the first versions of its packaged business intelligence solution that replaces the third party tools of previous versions (IBM DataStage or Informatica Power Center) with Oracle Data Integrator as the back end ETL tool.
You can find detailed install and configuration instructions in the Oracle Business Intelligence Applications 7.9.5.2 Documentation Library. It is important to note that this is a controlled availability release that mainly means the only data source supported is Oracle E-Business Suite 11.5.10, marts available in this release are:
Limitations notwithstanding, this is a key move that signals a long term strategy for BI Apps that will require customers and partners to develop additional skills and an important upgrade consideration for EBS customers. I personally hope that we will see Oracle implement Golden Gate at some point down the road in order to provide real time operational intelligence for a limited set of KPIs that lend themselves to be used in BAM applications.
Hey I’ve got to document this so I don’t forget how to cleanup after myself:
After successfully loading compensation mart I had to help bring up the rest of the marts up to speed. The most common data issue the rest of the facts were experiencing was dimensions that weren’t being implemented like PS_D_GOV_POI.
The PS_POSITION_DATA.GVT_POI and PS_POSITION_DATA.GVT_SUB_AGENCY columns in HCM are being defaulted to a blank space by our conversion programs which is kind of fine since there’s no relational integrity constraints at the database level, so if the position conversion program defaults the fields to a blank space or a value that does not exist on PS_GVT_POI_TBL or PS_GVT_POI_TBL no warnings or errors are raised.
Now this is not fine on the warehouse, the blank spaces are converted to dashes (‘-’) by the dimension load programs and since PS_GVT_POI_TBL contains no rows PS_D_GOV_POI is an empty dimension.
The solution to all these issues is very simple, all dimensions that are NOT being implemented should contain what I’m going to call “NULL Rows” for lack of a better term. These NULL Rows have code values in the dimension that match the default values used for the conversion program so that joins like the following would work:
TRANSACTION:
SELECT * FROM PS_POSITION_DATA, PS_GVT_SUBAGCY_TBL WHERE PS_POSITION_DATA.GVT_SUB_AGENCY=PS_GVT_SUBAGCY_TBL.GVT_SUB_AGENCY
WAREHOUSE:
SELECT *
FROM PS_GVT_SUBAGCY_TBL,PS_D_GOV_SUBAG
WHERE PS_D_GOV_SUBAG.GOV_SUBAG_CD=PS_GVT_SUBAGCY_TBL.GVT_SUB_AGENCY
AND PS_GVT_SUBAGCY_TBL.COMPANY=’<your company code here>’
Slider by IWEBIX Webdesign