Monday, October 10, 2011

Training
On
Oracle Hyperion/OBIEE
Products
Suite

Basics of Hyperion Essbase



Hyperion Essbase


I. Essbase Versions/ New features/ Differences:

1. What are new features in 7.x version?

• Aggregate Storage option
• Hyperion Hub
• Triggers

2. What is MOLAP? What is MDDB? What are features available with Multidimensional Data base?

• Essbase OLAP Server contains multidimensional databases that support analysis and management reporting applications that are described as online analytical processing (OLAP) applications.

• A multidimensional database supports multiple views of data sets for users who need to analyze the relationships between data categories.

• Multidimensional databases consolidate and calculate data to provide different views. Only the database outline, the structure that defines all elements of the database, limits the number of views.

• With a multidimensional database, users can pivot the data to see information from a different viewpoint, drill down to find more detailed information, or drill up to see an overview.


3. What Essbase Administration Services will do In Essbase?

Ans: Essbase Administration Services is for managing and maintaining Essbase. Essbase Administration Services consists of a client console and a middle tier server that communicate directly with Essbase OLAP Servers.


4. What are differences between Application Manager and Essbase Administration services?

Ans: With Admin services,
• We can run calc scripts directly from editor.
• Migrate application from one server to other server.
• You can restructure database from admin console.
• You can start and stop OLAP server.


II. Essbase Client/Server Architecture

1. What server agent will do?

• The server runs a Server Agent (ESSBASE) process that acts as a traffic coordinator for all user requests to Essbase applications.

• Administrative requests, such as logging in and logging out, starting and stopping applications and databases, and viewing user security information, are handled by the Essbase Server Agent (ESSBASE).

2. What ESSSVR process will do?

Application server (ESSSVR) handles client requests for data, such as data loads, calculations, spreadsheet reports, and data lock and unlock..


III. Application/database Creation and settings


1. What files will be created once you created application?
.app, .apb, and application log file.

2. I have 4 databases in my application then how many database log files can be created in Application?

Only one application log
(Note: Only one app log is created for one application)

3. What files will be created once you created database?

.db, .dbb, .esm, .tct, and .ind




IV. Outline creation and settings

1. What is outline and what is it contains?

Database outlines define the structure of a multidimensional database, including all the dimensions, members, aliases, tags, types, consolidations, and mathematical relationships. The structure defined in the outline determines how data is stored in the database.

When a database is created, Essbase creates an outline for that database automatically. The outline has the same name as the database (dbname.OTL).

2. What is difference between non-attribute/standard and attribute dimensions?

Standard dimensions represent the core components of a business plan and often relate to departmental functions.

Attribute dimensions are a special type of dimension and are associated with standard dimensions. Through attribute dimensions, you group and analyze members of your standard dimensions. It doesn’t associate any data.

3. Why they classified standard dimensions as dense and sparse? What is difference between Dense and Sparse dimensions?

Essbase maximizes performance by dividing the standard dimensions of an application into two types: dense dimensions and sparse dimensions.

Most multidimensional databases are inherently sparse: they lack data values for the majority of member combinations. A sparse dimension is a dimension with a low percentage of available data positions filled.

Most multidimensional databases also contain dense dimensions. A dense dimension is a dimension with a high probability that one or more data points is occupied in every combination of dimensions.


4. What is difference between generation and level?

Generation: Any member can have only one generation and Top to Bottom
Level: Any member can have more than one level and Bottom to Top

5. What are storage properties available in Essbase?

Store Data:
Computed, when the default calculation script is run.

Dynamic Calc Member (do not store data).
Computed at Reporting time. Not stored in HDD.

Dynamic Calc and Store Member.
Same as above, but after first computation, starts behaving as Stored Member.

Shared Member (do not store data).
Explicit sharing for implementing Alternate Hierarchy.

Never share data.
Explicitly mention that there should be no implicit sharing.

Label Only.
Not stored. Not computed. Used just for grouping purpose.

6. What is difference between Dynamic calc and Dynamic calc and store?

Dynamic calc:
The data associated with the member is not calculated until requested by a user. The calculated data is not stored; it is discarded after the request is completed.

Dynamic calc and store:
The data associated with the member is not calculated until it is requested by a user. The calculated data is then stored.


7. What is shared member? What are uses of shared member? What are features and limitations of shared member?

• The data associated with the member comes from base member with the same name. The shared member stores a pointer to data contained in the other member and the data is only stored once.

• Shared members are typically used to calculate the same member across multiple parents.

