Professional Documents
Culture Documents
Saptarshi Bose
Oracle EPM Consultant, Wipro Technologies
Disclaimer: This article draws references from ODI 11g documentations from Oracle. At certain points, further
reading references are also provided using URLs from ODI online documentation library. Besides, it takes
references from certain websites on ODI 11g and 10g.
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Table of Contents
Introduction ............................................................................................................................ 2
Hyperion Essbase Knowledge Modules ....................................................................................... 2
Hyperion Essbase 11.1.2.2 and ODI 11g Data Integration POC Cases ........................................... 2
Case 1: Hyperion Essbase Outline Extraction to a Flat File ........................................................ 2
Case 2: Hyperion Essbase Outline Extraction to a RDBMS Table created on the Fly ................... 18
Case 3: Data Load to Hyperion Essbase (without using Rules File) using Join Transformation on
RDBMS Tables ................................................................................................................... 29
Case 4: Metadata Load to Hyperion Essbase from a RDBMS Table .......................................... 48
Case 5: Metadata Load to Hyperion Essbase from a Flat File .................................................. 63
Case 6: Hyperion Essbase Data Extraction Using Calc Script Method to a RDBMS Table created on
the Fly .............................................................................................................................. 67
Case 7: Hyperion Essbase Data Extraction Using MDX Query Method to a RDBMS Table created on
the Fly .............................................................................................................................. 79
List of Abbreviations .............................................................................................................. 89
pg. 1
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Introduction
This technical article is intended to demonstrate the usage of Oracle Data Integrator (ODI) 11g in
conjunction with Hyperion Planning and Essbase 11.1.2.2 for typical ETL (Extract-Transform-Load)
scenarios involved in a Hyperion Planning and Essbase project.
Part-2 of this series illustrates the data integration capabilities of ODI 11g when used in conjunction with
Hyperion Essbase 11.1.2.2 with seven typical use cases. The cases discussed can be used as re-usable
guidelines to implement advanced cases of the same in real time project scenarios.
A key purpose of this article is to document the implementation steps of a set of POC (Proof of
Concept) scenarios to demonstrate ODI 11g data integration features and capabilities with Hyperion
Planning and Essbase 11.1.2.2 for one of the top US Bank. Demonstration of the POC scenarios to the
client management is intended to expand the scope of current Hyperion engagement in the bank
in the forthcoming calendar year of 2015.
Description
pg. 2
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 3
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 4
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Once RE is complete, the model is checked from inside the model folder.
pg. 5
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 6
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, a target flat file Meaures_Metadata_Extract_POC.csv is created in the location showed below and
the header rows along with alphabets in the next line are entered. These alphabets render the columns as
String type automatically when RE is done.
pg. 7
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 8
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 9
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Post RE, columns of the file are shown up in the datastore as shown below:
pg. 10
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 11
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 12
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, Flow tab settings are done. End to end data flow for this POC scenario can be summarized as:
Essbase
pg. 13
Flat File
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Details on the settings on LKM Hyperion Essbase METADATA to SQL can be read at:
http://docs.oracle.com/cd/E28280_01/integrate.1111/e12644/hyperion_essbase.htm
In the POC scenario, following settings are done on the LKM
pg. 14
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 15
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 16
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Session ran successfully. Next, the output file is checked to confirm that the extraction was successful.
pg. 17
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
This POC case is similar to Case 1, the only difference being the extraction happens on a RDBMS table
created on the fly using a Yellow interface in ODI.
A new interface named POC_MEASURE_DIM_EXTRACT_DB is created under the ODI project
ODI_POC_PROJECT.
Note: In this case, unlike Case 1, Staging Area Different from Target is not checked and the destination is
identified by the Oracle RDBMS logical schema.
Next, mapping is done, and target datastore is created dynamically using the source datastore using Add
to Target option.
pg. 18
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 19
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Target datastore is named as MEASURES_EXTRACT_DB eventually this would be the name of the target
table to be created on the fly when this interface is executed.
Next, on the Flow tab, LKM and IKM settings are done. End to end dataflow is described as
Essbase
RDBMS Table
Oracle Database Domain
pg. 20
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 21
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 22
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, the interface is executed.
pg. 23
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Analyzing the Session Task Integration step, the code generated by ODI to create the target table on the
fly can be found.
pg. 24
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 25
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, from the Mapping tab on the interface target table data is observed to confirm the insertions.
pg. 26
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Target table in
Oracle database
pg. 27
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 28
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Case 3: Data Load to Hyperion Essbase (without using Rules File) using
Join Transformation on RDBMS Tables
In this POC case, two source tables are there namely
Aim of this POC case is to load the sales figures by product to Sample.Basic Essbase cube using the two
above mentioned source tables.
A new model is created named SRC_ESSBASE_DATA_LOAD_TABLES to host the source datastores.
pg. 29
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 30
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 31
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Once RE is complete, the datastores are created within ODI repository. Note, that the constraints associated
with the table are also reversed. In case such constraints are not there at source table level, they can be
created at ODI level as well.
Data is the source datastores can be viewed from ODI as shown below:
pg. 32
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 33
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 34
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 35
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
In the Mapping tab the two source tables are joined using a filter transformation as shown below
pg. 36
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Then the source and target are mapped -
pg. 37
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Here, the end to end data flow can be depicted as
ODI Staging Layer or
Sunopsis Memory Engine
RDBMS Tables
Essbase
pg. 38
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 39
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 40
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 41
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Some of the key options to take a note for the IKM are:
pg. 42
CLEAR_DATABASE :- This will execute the following calculation script commands for block storage
cubes (CLEARBLOCK ALL, CLEARBLOCK UPPER, CLEARBLOCK NONINPUT), for ASO cubes cubes
one can only select ALL and it will clear all data.
MAXIMUM_ERRORS_ALLOWED :- If this is set to 0 it will ignore any errors such as a member not
found and keep trying to load.
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
COMMIT_INTERVAL :- This number will be the amount of records of data that are sent to essbase
in a chunk. Setting this amount to a large value can cause performance issues if any records that
get rejected.
RULES_FILE :- With this IKM, no rules file is required to load data, but an important thing to note
is that without a rules file the data will always be sent as overwrite and one needs to use a rules
file to add to existing data.
From ON, it is observed that the interface has failed. Reason is highlighted below.
pg. 43
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
The data type selected wrongly as shown below caused the interface to fail. For Essbase to store the
AMOUNT column it has to be a number.
pg. 44
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 45
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Interface is saved, closed and opened again such that the change takes effect. Next, it is executed again.
This time it runs successfully.
pg. 46
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Checking the data connecting the Sample.Basic cube from Smart View shows that intended intersections
were loaded properly using the join between the two source tables to fetch the data.
Note: Such an interface will load the data into essbase without any rules file; any data which couldnt be
loaded will be logged in the error log file. When a data load runs a chunk of the source data is grabbed,
the amount of data in each chunk depends on the value being set in the COMMIT_INTERVAL option of
the IKM, the default being 1000 records. What happens now is the data is streamed in using an API until
all the records have been processed and the data is then committed to essbase. This process is repeated
until all the chunks of source data have been processed. This process works fine unless there are some
invalid records e.g. records with members that dont exist in the dimension it is being loaded against. The
pg. 47
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
data will not be rejected until the end, and so with the commit interval set to 1000, 1000 records of data
will still be sent to essbase and it will be all rejected if any of it is invalid. ODI tries to load each record one
by one from the start of the chunk until it has processed all the records in the chunk. So if the commit
interval is 1000 then it will try and load each of them 1000 records one by one until it has processed the
1000 records and then goes back into the stream loading of the next chunk, if it hits another error then it
will go into single record update again. This adds an extremely large overhead in the processing time and
it is a really inefficient way of processing data, hopefully this would be rectified soon. But, till then playing
around with the commit interval settings, ensuring good source data quality and loads of testing are the
only means of using this IKM. Else, using a rules file in the IKM option would help in catching the error in
a better way.
This POC case, deals with the process of loading metadata from a RDBMS table to Essbase. Primary
requirement for the same is to create an ODBC connectivity or link for Essbase, because, the IKM to be
used in the ODI interface demands a SQL type rules file to fire a query on the RDBMS table to pull the
metadata. Basically, the IKM works as a wrapper for the rules file. The source table name is
SRC_PRODUCT_METADATA_T. This table stores product information on Camera line. The CAMERATYPE
column is the attribute for a specific model.
pg. 48
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Steps to create ODBC link are given below:
1. From Administrative Tools on Windows Data Sources (ODBC) is navigated.
pg. 49
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
3. Next, System DSN is selected and the driver is setup as shown
pg. 50
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 51
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, EAS is opened to create a SQL type rules file.
pg. 52
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
The SQL data source is selected and a query is created as shown below.
pg. 53
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 54
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
The hierarchy of cameras is required to be loaded in the Product dimension in Sample.Basic; and
member 900 is required to be added to the Product hierarchy.
Next, a dimension build rules file PRDLOAD.rul is created to build the hierarchy.
pg. 55
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, a model is created in ODI named SRC_ESSBASE_METADATA_LOAD_TABLES. Then the source
table is reversed to create the source datastore.
pg. 56
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 57
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Mapping is done as shown below
RDBMS Tables
Essbase
pg. 58
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
On the Flow tab, the dataflow is generated as
pg. 59
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, the interface is saved and executed. From ON, the status is observed. It shows that 7 rows are
processed.
pg. 60
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 61
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
From EAS it is confirmed that metadata got added successfully.
pg. 62
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
This POC case is similar to case-4, except the source is a flat file. End to End data flow can be depicted
as
ODI Staging Layer or
Sunopsis Memory Engine
Flat File
Essbase
pg. 63
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
The source file is of the following format
The Mapping window for the interface POC_LOAD_METADATA_FILE_TO_ESB created for this POC case
is shown below
pg. 64
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
The Flow tab is shown below along with the IKM is shown below
pg. 65
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 66
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Once the interface is executed all the data gets processed but with a glitch!! The Node member 900 its
alias and rollup property is not properly updated
This doesnt happen when the rules file is executed directly. This happens only when it is called from the
IKM. This is the key issue that was identified while setting up this POC case.
pg. 67
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 68
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, a DATAEXPORT CalcScript is written which would fetch the data to a file on the local path.
It is important to use - DataExportDimHeader On; as ODI will consider the first 2 records to be header
information.
The extract goes to the following folder
pg. 69
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, a model is created and Sample.Basic in the local installation is RE.
pg. 70
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 71
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, a yellow interface is created
pg. 72
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 73
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
End to end dataflow can be depicted as
Essbase
RDBMS Table
Oracle Database Domain
pg. 74
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 75
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, the interface is saved and executed. On successful completion of the session, from ON it is observed
that there were 6 inserts on the target table.
pg. 76
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 77
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 78
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
The same is verified from SQL developer as well
No need for Essbase server and ODI to be installed in the same box.
No need for ODI agent to be running in the Essbase server
pg. 79
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Customized RE is done. Note the RKM options set to extract the data.
pg. 80
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, a Yellow interface is created such that the target table is created on the fly copying the source
datastore definition.
pg. 81
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 82
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 83
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
The data extraction MDX query is created as the following
The query is run EAS console to give the following result. It shows 12 rows. Therefore, the expectation
from the yellow interface is that the target table to be created on the fly should have 12 rows being fetched
from Essbase and inserted into it.
This query is saved in the local folder path on the server where ODI is installed
pg. 84
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
Next, on the Flow tab, LKM and IKM settings are done. End to end dataflow is described as
Essbase
RDBMS Table
Oracle Database Domain
Figure 7: Essbase Outline Extraction to a Relational Database Table using MDX Query
pg. 85
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 86
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
The data in the target table created on the fly is checked from the interface Mapping window -
pg. 87
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
pg. 88
Using ODI 11g with Hyperion Planning and Essbase 11.1.2.2 Part2
List of Abbreviations
Abbreviation
ODI
EAS
DN
ON
TN
SN
RN
LKM
RKM
IKM
Meaning
Oracle Data Integrator
Essbase Administrative Services
ODI Designer Navigator
ODI Operator Navigator
ODI Topology Navigator
ODI Security Navigator
Reverse Engineering
Loading Knowledge Module
Reverse Knowledge Module
Integration Knowledge Module
-------------------------
pg. 89