Documente Academic
Documente Profesional
Documente Cultură
Aggregate storage dimension build changes to the outline can result in all aggregate views or all
data values being cleared from the database when the dimension build is finished. Aggregate
Storage Database Restructuring on page 994 describes the results of outline changes.
If you use more than one data source to build dimensions, you can save processing time by
performing an incremental dimension build. Incremental dimension builds enable you to defer
restructuring until all data sources have been processed. For information about incremental
dimension build, see Performing Deferred-Restructure Dimension Builds on page 299.
Differences between outline characteristics of block storage outlines and aggregate storage
outlines affect data sources and rules files. For example, defining a dimension as sparse or dense
is not relevant to aggregate storage outlines.
Rules File Differences for Aggregate Storage Dimension Builds
Rules files for building aggregate storage outlines must define only outline properties and field
types that apply to aggregate storage outlines.
After converting a block storage outline to aggregate storage, update the rules files by associating
them to the aggregate storage version of the outline.
Aggregate storage databases facilitate analysis of very large dimensions containing up to a million or more
members. To efficiently support loading data values into such large databases, Essbase:
Allows the processing of multiple data sources through temporary aggregate storage data load buffers
Allows you to control the percentage of resources a data load buffer uses
Allows an aggregate storage database to contain multiple slices of data (a query to the database
accesses each slice, collecting all of the data cells)
Provides an incremental data load process that completes in a length of time that is proportional to the
size of the incremental data
For aggregate storage data loads using the aggregate storage data load buffer, you make this choice for all
data load sources that are gathered into the data load buffer before they are loaded to the database.
Note:
Although dimension builds and data loads for aggregate storage databases can be combined into one
operation in Administration Services, Oracle recommends that you separate dimension build operations from
data load operations, because some dimension builds clear data, which could lead to data loss
Aggregate storage databases facilitate analysis of very large dimensions containing up to a million or more
members. To efficiently support loading data values into such large databases, Essbase:
Allows the processing of multiple data sources through temporary aggregate storage data load buffers
Allows you to control the percentage of resources a data load buffer uses
Allows an aggregate storage database to contain multiple slices of data (a query to the database
accesses each slice, collecting all of the data cells)
Provides an incremental data load process that completes in a length of time that is proportional to the
size of the incremental data
For resolving cell conflicts for duplicate cells, you can specify whether to use the last cell loaded into the load
buffer.
Note:
When loading text and date values into an aggregate storage database, use the
aggregate_use_last option to help eliminate invalid aggregations. For other guidelines, see
Loading, Clearing, and Exporting Text and Date Measures.
If you use multiple properties in the command and any conflict, the last property listed takes precedence.
During the aggregate view selection phase, Essbase analyzes how calculating and storing various
combinations of aggregate views might affect average query response time. As input to the analysis, you can
define physical storage and performance requirements. You can also track data usage and provide the
information to the analysis process. See Selecting Views Based on Usage.
Based on their usefulness and resource requirements, Essbase creates a list of aggregate views. Included with
each view in the list is storage and performance information that applies when that aggregate view plus all
other aggregate views listed above it are stored. You can choose to aggregate the listed views, select and
aggregate a subset of the listed views, or rerun the selection process with different input criteria. You can also
add to an aggregation the materialization of new views that are based on new selection criteria.
Whether or not you materialize the selection, you can save the selection of aggregate views as an aggregation
script. Aggregation scripts provide flexibility and can save time because they enable you to bypass the
selection process if the same selection is needed again. See Working with Aggregation Scripts.
After the selection process is finished, the selected aggregate views are calculated when you materialize the
selected aggregate views into an aggregation.
You may want to track which data is most queried and include the results and alternate views in the aggregate
view selection process. (See Selecting Views Based on Usage.) As you tune and test aggregations, consider
the following points:
Improving retrieval performance can increase disk storage costs and the time it takes to
materialize the aggregation.
Tracking queries may result in a set of proposed aggregate views that provide better
performance for some queries than for others. Selecting proposed aggregate views can
considerably improve performance time of some queries with others experiencing little
improvementbut never worseas long as query type and frequency are close to the type and
frequency of queries performed during the tracking period.
Optimizing aggregations may require an iterative, fine-tuning process.
Essbase provides information to help you select and store the right balance of aggregate views for your
database. Weigh this information against what you know about your database retrieval requirements and
environment. Use the following information to help you select aggregate views for an aggregation:
You can specify a storage limit for selecting aggregate views in two ways:
o When the aggregation selection is initiated, you specify a maximum storage stopping
value. Aggregate views are selected until the specified storage limit is reached or there
are no more views to select.
In Administration Services, the number you specify is the amount of storage in MB; in
MaxL, the number is a factor times the size of the level 0 stored values. See the Oracle
Essbase Administration Services Online Help and the Oracle Essbase Technical
Reference.
o After each analysis of the database, Essbase displays information about the level 0
input cell view followed by a list of suggested aggregate views. Displayed by each
aggregate view is a storage number that includes that aggregate view and all other
aggregate views it depends on. You can consider this storage number as you select the
aggregate views to be included in the aggregation.
The relative Query Cost performance improvement
The Query Cost number that is displayed by each aggregate view in the list projects an average
retrieval time for retrieving values from the associated aggregate view. The default view selection
estimates the cost as the average of all possible queries. When using query tracking, the
estimated cost is the average for all tracked queries. The cost number for a specific aggregate
view can be different in different selection lists; for example, aggregate view 0, 0, 1/0, 2/0, 0 can
show a different query cost in the default selection list than it would show in a selection that
includes tracked queries in the analysis.
To compute the percentage improvement, divide the query cost value for the aggregate view into
the query cost value shown for storing only level 0 input cells.
Tracked usage
Before running an aggregate view selection, you can turn on query tracking to determine which
data is retrieved most often. After some period of database activity, you can have Essbase
include the usage statistics in the aggregation analysis process. See Selecting Views Based on
Usage.
Aggregation time
The time it takes to perform an aggregation after the selection process completes increases for
each aggregate view materialized. To determine actual aggregation time, you must perform the
aggregation.
Note:
To optimize aggregations for different database retrieval situations, such as for generating reports or user
queries, you may need to repeat the tuning process, creating an aggregation script for each situation. See
Working with Aggregation Scripts.
Database usage for periodic reporting may be different than for ongoing user retrievals. To optimize different
retrieval situations, consider tracking situational usage patterns and creating aggregation scripts for each
situation.
Before you begin the aggregation selection process, ensure that query tracking is on and that it has been on
long enough to capture representative usage.
Query tracking holds query usage information in memory. Performing any of the following operations clears
query usage information.
Loading or clearing data
Materializing or clearing an aggregation
Turning off query tracking
Query tracking remains on until you turn it off, stop the application, or change the outline.
Administrators may apply view selection properties to stored hierarchies to restrict Essbase from choosing
certain levels for aggregation.
Note:
Secondary hierarchies are either shared or attribute hierarchies.
Property Effect
Default On primary hierarchies, Essbase considers all levels. It does not aggregate on
secondary hierarchies unless alternative roll-ups are enabled.
Consider all levels Considers all levels of the hierarchy as potential candidates for aggregation. This is
the default for primary hierarchies, but not for secondary hierarchies.
Do not aggregate Does not aggregate along this hierarchy. All views selected by Essbase are at the
input level.
Consider bottom level Applies only to secondary hierarchies. Essbase considers only the bottom level of
only this hierarchy for aggregation.
Consider top level only Applies only to primary hierarchies. Considers only top level of this hierarchy for
aggregation.
Never aggregate to Applies to primary hierarchies. Selects top and bottom levels only.
intermediate levels
Note:
The bottom level of an attribute dimension consists of the zero-level attribute members. When a secondary
hierarchy is formed using shared members, the bottom level comprises the immediate parents of the shared
members.
Essbase considers only views that satisfy the selected view selection properties.
You should be familiar with the dominant query patterns of databases before changing default properties;
preventing selection of certain views will make queries to those views slower while improving the speed of
other queries. Similarly, enabling Consider All Levels on a secondary hierarchy may speed queries to that
hierarchy while making other queries slower.
If no member is specified for a dimension, it means that any member of that dimension may be used in a query.
For example, using a query hint of (Sales, 100, East) on Sample.Basic means that profit margin measures for
level 1 products at level 1 markets is a common type of query, regardless of Year and Scenario dimensions,
which were omitted.
Usage-based view selection overrides query hints. See Selecting Views Based on Usage. User-defined view
selection overrides query hints if there is a conflict between the two. See Understanding User-Defined View
Selection
Numerous hints can exist in the same outline. Any view that fits at least one hint is given more weight than
views that fit none.
Aggregation scripts can save you time. For example, after loading new data values you need not perform
another aggregate view selection. You can speed the aggregation process by using the selection stored in an
aggregation script to materialize the aggregation.
Aggregation scripts also give you flexibility. You can use them to save aggregate view selections optimized for
different retrieval situations; for example, you can use one script to optimize retrievals in month-end reporting
and another for daily retrieval requirements.
Aggregation scripts for a database become invalid when the selection it contains is invalid for the database.
Create aggregation scripts when you create aggregations. Do not manually modify aggregation script files,
which may cause unpredictable results. For information about when you must create aggregations and
aggregation scripts, see Replacing Aggregations.
Creating Aggregation Scripts
Saved aggregation scripts enable you to split up the total aggregation process. You can materialize an
aggregation at a different time than when the aggregate views for the aggregation are selected. The
aggregation script contains information derived during the aggregate view selection phase.
Aggregation scripts are stored in the database directory as text files with the .csc extension and are valid as
long as the dimension level structure in the outline has not changed. For information about when aggregation
selections are invalid, see Replacing Aggregations. To avoid the potential clutter of invalid aggregation script
files, use the Aggregation Design Wizard or manually delete aggregation scripts when they are no longer
useful.
Note:
When Aggregation Design Wizard displays the list of existing aggregation scripts, it lists all files with the .csc
extension in the database directory. Only valid aggregation script files can be executed.
For information about when Essbase Server automatically clears aggregated data, see Database restructure
in Table 123, Outline Differences Between Aggregate Storage and Block Storage.
Replacing Aggregations
You can replace an aggregation by clearing the existing aggregation and materializing a different selection of
aggregate views. You can perform a new aggregate view selection and materialization process, or you can run
an aggregation script. Consider replacing the aggregation in the following situations:
You must replace an aggregation and associated aggregation scripts after the number of levels in a dimension
has been changed or one or more dimensions have been added or removed from the outline. See Performing
Database Aggregations and Working with Aggregation Scripts.
BSO Dimension Build
Data Sources
Data sources contain the information that you want to load into the Essbase database. A data source can
contain:
Data values
Information about members, such as member names, member aliases, formulas, and
consolidation properties
Generation and level names
Currency name and category
Data storage properties
Attributes
UDAs
The following sections describe the components of any kind of data source.
Note:
When using spreadsheet files to load data or build an outline in Essbase, the spreadsheet files must reside on
a Windows computer, regardless of the tool you use. Spreadsheet files that reside on a UNIX computer or are
transferred via FTP to a UNIX computer are not supported. If Essbase Administration Server is installed on a
UNIX computer, data loads and dimension builds from client-side spreadsheet files are not supported.
To avoid rules file, data load, and dimension build errors, remove formatting in Microsoft Excel data source
files; for example, in Excel, set color to Automatic and No Fill, and remove font settings such as bold and
italic.
Essbase reads data sources starting at the top and proceeding from left to right.
You can specify information in the header and in an individual record. In the following example,
100 is the data value that corresponds to the intersection of Jan, Actual, Cola, East, Sales, and
200 is the data value that corresponds to the intersection of Jan, Actual, Cola, West, Sales.
Jan, Actual
Cola East Sales 100
Cola West Sales 200
Cola South Sales 300
You do not need a rules file if you are performing a data load and the data source maps perfectly to the
database
If a data source contains all of the information required to load the data values in it into the database, you can
load the data source directly in a free-form data load.
To load a data value successfully, Essbase must encounter one member from each dimension before
encountering the data value. For example, in Figure 61, Kinds of Fields, Essbase loads the data value 42 into
the database with the members Texas, 100-10, Jan, Sales, and Actual. If Essbase encounters a data value
before a member of each dimension is specified, it stops loading the data source.
To map perfectly, a data source must contain all of the following and nothing else:
One or more valid members from each dimension. A member name must be enclosed in
quotation marks if it contains any of the following:
o Spaces
o Numeric characters (09)
o Dashes (minus signs, hyphens)
o Plus signs
o Ampersands (&)
If you are performing a data load without a rules file, when Essbase encounters an
invalid member field, it stops the data load. Essbase loads all fields read before the
invalid field into the database, resulting in a partial load of the data values. See Loading
Dimension Build and Data Load Error Logs.
If the data source contains blank fields for data values, replace the blank fields with #MI or
#MISSING. Otherwise, the data values may not load correctly.
The fields in the data source must be formatted in an order that Essbase understands. The simplest way to
format a record is to include a member from each dimension and a data field, as illustrated below:
An incorrectly formatted data source will not load. You can edit the data source using a text editor and fix the
problem. If you must perform many edits (such as moving several fields and records), consider using a rules
file to load the data source. See Rules Files.
The following sections describe more complicated ways to format free-form data sources.
You can express member names as ranges within a dimension. For example, Sales and COGS form a range in
the Measures dimension. Ranges of member names can handle a series of values.
A data source can contain ranges from more than one dimension at a time. In the example below, Jan and Feb
form a range in the Year dimension and Sales and COGS form a range in the Measures dimension.
Notice that Sales is defined for the first two columns and COGS for the last two columns.
When Essbase encounters multiple members from the same dimension with no intervening data fields, it sets
up a range for that dimension. The range stays in effect until Essbase encounters another member name from
the same dimension, at which point Essbase replaces the range with the new member or new member range.
The following example contains a range of Jan to Feb in the Year dimension. It remains in effect until Essbase
encounters another member name, such as Mar. When Essbase encounters Mar, the range changes to Jan,
Feb, Mar.
Texas Sales
Jan Feb Mar
Actual "100-10" 98 89 58
"100-20" 87 78 115
When Essbase encounters a member range, it assumes that there is a corresponding range of data values. If
the data values are not in the member range, the data load stops. Essbase loads any data fields read before
the invalid field into the database, resulting in a partial data load.
The following example contains more data fields than member fields in the defined range of members. The
data load stops when it reaches the 10 data field. Essbase loads the 100 and 120 data fields into the database.
For information on restarting the load, see Loading Dimension Build and Data Load Error Logs.
Structure ranges in the source data so that Essbase interprets them correctly. If a member appears more than
once in a range, Essbase ignores the duplicates.
The following example shows duplicate members for Actual, Budget, Sales, and Budget and two ranges: Actual
to Budget and Sales to COGS. Essbase ignores the duplicate instances of Actual, Budget, Sales, and COGs
(as shown in bold text).
Cola East
Actual Budget Actual Budget
Sales Sales COGS COGS
Jan 108 110 49 50
Feb 102 120 57 60
For Actual, the first member of the first range, Essbase maps data values to each member of the second range
(Sales and COGS). Essbase then proceeds to the next value of the first range, Budget, similarly mapping
values to each member of the second range. As a result, Essbase interprets the file as shown below:
Cola East
Actual Budget
Sales COGS Sales COGS
Jan 108 110 49 50
Feb 102 120 57 60
Formatting Columns
If you are performing a dimension build, skip this section.
Files can contain columns of fields. Essbase supports loading data from symmetric columns or asymmetric
columns.
Symmetric Columns
If you are performing a dimension build, skip this section. Dimension builds require a rules file.
Symmetric columns have the same number of members under them. In the following example, each dimension
column has one column of members under it. For example, Product has one column under it (100-10 and 100-
10) and Market has one column under it (Texas and Ohio).
The columns in the following file are also symmetric, because Jan and Feb have the same number of members
under them:
Jan Feb
Actual Budget Actual Budget
"100-10" Sales Texas 112 110 243 215
"100-10" Sales Ohio 145 120 81 102
Asymmetric Columns
If you are performing a dimension build, skip this section.
Asymmetric columns have different numbers of members under them. In the following example, the Jan and
Feb columns are asymmetric because Jan has two columns under it (Actual and Budget) and Feb has one
column under it (Budget):
If a file contains asymmetric columns, label each column with the appropriate member name.
The example above is valid because the Jan label is now over Actual and Budget. It is clear to Essbase that
both columns map to Jan.
The following example is not valid because the column labels are incomplete. The Jan label must appear over
the Actual and Budget columns.
Jan Feb
Actual Budget Budget
"100-10" Sales Texas 112 110 243
"100-10" Sales Ohio 145 120 81
Security Issues
The security system prevents unauthorized users from changing the database. Only users with
write access to a database can load data values or add dimensions and members to the
database. Write access can be provided globally or by using filters.
You can load data values while multiple users are connected to a database. Essbase uses a
block locking scheme for handling multi-user issues. When you load data values, Essbase does
the following:
o Locks the block it is loading into so that no one can write to the block.
See Ensuring Data Integrity for information on Essbase transaction settings, such as
identifying whether other users get read-only access to the locked block or noting how
long Essbase waits for a locked block to be released.
See Data Locks for information on whether Essbase unlocks a block when its update is
complete or waits for the entire data load to complete before unlocking the block.
You cannot build dimensions while other users are reading or writing to the database. After you
build dimensions, Essbase restructures the outline and locks the database for the duration of the
restructure operation.
Table 41. Rules for Assigning Field Types Based on Build Method
Put attribute association fields after the base field with which they are associated, and
specify the generation number of the associated base dimension member. For example:
The generation number must correspond to the generation of the member in the outline
for which the field provides values. For example, the 3 in GEN3,PRODUCT shows that the
values in the field are third-generation members of the Product dimension. The 2 in
ALIAS2,POPULATION shows that the values in the field are associated with the second-
generation member of the Population dimension.
Level Put DUPLEVEL fields immediately after LEVEL fields.
Put DUPLEVELALIAS fields immediately after the DUPLEVEL fields.
Each record must contain a level 0 member. If a level 0 member is repeated on a new
record with a different parent, Essbase rejects the record unless you select the Allow
Moves member property. See Setting Member Properties in the Oracle Essbase
Administration Services Online Help.
Group level fields sequentially within a dimension.
Put the fields for each roll-up in sequential order.
Use a single record to describe the primary and secondary roll-ups.
Put attribute association fields after the base field with which they are associated, and
specify the level number of the associated base dimension member. For example:
The level number must correspond to the level of the member in the outline for which the
field provides values. For example, the 3 in LEVEL3,PRODUCT shows that the values in
the field are level 3 members of the Product dimension. The 2 in ALIAS2,POPULATION
shows that the values in the field are associated with the second level of the Population
dimension.
Parent- If field type is parent or child, enter 0 (zero) in the Number text box.
child
Attribute The generation or level number must correspond to the generation or level of the associated base
dimension member in the outline. For example, the 3 in OUNCES3,PRODUCT shows that the values in the
name field are the members of the Ounces attribute dimension that are associated with the third-
generation member of the Product dimension in the same source data record.
If necessary, move the fields to the required locations. See Moving Fields.
To move fields, see Moving Fields in the Oracle Essbase Administration Services Online Help.
Whether to sort members after Essbase has processed and added all members from the data
source
Whether to add the members to the existing outline or to remove unspecified members from the
outline
Removing unspecified members is available only with the generation reference, level reference,
and parent-child reference build methods.
Note:
Outlines are invalid if removing members results in level 0 Dynamic Calc members without formulas.
Table 41. Rules for Assigning Field Types Based on Build Method
Put attribute association fields after the base field with which they are associated, and
specify the generation number of the associated base dimension member. For example:
The generation number must correspond to the generation of the member in the outline
for which the field provides values. For example, the 3 in GEN3,PRODUCT shows that the
values in the field are third-generation members of the Product dimension. The 2 in
ALIAS2,POPULATION shows that the values in the field are associated with the second-
generation member of the Population dimension.
Level Put DUPLEVEL fields immediately after LEVEL fields.
Put DUPLEVELALIAS fields immediately after the DUPLEVEL fields.
Each record must contain a level 0 member. If a level 0 member is repeated on a new
record with a different parent, Essbase rejects the record unless you select the Allow
Moves member property. See Setting Member Properties in the Oracle Essbase
Administration Services Online Help.
Group level fields sequentially within a dimension.
Put the fields for each roll-up in sequential order.
Use a single record to describe the primary and secondary roll-ups.
Put attribute association fields after the base field with which they are associated, and
specify the level number of the associated base dimension member. For example:
The level number must correspond to the level of the member in the outline for which the
Build Rules for Assigning Field Types
Method
field provides values. For example, the 3 in LEVEL3,PRODUCT shows that the values in
the field are level 3 members of the Product dimension. The 2 in ALIAS2,POPULATION
shows that the values in the field are associated with the second level of the Population
dimension.
Parent- If field type is parent or child, enter 0 (zero) in the Number text box.
child
Attribute The generation or level number must correspond to the generation or level of the associated base
dimension member in the outline. For example, the 3 in OUNCES3,PRODUCT shows that the values in the
name field are the members of the Ounces attribute dimension that are associated with the third-
generation member of the Product dimension in the same source data record.
If necessary, move the fields to the required locations. See Moving Fields.
To move fields, see Moving Fields in the Oracle Essbase Administration Services Online Help.
Within the rules file, you define operations to be performed after the data source has been read:
Whether to sort members after Essbase has processed and added all members from the data
source
Whether to add the members to the existing outline or to remove unspecified members from the
outline
Removing unspecified members is available only with the generation reference, level reference,
and parent-child reference build methods.
Note:
Outlines are invalid if removing members results in level 0 Dynamic Calc members without formulas.