• Using shared members lets you use members repeatedly throughout a dimension. Essbase stores the data value only once, but it displays in multiple locations. This offers considerable space saving as well as processing efficiency.


Features:
  • You can have an unlimited number of shared members with the same name.
  • You can assign aliases to shared members.
Limitations:

  • The shared members must be in the same dimension.
  • You should not create an outline where shared members are located before
actual members in a dimension


8. What is implicit sharing?

Some members are shared even if you don’t explicitly set them as shared.

9. When does it happen/ eg of implicit sharing.
1 Single PC-C
2 Parent with all children as ~
3 Parent with only one child with a consolidation, all other with ~

10. What is never share member?
Not allow members to be shared implicitly.

11. When you want to use it?
• If you do not want a member to be shared implicitly, mark the parent as Never Share so that the data is duplicated, and is not shared.

12. What is Label only member? What are uses of label only members? What are limitations on Label only member?

• Label only members have no data associated with them.

• Use them to group members or to ease navigation and reporting from the Spreadsheet Add-in. Typically, you should give label only members the no consolidation property.

• You cannot associate attributes with label only members. If you tag as
label only a base dimension member that has attributes associated with it, Essbase removes the attribute associations and displays a warning message.


13. What is significance of ‘~’?
When a member has the ~ operator, Essbase does not use it in the consolidation to its parent.

