Data
Block (Building Block of Essbase) & Index System
Data
values are defined as the intersection of one member from one dimension with
one member from another dimension. A data value is stored in one cell in
the database. In order to refer to that specific data value in a
multidimensional database you need to specify its members from each dimension.
Essbase
stores and accesses data through the use of data blocks and the index system. A
data block is created for each unique combination of sparse dimension
members. Essentially, the data block represents all the dense dimension
members for its combination of sparse dimension members.
Every
time a data block is created, Essbase then creates an index entry. The
index is comprised of combinations of sparse dimension members. There is
one entry for each combination of sparse dimension members where a data value
exists. The data block is a fixed format data structure the existence of which
is driven by data-relevant sparse member combinations in the index. By
data-relevant we mean that only where business data actually exists across
sparse member combinations will a data block be generated.
In
the example below, Entity, Scenario, and Year are sparse dimensions, while
Accounts and Periods are dense dimensions. When Essbase searches for a
data value, it is using the index to locate the block containing that data
value. Once the data block is located, it targets the exact cell
containing the data value. Essbase is able to handle sparse data so well
because the index provides a pointer to the correct data block. Once the
data block is located, Essbase can quickly retrieve the data value. In the
example below, let’s say you are searching for Budgeted Expense for NY in
February 2013. The index provides a pointer using the sparse
dimensions to locate the data block containing the data for NY, Budget, 2013.
The data value in question is then contained at the intersection of Expense and
Feb.
No comments:
Post a Comment