Rschoustra.awalkAroundBlock.presentation

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]