14. (What are the types of dimensions and what are the features of each one of them?
A dimension type is a property that Essbase provides that adds special functionality to a dimension.

o Time, Accounts, Country, Currency and Attribute.

15. What is the use of two pass calculation?

• Your combination of data and calculation needs may require the use a calculation script to calculate a formula twice, instead of two-pass tagging to preserve accuracy.

• You can use a two-pass calculation on member formulas that need to be calculated twice to produce the correct value.

• Whenever possible, Essbase calculates two-pass formulas at the data block level, calculating the two-pass formulas at the same time as the main calculation. Thus, Essbase does not need to do an extra calculation pass through the database. How Essbase calculates the two-pass formulas depends on whether there is a dimension tagged as time as well as a dimension tagged as accounts.


16. What is the use of Time balance calculations? If we want to work on TB what we required?


• TB provides instructions to Essbase about how to calculate the data in a dimension tagged as accounts.

• To use these tags, you must have a dimension tagged as accounts and a dimension tagged as time.

• The first, last, average, and expense tags are available exclusively for use with accounts dimension members.

• Time Balance Last The value for the last child member is carried to the parent.

• Time Balance First The value for the first child is carried to the parent.


17. What DTS will do in Essbase?

• In order to calculate period-to-date values dynamically, you need to use a Dynamic Time Series member for a period on the dimension tagged as time.

• Use built in Dynamic Time series calculations for period – to – date calculations such as YTD, QTD, & MTD accumulations. DTS calculations are on the fly and require time related dimension to be tagged as Time.

• You do not create the Dynamic Time Series member directly in the database outline. Instead, you enable a predefined Dynamic Time Series member and associate it with an appropriate generation number.

• Dynamic Time Series members are not displayed as members in the database outline. Instead, Essbase lists the currently active Dynamic Time Series members in a comment on the time dimension.


18. What is the importance of variance reporting? What are various reporting properties? To do expense reporting what we required?

• The variance reporting calculation requires that any item that represents an expense to the company must have an expense reporting tag.

• Essbase provides two variance reporting properties: expense and non-expense. The default is non-expense.

• Variance reporting properties define how Essbase calculates the difference between actual and budget data in members with the @VAR or @VARPER function in their member formulas.

• We required account dimension tag.


V. Dimension Building and Loading data

1. What we can do with Rule file?

• Rule file automate loading and maintenance of dimensions in an outline.
• With rule file,
-Add new dimensions and members to the database.
-Loading data.

2. In how many ways you can build outline using rule file?

- Parent/Child reference
- Generation Reference
- Level Reference

3. In how many ways you can load data into Database?

- Essxxxxx.pag and Essxxxx.Ind


VI. Calculation Part

1. In how many ways we can calculate database?
- Consolidation operators
- Member formula
- Calculation Scripts

2. What is intelligent calculation? What is the use of intelligent calculation?
A calculation method that tracks which data blocks have been updated since the last calculation.
When Intelligent Calculation is enabled, Essbase calculates only dirty blocks and their dependent parents.

Note: Change in Member Formula or Addition of members does not mark the block Dirty. So it’s better to turn intelligent calc OFF.

3. What is dirty block?
A data block containing cells that have been changed since the last calculation. Upper level blocks are marked as dirty if their child blocks are dirty (that is, have been updated).

4. What is difference between formula and calc script?



5. What is the use of Fix command? What are benefits we will get once you use FIX command on Dense/Sparse dimension(s)?

The FIX command is particularly useful to calculate a carefully defined subset of the values in a database.

When you use the FIX command only on a dense dimension, Essbase retrieves the entire block that contains the required value or values for the member or members that you specify. Thus, I/O is not affected, and the calculation performance time is improved.

When you use the FIX command on a sparse dimension, Essbase retrieves the block for the specified sparse dimension member or members. Thus, I/O may be greatly reduced.

6. What is use of @XREF function?
A data value from another database to be used for calculation of a value from the current database

7. What is substitution variable? What is use of substitution variable? What is the limitation? At which level we can set substitution variable?
• Substitution variables act as placeholders for information that changes regularly;
• You can use substitution variables in formulas that you include in a calculation script.
• You cannot use substitution variables in formulas that you apply to the database outline.
• You can set substitution variables at the server, application, and database levels.

8. What is optimal block size and block density to improve calculation performance?
Upto > 100 kb in Windows
Upto > 200 kb in Unix

9. How many types of restructure methods available in Essbase?
– Full Restructure
– Sparse Restructure
– Outline only Restructure

VII. Reporting part

1. How can the data be extracted from essbase Cubes?
1. Report script
2. Excel spread sheet add-in
3. VBA

VIII. Optimization

1. How the dimensions should be arranged in an outline. (What should be the order of dimension in the outline)

a. Large members Dense dimension
b. Small members Dense dimension
c. Small members Sparse dimension
d. Large members Sparse dimension
e. Attribute dimensions


2. Calculation order of the dimensions

a. Dimension tagged accounts if it is dense.
b. Dense dimensions in outline or CALC DIM statement order.
c. Dimensions tagged as Accounts if it is sparse.
d. Sparse dimensions in outline order or CALC DIM statement order.
e. Two-pass calculations on members in the Accounts tagged dimension.


3. What are optimization techniques you used in Essbase?

For data loading:
• Grouping Sparse Member Combinations
• Positioning Data in the Same Order As the Outline
• Loading from the Essbase OLAP Server
• Making the Data Source As Small As Possible
• Making Source Fields As Small As Possible
• Managing Parallel Data Load Processing

For Calculation:
• Using Parallel Calculation
• Using Formulas
• Managing Caches to Improve Performance
• Using Two-Pass Calculation
• Aggregating #MISSING Values
• Removing #MISSSING Blocks


IX. Security and Administration

1. What information contains in ESSBASE.SEC file? Where is Essbase.sec file stored?

All information about users, groups, passwords, privileges, filters, applications, databases, and their corresponding directories is stored in the ESSBASE.SEC file

Location:
$ARBORPATH\Bin directory.


X. Partitioning.

1. What is partitioning? What are uses of partitioning? How many types of partition available in Essbase?

A partition is the piece of a database that is shared with another database.

Essbase Partitioning is a collection of features that makes it easy to design and administer databases that span Hyperion Essbase applications or servers.

Uses:
Synchronize the data in multiple partitioned databases. Essbase tracks changes made to data values in a partition and provides tools for updating the data values in related partitions.

● Synchronize the outlines of multiple partitioned databases. Essbase tracks changes made to the outlines of partitioned databases and provides tools for updating related outlines.

Types:
A replicated partition is a copy of a portion of the data source that is stored in the data target.

A transparent partition allows users to access data from the data source as though it were stored in the data target. The data is, however, stored at the data source, which can be in another application, in another Essbase database, or on another OLAP Server

A linked partition sends users from a cell in one database to a cell in another database. This gives users a different perspective on the data.


XI. Essbase Log files

How many types of log files are in Essbase?



XII. Backup/Recovery
You should regularly back up the server, application, and database files.
It is important to back up all .ind and .pag files related to a database because a single database can have multiple .ind and .pag files.
Note: Remember, the Agent should be shut down before the essbase.sec file is backed up.



XIII. Others

You can verify an outline automatically when you save it or you can verify the outline manually at any time. When verifying an outline, Analytic Services checks the following items:

●All member and alias names are valid. Members and aliases cannot have the same name as other members, aliases, generations, or levels.

●Only one dimension is tagged as accounts, time, currency type, or country.

●Shared members are valid

●Level 0 members are not tagged as label only.

●Label-only members have not been assigned formulas.

●The currency category and currency name are valid for the currency outline.

●Dynamic Calc members in sparse dimensions do not have more than 100 children.

●If a parent member has one child and if that child is a Dynamic Calc member, the parent member must also be Dynamic Calc.

●If a parent member has one child and if that child is a Dynamic Calc, Two-Pass member, the parent member must also be Dynamic Calc, Two-Pass.

●The two names of members of Boolean attribute dimensions are the same as the two Boolean attribute dimension member names defined for the outline.

●The level 0 member name of a date attribute dimension must match the date format name setting (mm-dd-yyyy or dd-mm-yyyy). If the dimension has no members, because the dimension name is the level 0 member, the dimension name must match the setting.

●The level 0 member name of a numeric attribute dimension is a numeric value. If the dimension has no members, because the dimension name is the level 0 member, the dimension name must be a numeric value.

●Attribute dimensions are located at the end of the outline, following all standard dimensions.

●Level 0 Dynamic Calc members of standard dimensions have a formula.

●Formulas for members are valid.

●In a Hybrid Analysis outline, only the level 0 members of a dimension can be Hybrid Analysis-enabled.

During outline verify, Analytic Services also performs the following conversions to appropriate numeric attribute dimension member names and displays them in the outline:

●It moves minus signs in member names from the front to the end of the name; for example, -1 becomes 1-.

●It strips out leading or trailing zeroes in member names; for example, 1.0 becomes 1, and 00.1 becomes 0.1.



Understanding the Essbase Kernel

The Essbase Kernel provides the foundation for a variety of functions of the Essbase server. These
functions include data loading, calculations, spreadsheet lock&send, partitioning, and restructuring.
The Essbase Kernel reads, caches, and writes data; manages transactions; and enforces transaction semantics to ensure data consistency and data integrity.

The Essbase Kernel has the following functions:
• Handles disk storage and caching of Essbase files
• Handles data retrieval
• Handles data updates
• Controls input-output functions related to Essbase
• Consolidates free space for re-use
• Manages concurrent operations
• Recovers databases after a server crash
• Issues locks
• Manages transactions

Essbase Kernel Components

The Essbase Kernel contains components that control all aspects of retrieving and storing data:

The Index Manager finds and tracks the location of requested data.

The Allocation Manager is part of the Index Manager, allocates space and manages some file operations.

The Data Block Manager retrieves the data pointed to by the index and stores the data.

The LRO Manager handles retrieval and storage of linked reporting objects (LROs).

The Lock Manager handles the locking of data blocks to regulate concurrent data access.

The Transaction Manager tracks transactions and handles internal commit and abort operations.
Essbase.cfg usage

You can define storage settings for all databases on the Hyperion Essbase server by changing values in the configuration file essbase.cfg.


Saturday, October 8, 2011

Understanding
Multi Dimensional Database



Review


  • Architecture
  • Characteristics
  • Relational OLAP
  • Multidimensional OLAP
  • ROLAP VS. MOLAP


Today

Star Schema


  • Fact table
  • Dimensions
  • Drilling Down & Roll up
  • Slicing & Dicing

Fact


Definition : Facts are numeric measurements (values) that represent a specific business activity

Facts are stored in a FACT table I.e. the center of the star schema.

Facts are used in business data analysis, are units, cost, prices and revenues

Example: sales figures are numeric measurements that represent product and/or service sales.


Fact Table

Central table

  • Mostly raw numeric items
  • Narrow rows, a few columns at most
  • Large number of rows (millions to a billion)
  • Access via dimensions

Fact Table

Definition : The centralized table in a star schema is called as FACT table, that contains facts and connected to dimensions. A fact table typically has two types of columns:

  • Contain facts and
  • Foreign keys to dimension tables.

The primary key of a fact table is usually a composite key that is made up of all of its foreign keys.

A fact table might contain either detail level facts or facts that have been aggregated (fact tables that contain aggregated facts are often instead called summary tables). A fact table usually contains facts with the same level of aggregation.


Dimension


Definition : Qualifying characteristics that provide additional perspective to a given fact..

Example: sales might be compared by product from region to region and from one time period to the next.

Here sales have product, location and time dimensions.

Such dimensions are stored in DIMENSIONAL TABLE.


Dimension Tables


Definition: The dimensions of the fact table are further described with dimension tables

Fact table:

Sales (Market_id, Product_Id, Time_Id,
Sales_Amt)

Dimension Tables:

Market (Market_Id, City, State, Region)
Product (Product_Id, Name, Category, Price)
Time (Time_Id, Week, Month, Quarter)


What is Star Schema?

Definition: Star Schema is a relational database schema for representing multidimensional data. It is the simplest form of data warehouse schema that contains one or more dimensions and fact tables.

It is called a star schema because the entity-relationship diagram between dimensions and fact tables resembles a star where one fact table is connected to multiple dimensions.

The center of the star schema consists of a large fact table and it points towards the dimension tables.

The advantage of star schema are slicing down, performance increase and easy understanding of data.


Steps in designing Star Schema

  • Identify a business process for analysis(like sales).
  • Identify measures or facts (sales dollar).
  • Identify dimensions for facts(product dimension, location
  • dimension, time dimension, organization dimension).
  • List the columns that describe each dimension.(region name,
  • branch name, region name).
  • Determine the lowest level of summary in a fact table(sales dollar).
  • In a star schema every dimension will have a primary key.
  • In a star schema, a dimension table will not have any parent table.
  • Whereas in a snow flake schema, a dimension table will have one or more parent tables.
  • Hierarchies for the dimensions are stored in the dimensional table itself in star schema.
  • Whereas hierarchies are broken into separate tables in snow flake schema. These hierarchies helps to drill down the data from topmost hierarchies to the lowermost hierarchies.

Attributes

Each dimension table contain attributes.

Used to search, filter and classify facts.

Example, Sales, we can identify some attributes for each

dimension:

  • Product Dimension: product ID, description, product type
  • Location Dimension: region, state, city.
  • Time Dimension: year quarter, month, week and date.

Attributes Hierarchy


Definition : AH provides a top-down data organization Used for aggregation and drill-down/roll-up data analysis.

Example, location dimension attributes can be organized in a hierarchy by region, state and city.

AH provides the capability to perform drill-down and roll-up searches.

Allows the DW and OLAP systems to to have defined path.


A Concept Hierarchy: Dimension (location)




A Concept Hierarchy: Dimension (location)






Multidimensional Data




A Sample Data Cube




A Sample Data Cube




Star Schema

A single fact table and for each dimens one dimension table

Does not capture hierarchies directly






In the example, sales fact table is connected to dimensions location, product, time and organization. It shows that data can be sliced across all dimensions and again it is possible for the data to be aggregated across multiple dimensions. "Sales dollar" in sales fact table can be calculated across all dimensions independently or in a combined manner which is explained below.

  • Sales dollar value for a particular product
  • Sales dollar value for a product in a location
  • Sales dollar value for a product in a year within a location
  • Sales dollar value for a product in a year within a location sold or serviced by an employee

Example of Star Schema





Aggregation

Many OLAP queries involve aggregation of the data in the fact table

For example, to find the total sales (over time) of each product in each market, we might use

SELECT S.Market_Id, S.Product_Id, SUM
(S.Sales_Amt)
FROM Sales S
GROUP BY S.Market_Id, S.Product_Id

The aggregation is over the entire time dimension and thus produces a two-dimensional view of the data


Aggregation Over Time

The output of the previous query



Typical OLAP

Operations



Roll up (drill-up): summarize data
  • by climbing up hierarchy or by dimension reduction
Drill down (roll down): reverse of roll-up
  • from higher level summary to lower level summary or detailed data, or introducing new dimensions
Slice and dice:
  • project and select
Pivot (rotate):
  • reorient the cube, visualization, 3D to series of 2D planes.
Other operations
  • drill across: involving (across) more than one fact table
  • drill through: through the bottom level of the cube to its back-end relational tables (using SQL)


Drilling Down and Rolling Up

Some dimension tables form an aggregation hierarchy

Market_Id → City → State → Region

Executing a series of queries that moves down a hierarchy (e.g., from aggregation over regions to that over states) is called drilling down

  • Requires the use of the fact table or information more specific than the requested aggregation (e.g., cities)
Executing a series of queries that moves up the hierarchy (e.g., from states to regions) is called rolling up


Drilling Down


Drilling down on market: from Region to State

Sales (Market_Id, Product_Id, Time_Id, Sales_Amt)
Market (Market_Id, City, State, Region)

SELECT S.Product_Id, M.Region, SUM (S.Sales_Amt)

FROM Sales S, Market M
WHERE M.Market_Id = S.Market_Id
GROUP BY S.Product_Id, M.Region

SELECT S.Product_Id, M.State, SUM (S.Sales_Amt)

FROM Sales S, Market M
WHERE M.Market_Id = S.Market_Id
GROUP BY S.Product_Id, M.State,


Rolling Up

Rolling up on market, from State to Region

  • If we have already created a table, State_Sales, using
1. SELECT S.Product_Id, M.State, SUM
(S.Sales_Amt)
FROM Sales S, Market M
WHERE M.Market_Id = S.Market_Id
GROUP BY S.Product_Id, M.State
then we can roll up from there to:


2. SELECT T.Product_Id, M.Region, SUM
(T.Sales_Amt)
FROM State_Sales T, Market M
WHERE M.State = T.State
GROUP BY T.Product_Id, M.Region


Roll-up and Drill Down





“Slicing and Dicing”






Snowflake Schema


A snowflake schema is a term that describes a star schema structure normalized through the use of outrigger tables. i.e dimension table hierarchies are broken into simpler tables. In star schema example we had 4 dimensions like location, product, time, organization and a fact table (sales)


Snowflake schema

Represent dimensional hierarchy directly by normalizing tables.
Easy to maintain and saves storage



Example of Snowflake Schema




Example of Snowflake Schema


Friday, October 7, 2011

Oracle Data Integrator 11g (11.1.1)
Deleting Essbase Member through ODI



1) Requirement:

