Upload
biswal83
View
217
Download
0
Embed Size (px)
Citation preview
8/11/2019 Rschoustra.awalkAroundBlock.presentation
1/55
A walk around (& through )the block
Essbase BSO & Calculation Scr ipts for Everyone!
Rich Schoustra, Managed Services
Practice Lead, Principle
ADI Strategies, Inc.
8/11/2019 Rschoustra.awalkAroundBlock.presentation
2/55
Rich Schoustra
Managed Services Practice Lead, Principal, ADI
Strategies, Inc. Hyperion Consulting (1996)
Training (2000-2002)
Project Management/Consulting
You!
VERY Important!
Introduction
8/11/2019 Rschoustra.awalkAroundBlock.presentation
3/55
Why learn about Dense & Sparse
Assigning Dense & Sparse Storage type
Dense Defined
Sparse Defined Essbase is a databasesort of
Useful Database Statistics
A simple Calc Script
Why is it important to know:
What makes blocks fill up?
What makes blocks multiply?
What makes blocks grow (or shrink)?
Agenda
8/11/2019 Rschoustra.awalkAroundBlock.presentation
4/55
Become a blockhead
Basis for writing efficient calculation scripts
Basis for writing calculation scripts that work (well)
Helps in understanding report development Helps dictate data load design
Helps in architecting overall Hyperion Solution
Including multiple Plan Types
Multiple Essbase reporting cubes
ASO / BSO hybrid architected solutions Designing Partition definitions
Helps in understanding EssbasedHyperion Products
Hyperion Planning
Hyperion Profitability and Cost Management (HPCM)
Why learn about Dense & Sparse
8/11/2019 Rschoustra.awalkAroundBlock.presentation
5/55
How to define Dense/Sparse settings
Dense defines the Block
Sparse defines the Address
Calculating Block Size
Calculating Number of Blocks
Calculating Dense vs. Calculating Sparse
Identifying (unique) Blocks in retrievals & Extracts
Important Database Statistics for Dense & Sparse
Dynamic Calc on Dense but not on Sparse
Implied Shares
Hourglass
What you will learn
8/11/2019 Rschoustra.awalkAroundBlock.presentation
6/55
Quick overview of the Sample.Basic (modified!) Essbase Database
Hyperions version of Hello World!
Sample.Basic
8/11/2019 Rschoustra.awalkAroundBlock.presentation
7/55
Dont play with Matches
How to set Dense and Sparse
8/11/2019 Rschoustra.awalkAroundBlock.presentation
8/55
How to set Dense and Sparse
Hyperion Planning: As easy as
8/11/2019 Rschoustra.awalkAroundBlock.presentation
9/55
How to set Dense and Sparse
Oracle Essbase: As easy as
8/11/2019 Rschoustra.awalkAroundBlock.presentation
10/55
Dense Dimension Storage Property Defined
Designating which dimensions have the Dense storage property
means you have just defined and pre-created a Multi-dimensional
Array.
Which brings us to.
8/11/2019 Rschoustra.awalkAroundBlock.presentation
11/55
Spreadsheets & Databases . . . a digression(Essbase is a Database, sort of. Absolutely!)
Spreadsheets store (numerical) data in arrays with labels to
relate/define the data Labels to create CONTEXT
8/11/2019 Rschoustra.awalkAroundBlock.presentation
12/55
Spreadsheets & Databases . . . a digression.
Relational Databases store data in related tables
with indices and keys to relate the data
8/11/2019 Rschoustra.awalkAroundBlock.presentation
13/55
Oracle Essbase is a Database, but
In computing, an Array is a construct for storing data and is
declared in most programming languages as an X by Y by Z by
n multidimensional Matrix.
Which brings us back to.
Designating which dimensions have the Dense storage property
means you have just defined and pre-created a Multi-dimensional
Array (for storing your datanumbers).
1 X 2 Array
2 X 3 Array3 X 3 X 2
Array (3D) 3 X 3 X 2
Array (2D)
8/11/2019 Rschoustra.awalkAroundBlock.presentation
14/55
Dense Dimension Storage Property Defines The Block(orthe multidimensional array )
(stored) Members in Dense Dimension-1 (axis-A)
X (stored) Members in Dense Dimension-2 (axis-B)
X (stored) Members in Dense Dimension-n (axis-n)
X 8(bytes) = Bock Size (Array Size)
8/11/2019 Rschoustra.awalkAroundBlock.presentation
15/55
Sparse Dimension Storage Property DefinesPOTENTIAL addresses (index-pointers) to Blocks
= Potential Number of Blocks (stored) Members in Sparse Dimension-1
X (stored) Members in Sparse Dimension-2
X (stored) Members in Sparse Dimension-n
= Potential Number of Blocks
8/11/2019 Rschoustra.awalkAroundBlock.presentation
16/55
Sparse Dimension Storage Property DefinesPOTENTIAL addresses (index-pointers) to Blocks
= Potential Number of Blocks
8/11/2019 Rschoustra.awalkAroundBlock.presentation
17/55
The Sample Basic Model1 Dense Dimension and some useful Database Statistics
1 Dense Dimension
with 8 stored members
4 Sparse Dimensions
with 4, 3, 19, 25 storedMembers
8/11/2019 Rschoustra.awalkAroundBlock.presentation
18/55
The Sample Basic Model1 Dense Dimension
Dimensions: Members Stored. Stored Member Count excludes members:
Tagged to calculate Dynamically
Tagged as Label Only
Tagged as (Explicit) Shared Member
Implied Shared Member
Attribute Dimensions Members
8/11/2019 Rschoustra.awalkAroundBlock.presentation
19/55
The Sample Basic Model1 Dense Dimension
*Implied Share:
Technically: when a Parent Member has only 1 child member (profit in this case),
it will share the same data value as the single child and Essbase will not allocate
storage or an array cell for this value.
8/11/2019 Rschoustra.awalkAroundBlock.presentation
20/55
The Sample Basic Model4 Sparse Dimensions
Sparse Dimension Storage Type makes up the Address or Pointer to the Block
(Array). The total Potential number of addresses or Unique Blocks is:
(4 stored Year Dimension Members) *Attribute Dimensions
X (3 stored Scenario Dimension Members) are not included
X (19 stored Product Dimension Members)
X (25 stored Market Dimension Members) = 5,700 Potential uniq ue bloc ks
8/11/2019 Rschoustra.awalkAroundBlock.presentation
21/55
The Sample Basic Model4 Sparse Dimensions
8/11/2019 Rschoustra.awalkAroundBlock.presentation
22/55
The Sample Basic Model4 Sparse Dimensions
8/11/2019 Rschoustra.awalkAroundBlock.presentation
23/55
The Sample Basic Model1 Dense Dimension
Statistics: Block Size: Number of Stored Dense Dimension Members X 8 (Bytes)
defines the Block (or Array) Size
DENSE
SPARSE
8/11/2019 Rschoustra.awalkAroundBlock.presentation
24/55
The Sample Basic Model1 Dense Dimension
Index Cache is amount of memory available to load the index values into memory
from the ess0000n.IND file(s). The *.ind files contain all of the unique block
address pointersthe unique (complete) Sparse member intersections.
DENSE
SPARSE
Data Cach e is amount of memory available to load the (uncompressed) blocks into
memory from the ess0000n.PAG file(s). The *.PAG files contain all of the blocks.
8/11/2019 Rschoustra.awalkAroundBlock.presentation
25/55
The Sample Basic Model1 Dense Dimension
ess00001.IND This file contains all of the unique block address pointersthe
unique (complete) Sparse member intersections that exist (have been loaded toEssbase. This file can usually fit in memory (index cache) for rapid access to
pull (point to) blocks in memory or on disk to be pulled into memory
DENSE
(the Blocks)
SPARSE
(the Index)
ess00001.PAG This file (or files) contains the compressed blocks on disk. Blocks
are called into memory (data cache) based on complete sparse intersection data
requests (e.g. Smart View refreshes, Planning Web Forms, Running Calculation
Scripts and Business Rules.
8/11/2019 Rschoustra.awalkAroundBlock.presentation
26/55
WOW! The Amazing & Fantastic:
Block-Size-Potential-Number-Of-Blocks-Hyperion-Essbase-
Database-Sizing-Conf igurator!
8/11/2019 Rschoustra.awalkAroundBlock.presentation
27/55
2-Dense Dimensions Model . Statistics
8/11/2019 Rschoustra.awalkAroundBlock.presentation
28/55
2 Dense Dimensions. Load 1 Block
8/11/2019 Rschoustra.awalkAroundBlock.presentation
29/55
2 Dense Dimensions. Calc All;
8/11/2019 Rschoustra.awalkAroundBlock.presentation
30/55
2 Dense Dimensions. Calc All;
8/11/2019 Rschoustra.awalkAroundBlock.presentation
31/55
Calculating [Measures] in the block (Dense #1)
Calc All d oes jus t that. It Calculates All B loc ks in the data base (Dense), and
Ag gregates (Sparse) al l level 0 block s to upp er level block s i f th ey exist
Block[Actual], [100-10], [New York]
Context for 645:
Dense Context 1 = Sales
Dense Context 2 = Feb
8/11/2019 Rschoustra.awalkAroundBlock.presentation
32/55
Calculating [Year] in the block (Dense #2)
Block[Actual], [100-10], [New York]
8/11/2019 Rschoustra.awalkAroundBlock.presentation
33/55
Calculating (Aggregating) [Scenario] (Sparse #1)
Block[Actual], [100-10], [New York]
8/11/2019 Rschoustra.awalkAroundBlock.presentation
34/55
Calculating (Aggregating) [Product] (Sparse #2)
Block[Actual], [100-10], [New York]
8/11/2019 Rschoustra.awalkAroundBlock.presentation
35/55
Calculating (Aggregating) [Product] (Sparse #2)
ess00001.PAG
BOOM! 2 new (upper level) Blocks:
[Actual], [100], [New York]
[Actual], [Product], [New York]
8/11/2019 Rschoustra.awalkAroundBlock.presentation
36/55
Calculating (Aggregating) [Market] (Sparse #3)
Block[Actual], [100-10], [New York]
8/11/2019 Rschoustra.awalkAroundBlock.presentation
37/55
Calculating (Aggregating) [Region] (Sparse #3)
Set Msg Detail;
8/11/2019 Rschoustra.awalkAroundBlock.presentation
38/55
Calculating (Aggregating) [Region] (Sparse #3)
ess00001.PAG
BOOM! 6 new (upper level) Blocks:
1. [Actual], [100-10], [East]
2. [Actual], [100], [East]
3. [Actual], [Product], [East]
4. [Actual], [100-10], [Market]
5. [Actual], [100], [Market]
6. [Actual], [Product], [Market]
8/11/2019 Rschoustra.awalkAroundBlock.presentation
39/55
Dense(Calculation)
Fill up the blocks
8/11/2019 Rschoustra.awalkAroundBlock.presentation
40/55
Sparse(Calculation)
Creates new(Aggregated) Blocks
[Actual]->[Cola]->[New York]
[Actual]->[Colas]->
[New York]
[Actual]->[Product]->
[New York]
[Actual]->[Cola]->
[East]
[Actual]->[Colas]->
[East]
[Actual]->[Cola]->
[Market]
[Actual]->[Colas]->
[Market]
[Actual]->[Product]->
[Market]
[Actual]->[Product]->
[East]
1 Block becomes 8 aggregated
[upperlevel] Blocks
8/11/2019 Rschoustra.awalkAroundBlock.presentation
41/55
Simple Calculation
REQUIREMENT:
Load the Database with Actual data (25 level 0 Blocks)
Calculate the Database : 81 Upper Level Blocks =106 Total Blocks
Pre-Populate the Budget with Actual data [DATACOPY Actual to Budget; ]
212 Total Blocks
Assumption. Sales will be 10% higher in the Budget [If it is an Eastern RegionMember](Child of East)
Using IF /
ENDIF
& FIX /ENDFIX
8/11/2019 Rschoustra.awalkAroundBlock.presentation
42/55
Simple Calculation
8/11/2019 Rschoustra.awalkAroundBlock.presentation
43/55
Simple Calculation
This Calculation will iterate through all 106[Budget] Blocks,asking the question each of the 106 times:
Are you [Block-in-Memory] a child of the ParentMember [East] in the [Market] Dimension?
If you are, then Your Sales are now = to 1.1 timesyour current Sales!
If you are not a child of the Parent Member [East]in the [Market] Dimension then get outta here! Backto disk with you!
Blocks Before Calculation Blocks After Calculation
8/11/2019 Rschoustra.awalkAroundBlock.presentation
44/55
Simple Calculation
Just needto calculatethese 12Blocks
Not these 94Blocks94 =106-12
[non-children-of-East]Blocks
8/11/2019 Rschoustra.awalkAroundBlock.presentation
45/55
Simple Calculation
Just need tocalculate these12 Blocks
Change IF logicto FIX
and ignoreall the other
blocks
8/11/2019 Rschoustra.awalkAroundBlock.presentation
46/55
Generalization regarding IF & FIX
Somet imes* It depends. Usually after FIXing on othergroups or groupings of SPARSE member intersections.
Rarely** It depends. Also after Fixing down onmembers. There are other challenges with associatedwith Ifingon Sparse dimension members.
8/11/2019 Rschoustra.awalkAroundBlock.presentation
47/55
8/11/2019 Rschoustra.awalkAroundBlock.presentation
48/55
Dynamic Calculation Storage Option
Why Dynam ic Calc on Dense?
Smaller Block Size
Calculation occurs IN THE block
8/11/2019 Rschoustra.awalkAroundBlock.presentation
49/55
Dynamic Calculation Storage Option
Why Not Dynamic Calc on Sparse?
Need Multiple Blocks in Memory toderive Virtual Blocks in Memory
[Actual]->[Cola]->
[New York]
[Actual]->[Colas]->
[New York]
[Actual]->[Product]->
[New York]
8/11/2019 Rschoustra.awalkAroundBlock.presentation
50/55
Data Load. Extract Layout Tip
SORT ON SPARSE
Dimensions First andDENSE DimensionsLast :
Avoids excessive I/O(Reads / Writes fromdiskspecifically theess00001.PAG file)
Prevents unnecessaryFragmentation of the
ess00001.PAG file, orfiles)
GOOD! BAD!
8/11/2019 Rschoustra.awalkAroundBlock.presentation
51/55
The Hourglass.
The Hourglass
For DENSE Dimension Members this (usually) occurs naturally since [Accounts]usually has the most (Dense) members, followed by Time, Scenario, and sometimesanother DENSE dimension. The Top part of the hourglass doesnt really matter forcalculation performanceUser Presentation (how the members naturally appear inSmartView is more important.
For SPARSE dimensions, the aggregations do occur more efficiently if the dimensionswith fewest aggregations (not members!) are aggregated 1st, followed by next with
most aggregations, etc.
8/11/2019 Rschoustra.awalkAroundBlock.presentation
52/55
Wheres Waldo?...
If Waldo is [SPARSE] or [DENSE] can you spot Waldo
In SmartView Retrievals?
Calculation Scripts?
Data Extracts?
Substitution Variable Assignment Grids?
In a plane? On a Train? .
8/11/2019 Rschoustra.awalkAroundBlock.presentation
53/55
Whats Next?
Where to go from here
Check out some of the more technical sessions here at KScope
Use your own environment and look at and watch the Statistics we talked about
Open up those Calculation Scripts that may have seemed daunting
On DEV, play around with Calculation Scripts and make small adjustments
HAVE FUN!
8/11/2019 Rschoustra.awalkAroundBlock.presentation
54/55
Contact: Rich Schoustra: [email protected]
Join Rich Schoustra: Managing Hyperion: A Success Guide for CIOs, CFOs, Finance,
Accounting, and IT Managers When: Jun 24, 2014, Session 7, 11:15 am12:15 pm
Join Sumit Deo: EPMA Tips and Tricks: Lessons in Metadata and Data Management
When: Jun 25, 2014, Session 13, 11:15 am12:15 pm
Join Eric Helmer: Saas? Cloud? Exalytics? On-premise?
Exploring Oracle EPM Deployment Options
When: Jun 25, 2014, Session 15, 3:15 pm - 4:15 pm
For more information
mailto:[email protected]:[email protected]8/11/2019 Rschoustra.awalkAroundBlock.presentation
55/55
T H A N K Y O U
Rich SchoustraHyperion Managed ServicesPractice Lead, [email protected]
mailto:[email protected]:[email protected]:[email protected]