Anda di halaman 1dari 7

Best practices for working with Essbase Cubes

Paul Lilford
Tableau Software
April 21, 2015

Contents
1.

Introduction .......................................................................................................................................... 2

2.

Make Outline Navigation Simpler in Tableau ....................................................................................... 2

3.

2.1.

Label Your Outline......................................................................................................................... 2

2.2.

Create Custom Generation References ........................................................................................ 2

Generations vs. Levels........................................................................................................................... 3


3.1 Telling Tableau How To Render Your Dimension................................................................................ 4

4.

How Tableau Reads Your Outline ......................................................................................................... 4


4.1

Speed-Up Tip ................................................................................................................................. 4

5.

Utility Dimensions ................................................................................................................................. 4

6.

Understanding Differences Between Relational and OLAP Sources..................................................... 5


6.1 Querying OLAP Sources....................................................................................................................... 5

7.

Creating Calculated Members............................................................................................................... 5

8.

Creating Date Fields from Non-Date Fields........................................................................................... 6

1. Introduction
Essbase creates a great calculation engine that is unmatched in the financial world. Complicated Financial
scenarios and what-if analysis become trivial tasks given a properly designed Essbase Block cube. If you
have one these cubes, these tips can help you, Tableau and Essbase all get along. This document
describes ways to make dimensions more readable, Tableau Essbase interaction more efficient, and other
ways to optimize the interaction between Tableau and Essbase.
There are some things that must be kept in mind when attaching Tableau to any OLAP source. Tableau
excels at taking at data sources and making them more analytical by allowing the user to create sums,
counts, and other types of aggregates. This is exactly what an OLAP designer does when an outline is
created. An outline is what Essbase generally refers to when discussing a cube's hierarchy, measures, and
dimensions. Naturally certain default" behaviors need to be disabled when visualizing an OLAP source. It
doesn't make sense to create a sum in Tableau when the cube is already doing this work. Similarity, it
rarely makes sense to interpret an aggregated value using a different aggregate. The limitations" that
Tableau has when interacting with OLAP sources really aren't limitations. OLAP sources are different, and
as such our interactions with them need to be different.

2. Make Outline Navigation Simpler in Tableau


The Essbase Outline provides you and Tableau with all of the descriptive metadata you need to
understand whats in your cube. When working with Essbase, being able to look at and understand the
nature of the outline minimizes time lags due to reloading the outline unnecessarily.

2.1. Label Your Outline


This tip is really should be considered an Essbase best practice. Outline information is always
more understandable when we see natural language descriptions instead of codes. In practical
terms, it's the difference between seeing A40000 and 40000 - Premium Revenue when
navigating your outline. Unless you're intimately familiar with the nuances of your company's
codifications most work-sheet creators and consumers will be hard-pressed to understand the
difference between A40000 and A40001 without proper labels. The following link provides
information on creating labels for your outlines:
http://onlinehelp.tableau.com/current/pro/online/enus/datafields_fieldproperties_aliases_multidimensional.html

2.2. Create Custom Generation References


Creating custom generation references allows users of cubes to obtain information beyond
generic numeric counts of how far from the top of the outline you are. It is often easiest to

describe generation references when considering periods of time. Consider the portion of an
outline in this structure below.
Periods (+)
Q1 First Quarter (+)
Jan January (+)
Feb February (+)
Mar March (+)
Q2 Second Quarter (+)
Apr April (+)

May (+)
Jun June (+)
Q3 Third Quarter (+)
Jul July (+)
Aug August (+)
Sep September (+)
Q4 Fourth Quarter (+)
Oct October (+)
Nov November (+)
Dec December (+)

Essbase, left to its own devices will graciously label this portion of the hierarchy as
Periods,Gen2 and Periods,Gen3. While technically correct, this tells the worksheet designer
and user absolutely nothing. Creating custom generation references allow us to label these as
Quarters and Months. Consult the following knowledge base article to see how to create
these custom references: http://kb.tableau.com/articles/knowledgebase/creating-customgeneration-references-essbase

3. Generations vs. Levels


The difference between a generation and level is a matter of perspective. Consider a time dimension
where months create quarters, and quarters create the full year. As in the example above. With this
hierarchy, Periods" is the Generation 1, Q1 is Generation 3, and Jan would be Generation 4. At the
same time, Jan is Level 0, Q1 is Level 1, and Periods is Level 2.
Simply stated: Levels are counted from the bottom up and generations are counted from the top down.
(Essbase considers the outline itself to be Generation 0. The dimension itself is Generation 1.)
Dimensions and outlines can be understood and interpreted either by levels or generations. Which is
better? As with most things, it depends. Given the current example of periods, interpreting this via
Generations generationally makes sense. When all parts of a hierarchy contain the same depth,
generation views are usually the best choice.
Now consider a location dimension outlined below. This dimension is ragged. A ragged dimension does
not have a consistent depth from the root down to each individual leaf-level dimension value. These
dimensions are best interpreted by looking at levels.
3

Locations (+)
West Region (+)
WA Washington (+)
OR Oregon (+)
CA California (+)
N CA Northern California (+)
S CA Southern California (+)

Notice how West Region is the lowest level of detail in one part of the hierarchy, but that S CA
Southern California is the lowest level of detail in another part? These would be considered Generation
2 and Generation 3 respectively. However, they are both Level 0elements since they are at the lowest
possible level of detail within their respective branches of the hierarchy.