Using the sample ASO database ASOsamp.Sample, the objective is to remove from the Products dimension the member “Handheld/PDAs” and its children. Only two columns are required in the source to carry out the deletion process, the required information is the parent member and the member itself.



2) Creating Hyperion Essbase Data Server, Physical Schema, Logical Schema and Data Model

Step: 1) Go to Start -> Program Files -> Oracle -> Oracle Data Integrator explore ODI and login to work repository


Step: 2) After successfully login to work repository go to Topology Navigator select Physical Architecture Tab and select Technology and expand it. Go to the Hyperion Essbase Right Click and select ‘New Data Server’.


Step: 3) In the definition tab enter the following details as shown in the picture below:


Step: 4) Click on Save it will ask you to create physical schema press ‘OK’.


Step: 5) In Technology Tab go to Hyperion Essbase expand it and select newly create data server Right Click and select ‘New Physical schema’.


Step: 6) In the definition tab enter the Essbase Application name to which you want to connect.


Step: 7) Click on Save it will ask you to specify the context press ‘OK’.


Step: 8) Go to the Logical Architecture tab Expand Technologies and select Hyperion Essbase Right-click and select ‘New Logical Schema’.


Step: 9) Give appropriate name to logical schema and set the Context to Hyperion Essbase physical schema.


