Essbase Block Formation: Dimension Stored Members Storage Type
Essbase Block Formation: Dimension Stored Members Storage Type
Essbase Block Formation: Dimension Stored Members Storage Type
Oracle Essbase (Extended Spreadsheet Database) is a multidimensional database for building analytic applications. Essbase stores data in a "cube" or Online Analytical Processing (OLAP) database. Before moving on to block formation, we should be aware of the Data cells, Data Blocks, Sparse- Dense Dimension, & .Pag and .Ind Concepts. Data Cells: In Block Storage database, the Intersection of one member from one dimension with one member from each of the other dimensions represents a data value, and each data value is stored in a single cell in the database occupying 8 Bytes of disk storage. For Example: Consider for a database, we have 5 dimension as
DIMENSION
Accounts Time Year Scenario Product Customer 100 17 5 2 500 500
STORED MEMBERS+
Dense Dense Dense Sparse Sparse Sparse
STORAGE TYPE
A data value or cell (100) is represented as Current Year -> JAN -> Actual -> Product A -> Customer X -> Units : 100 (means for Product A units sold to customer X in month of JAN of Current Year for Actual Scenario is 100) Sparse & Dense Dimension: For the formation of block in Essbase, first we need the dimensions to be tagged as either Dense or Sparse. As in most of the data sets, the data is not uniformly distributed and the data does not exist for the majority of member combinations. Now the question arises when we mark dimension as sparse and dense. A sparse dimension is a dimension with a low percentage of available data positions filled. A dense dimension is a dimension with a high probability that one or more data points is occupied in every combination of dimensions Based on this concept if you match the patterns correctly when you select your dense & sparse dimensions, you can store data in a reasonable number of fairly dense blocks, rather than in an excessive number of highly sparse data blocks. This enables the database to cope with data, speed data retrieval, minimizes memory & disk requirements.
+ Stored members are members with Store Data, Dynamic Calc and Store, or Never Share data storage properties
Data Blocks: In Block storage database, analytic service uses two types of internal structure to store & access data : Data Blocks & Index System. Essbase creates a data block for each unique combination of sparse standard dimension members (providing that at least one data value exists for the sparse dimension member combination). The data block represents all the dense dimension members for its combination of sparse dimension members. Essbase creates an index entry for each data block. The index represents the combinations of sparse standard dimension members. It contains an entry for each unique combination of sparse standard dimension members for which at least one data value exists.
BLOCK 1 2
Scenario->Product->Customer
Now lets consider the following three scenarios, how blocks are created in ESSBASE
Dense Blocks
Index Entry
Taking above example into consideration i.e. having 6 dimensions in our hierarchy, we have data block for each possible combination of dense dimension members i.e. Accounts, Time & Year as
Data Cell
Each data block in BSO has the same number of cells, and after Analytic Services create a data block, all cells of the data block exist, regardless of whether they contain data. These Data blocks are stored in PAG file (.pag) which can grow upto 2 GB, if filled than it creates additional sequential PAG file. Essbase creates data blocks for combinations of members in the sparse standard dimensions (providing that at least one data value exists for the member combination). The sparse members are Scenario, Product & Customers. As these sparse dimensions does not have all value for every combination, than Essbase does not create blocks at that intersection. Essbase creates an index entry for each data block in an IND(.ind) file which is located in same directory as PAG file & can have max size of 2 GB. When an index file reaches the maximum size i.e. 2GB, Analytic services create another sequential IND file. Loading the data value 100 to the member intersection Current Year -> JAN -> Actual -> Product A -> Customer X -> Units create a data block that is indexed as Actual -> Product A -> Customer X.
Number of Potential data cells is multiplication of stored members of one dimension with all others i.e. =100*17*5*2*500*500 = 4250000000 cells
Number of cells in a data block is multiplication of stored member of one dense dimension with stored members of other dense dimensions i.e. =100*17*5 = 8500 cells
Number of Potential data blocks for the database is multiplication of stored members of one sparse dimension with stored members of other sparse dimension i.e. =2*500*500 = 500000