3.1 Telling Tableau How To Render Your Dimension


In Tableau, you can choose whether to label your dimension with either Generations or Levels.
Please refer to the following article for instructions on how to render your outline within Tableau.
http://onlinehelp.tableau.com/current/pro/online/en-us/buildmanual_multidimensional_essbase.html

4. How Tableau Reads Your Outline


When Tableau interacts with Essbase, it reads the outline each time it sends a query to Essbase. If you
have a large cube with several dimensions and several thousand dimension members, the effect of this
can be dramatic. While building your worksheet and dropping several dimensions onto your individual
shelves, Tableau interrogates Essbase for each shelf.

4.1 Speed-Up Tip


When dealing with large outlines in Tableau, you can speed up your development time
significantly by disabling auto-updates. This tip only works well if you are familiar with your
outline. Using this tip allows you to set your rows, columns, and filters without waiting for several
updates to happen. If you aren't familiar with your outline, in a separate window you can open
the outline in Essbase Administration Server (EAS).

5. Utility Dimensions
Essbase cubes excel at providing intra-dimensional comparisons. Common examples of this are found in
Year and Scenario dimensions. In your Year dimension its common to look create a calculated member
that computes the difference between Current Year and Prior Year. When your outline contains these
types of members, you need to tell Tableau about these members and dimensions. Refer to the following

article for instructions. http://onlinehelp.tableau.com/current/pro/online/enus/buildmanual_multidimensional_utilitydimension.html

6. Understanding Differences Between Relational and OLAP Sources


OLAP and relational databases are very different from one another. Relational databases store atomiclevel details that need to be aggregated by a visualization tool like Tableau. OLAP databases store
precomputed aggregations of the data. Tools like Tableau do not need to aggregate the data, they just
need to query it from the database and present it to the user exactly how it is stored. This difference in
database behavior leads to differences in the behavior of any front-end visualization tool, including
Tableau. Many of these differences are noted in this article:
http://kb.tableau.com/articles/knowledgebase/functional-differences-olap-relational. Here is a summary:

Aggregation Functions. Tableau handles aggregation calculations when querying relational


sources. OLAP outlines define aggregation as an integral part of their design. Therefore
aggregation functions AVG(), CNT(), and SUM() are not necessary in Tableau when using OLAP
sources.

Tableau Aliases. Since OLAP outlines define their own aliases and other metadata, it is not
necessary to define them in Tableau as you would with a connection to a relational database.

Tableau Bins. You cannot use the Tableau bin function when connected to OLAP outlines.
Tableau doesn't allow this for the same reason you can't use aggregate functions when
connected to OLAP sources. Bins are simply places to aggregate some data. But, as previously
noted, OLAP data is already stored in a pre-aggregated format. There are some ways to work
around this particular OLAP-imposed restriction, however. See
http://kb.tableau.com/articles/knowledgebase/creating-bins-in-cubes

6.1 Querying OLAP Sources


6.1.1.Tableau uses the MDX to query OLAP sources. The MDX language is the standard method
for querying OLAP and also for defining custom OLAP formulas. When Tableau queries
OLAP sources, all the selection and filter criteria are created by submitting MDX queries to
the database.

7. Creating Calculated Members


Since MDX is used to both create formula within OLAP cubes and for querying, Tableau has the ability to
define calculated members using MDX. This ability poses some interesting scenarios. One of the great
advantages of OLAP cubes is the fact that complicated formulae can be defined and calculated centrally in
the database. This allows all users of the cube to leverage complex calculated members without the need
to recreate the complicated logic behind these calculations. The other advantage of placing calculated
5

members directly in the cube is that it ensures a centrally defined and administered version of the
calculation in question. This makes it easy to ensure that all users of the calculation are using the same
calculation.
There are disadvantages with calculated members in OLAP cubes. Not all users of cubes have permission
to alter the outline or to view the formula logic that may exist in calculated members of the outline.
Consequently, some users may not be able to fully understand the logic used within a calculated member.
This brings us to the advantages of using Tableau to define calculated members against OLAP sources.
Regardless of your access to the outline, a Tableau designer has the ability to create MDX calculated
members within Tableau. The calculation logic is transparent to all the users of the worksheet. Tableau
suggests a hybrid approach when using Tableau with calculated members against OLAP sources. Tableau
provides a great prototyping and proof of concept environment for developing complicated MDX
formula. Using Tableau, you can quickly and safely work out your calculated members. Once the logic has
been vetted, the member can be submitted to those in charge of maintaining the cube.
The details of creating MDX calculations is beyond the scope of this article. See the following link to get
started on creating your own calculated members with Tableau.
http://onlinehelp.tableau.com/current/pro/online/enus/calculations_calculatedfields_calculatedmember.html

8. Creating Date Fields from Non-Date Fields


It's common for OLAP cubes to have more than one dimension that contains information that looks like a
date. Years and Periods are often stored in separate dimensions. Both represent temporal information,
but only one of these dimensions can be identified as the TIME dimension in Essbase. When this
occurs, you can work around this situation and still be able to use all of Tableau's time-aware
functionality. The article below will show you how to create a calculated field that casts the non-date field
to continuous date type. http://kb.tableau.com/articles/knowledgebase/changing-data-type-to-datecubes

Anda mungkin juga menyukai