Step: 10) Click on ‘Save’.


Step: 11) Go to the ODI Designer and create new Project with appropriate name.


Step: 12) Click on ‘Save’. You can check in the project tab


Step: 13) Expand project go to knowledge module right click and import following knowledge modules.

RKM Hyperion Essbase

LKM Hyperion Essbase Metadata to SQL

IKM SQL to File Append


Step: 14) Press Ctrl and select all three knowledge







Step: 15) Now go to the model tab and create new model Folder.



Step: 16) Now go to the model tab and create new model.


Step: 17) In the definition tab enter the details


Step:18) Go to the Reverse Engineer tab select customize check box and enter details as follows:

Step: 19) ‘Save’.


Step:20) Newly created Model will be available for Reverse Engineering go to Model tab select Hyperion planning model and Right Click and select Reverse Engineers. Before Reverse Engineer the models make sure your agent services are running if not start it with following command:

C:\oracle\Middleware\Oracle_ODI1\oracledi\agent\bin>agent –NAME=localagent


Step: 21) Now you can reverse engineer it.



Press ‘OK’.

Step: 22) Go to the Operator Tab check whether the Execution run successfully or not.



If all the checks are green that means your model reversed successfully.

Step: 23) Go to the Designer and open model tab expand Hyperion Essbase model again. You can check all the dimensions are visible there from your Essbase application.



3) Creating Source File technology Data server, physical schema, Logical schema and model


Step: 1) Go to Topology Navigator select Physical Architecture Tab and select Technology and expand it. Go to the File Right Click and select ‘New Data Server’.


Step: 2) Go to JDBC tab specify following details

Step: 3) Save it..

Step: 4) In Technology Tab go to File expand it and select newly create data server Right Click and select ‘New Physical schema’.


Step: 5) In the definition tab enter the Directory location which contains the file to which you want to connect.


Step: 6) Click on Save it will ask you to specify the context press ‘OK’.


Step: 7) Go to the Logical Architecture tab Expand Technologies and select File Right-click and select ‘New Logical Schema’.


Step: 8) Give appropriate name to logical schema and set the Context to Text physical schema.


Step: 9) Click on ‘Save’.


Step: 10) Now go to the model tab and create new model Folder.



Step: 11) Now go to the model tab and create new model inside the Text File Model Folder. In the definition tab enter the details


Step: 12) ‘Save’.



Step: 13) We need to create new data store for source text file. Select the model Right click and select New Data Store. In Definition tab enter the name then click on Resource Name browse button select you text file from open dialog box and press ‘Open’.




Step: 14) Go to file tab select file format as delimited set heading to 1 and field separator to Comma (,).


Step: 15) Now go to Column tab and click on reverse engineer button.


Step: 16) Save it.




4) Create Interface


Step: 1) Source is ready, now we will create the interface. Select same project that we have created previously open it and select interface right click and new interface.



Step: 2) Go to mapping tab and drag Product datastore from Text file model and drop it to source area. Similarly drag Essbase Product datastore to target place. It will ask you for auto mapping press ‘Yes’.



Step: 3) Make sure you set the target Parent/Child columns to execute on the staging area as the essbase technology has no JDBC capabilities.

Go to overview tab and select staging area different from target check box.


Step: 4) Now go to Flow tab where you specify the Knowledge module for the interface these are the required knowledge module. If you have not imported it till now import it.

i) LKM File To SQL

ii) IKM SQL TO Hyperion Essbase (Metadata).


Step: 5) In the flow set the target KM to “IKM SQL to Hyperion Essbase (Metadata)” In the KM options provide an essbase load rule name (it doesn’t exist at the moment) Turn on logging and error logging and provide a full path and filename for the logs, the error log is required to make sure there were no failures in performing the dimension build.

Save the interface but don’t run it.



5) Setting up Rule File:



Step: 6) Now we will login to the Essbase Administration Services [EAS]



Step:7) Once logged into EAS and have expanded the essbase server, right click the essbase database and create a new load rule.


Step: 8) Open the data file for creating rule file.


Step: 9) Go to the Data Source Property and change the delimiter to Comma.



Step: 10) Select “Options” > “Dimension Build Settings”, click the “Dimension Build Settings”


Step: 11) Double click the dimension you are removing the members from, in my example this is Product.


Step: 12) Use parent/child references” has to be selected as the build method as this is the only way to perform hierarchy builds when using ODI.


Step: 13) Now for the important part in the member update section “Remove unspecified” must be specified. Remove unspecified basically deletes the members in the selected dimension that do not exist in the source, click OK.


Step: 14) Next the columns in the rule need to be matched to the output from ODI. Select Field properties > Dimension Build Properties.






Step: 15) Save the rule file and specify the same name in the KM options.


Step: 16) The interface can now be executed within ODI.




Step: 17) Go to the Operator Navigator and check the execution log of the interface.


If the interface successfully completes it doesn’t mean the members were definitely removed, the best place to check is to see if the error log generated contains any records.


The Outline file says that the Member is deleted


Method: 2


1)Requirement:


There are situations where you may not have the full dimension hierarchy Available so the last method does not work for you.

The end solution for today is to provide a flat file in parent/child format with only the members we want to remove from the outline. Once again I will be using the ASOSamp.Sample essbase database and using ODI 11G.

Highlighted are the members that are going to be deleted from the product dimension.


Below is the flat file that contains the members that are going to be deleted in parent/child format.




2) Setting Up the Environment:


Step: 1) We need to create new data store for source text file. Select the model Right click and select New Data Store. In Definition tab enter the name then click on Resource Name browse button select you text file from open dialog box and press ‘Open’.




Step:2) o to file tab select file format as delimited set heading to 1 and field separator to Comma (,).


Step: 3) Now go to Column tab and click on reverse engineer button.


Step: 4) Save it.




Step: 5) We want to be able to use this solution across other dimensions in the essbase database instead of having to create an interface per dimension, so the next step is to create a variable that can be used to define which dimension to use.


Step: 6) The products Datastore was duplicated, any of the standard dimensions could have been duplicated. I say standard dimensions as a measures type dimension contains additional columns.


Step: 7) The duplicated Datastore was renamed and the Resource Name set as the variable that was created earlier which was #DELETE_DIM. This means I can pass the variable value to set which dimension I want to use in the extract interface.


Step: 8) Next step is to create an interface that will extract the dimension members from essbase.


I am using the memory engine as the staging area as the complexity and size of the output extract is not that large.

Step:9) In the mapping area the StandardDimension Datastore was dragged on to the source, in the target I am using a temporary Datastore, as I am using the memory engine as the staging area this means that a temporary table will be created in memory when the interface is executed.


Step: 10) The temporary DataStore was named and two columns added, in the properties area for each column a name was given and Datatype was set to VARCHAR (80 length as this is the maximum length for essbase member names)

The target columns were mapped to the source, PARENT to ParentName and MEMBERNAME to MemberName.


The aim is to remove the members in the source flat file that was created earlier from the members that have been extracted. this is we perform with the use of DataSets.

DataSets basically lets you have a group of source Datastores and these Datastores can be merged into the target Datastore using operators such as UNION,UNION ALL, MINUS and INTERSECT.

With this new functionality I can add a new DataSet that will be the source flat file and use the operator of MINUS to compare the source flat file from the dimension member extract.


Step: 11) The existing DataSet was named as “ExtractProduct” and a new one created called “LoadMinusProds”, the operator was set to MINUS.


Once a new DataSet has been created you will notice that tabs are generated to distinguish between each set

Step: 12) The flat file Datastore containing the members to delete was dragged on to the source area, the columns were then mapped to the temporary target table.


If you look at the flow diagram you get more of an understanding of what is happening, member information is extracted from essbase using the KM “Hyperion Essbase METADATA to SQL” and loaded into a temporary table in the staging area (memory engine). The flat file is loaded into a temporary table in memory.

These two temporary tables are compared using the MINUS operator and finally loaded into the temporary in-memory table “PROD_EXTRACT”. The PROD_EXTRACT tables should only contain the parent/child members that need to be kept in the dimension.


If you run the interface in simulation mode (another nice feature in 11G) and look at step 14 “… Insert new Rows” you can see the MINUS SQL in operation.


Step: 13) In the LKM options for extract the dimensional information the MEMBER_FILTER_CRITERIA was set to Descendants and MEMBER_FILTER_VALUE set to the variable value stored in #DELETE_DIM (which is products), Descendants was chosen as I didn’t want to include the dimension name in the extract as the extract includes a parent of NULL and this causes an issue when running the dimension build later on.

Using the variable in the filter value option means the interface doesn’t need to be updated if it is ever used against a different dimension all that is required is to set the variable.


Step:14) When the interface loads the subtracted records into the temporary table PROD_EXTRACT the IKM options of CREATE_TARG_TABLE and DELETE_ALL were set to true, this is because the temporary table may not exist in memory so create it if it doesn’t and if it does exist delete all the records.


Right, so now an interface exists that will load only the records we want to keep in a dimension and store this in a temporary in-memory table.


3) Create Interface


Step: 1) Source temporary interface is ready, now we will create the interface. Select same project that we have created previously open it and select interface right click and new interface.



Step: 2) Go to mapping tab and drag temporary Interface Extract from Project tab and drop it to source area. Similarly drag Essbase Product datastore to target place. It will ask you for auto mapping press ‘Yes’.

The interface that has just been created (EXTRACT) was dragged on to the source so the temporary table Target_dataSource becomes the source.

The essbase dimension Datastore that was duplicated earlier is dragged to become the target The target dimension that is used in the interface is set by the value stored in the variable #DELETE_DIM




4) Setting up Rule File:


Step: 1) Now we will login to the Essbase Administration Services [EAS]


Step:2) Once logged into EAS and have expanded the essbase server, right click the essbase database and create a new load rule.


Step: 3) Open the data file for creating rule file.


Step: 4) go to the Data Source Property and change the delimiter to Comma.


Step: 5) Select “Options” > “Dimension Build Settings”, click the “Dimension Build Settings”


Step: 6) Double click the dimension you are removing the members from, in my example this is Product.


Step: 7) Use parent/child references” has to be selected as the build method as this is the only way to perform hierarchy builds when using ODI.


Step: 8) Now for the important part in the member update section “Remove unspecified” must be specified. Remove unspecified basically deletes the members in the selected dimension that do not exist in the source, click OK.


Step: 9) Next the columns in the rule need to be matched to the output from ODI. Select Field properties > Dimension Build Properties.




Step: 10) Save the rule file and specify the same name in the KM options.



5) Creating Package


Step: 1) Create a package to put this entire step together..


Step: 2) Go to the Diagram tab and drag the Delete_Dim, temporary interface extract and Interface int member delete and arrange them in following sequence.


Step: 3) Save it and execute it.



After successfully executing the package you can go to the outline file and validate it the members from the flat file have been deleted from the hierarchy.


The Outline file says that the Member is deleted

If I want to use the package to delete members from a different dimension it is as easy as setting the DELETE _Dim variable to a different dimension name and updating the flat file to include the members that need to be deleted.