Allocations |
Allocating data involves creating lower-level data from summary data. Allocating data using the OLAP DML involves creating an ALLOCMAP type aggmap object that specifies how the data should be allocated, and executing that object using the ALLOCATE command to actually distribute the data from a source object to the cells of a target. The target is a variable that is dimensioned by one or more hierarchical dimensions. The source data is specified by dimension values at a higher level in a hierarchical dimension than the values that specify the target cells.
ALLOCATE uses an aggmap to specify the dimensions and the values of the hierarchies to use in the allocation, the method of operation to use for a dimension, and other aspects of the allocation.
Some of the allocation operations are based on existing data. The object containing that data is the basis object for the allocation. In those operations, ALLOCATE distributes the data from the source based on the values of the basis object.
ALLOCATE has operations that are the inverse of the operations of the AGGREGATE command. The allocation operation methods range from simple allocations, such as copying the source data to the cells of the target variable, to very complex allocations, such as a proportional distribution of data from a source that is a formula, with the amount distributed being based on another formula, with multiple variables as targets, and with an aggmap that specifies different methods of allocation for different dimensions.
The Oracle OLAP allocation system is very flexible and has many features, including the following:
The source, basis, and target objects can be the same variable or they can be different objects.
The source and basis objects can be formulas, so you can perform computations on existing data and use the result as the source or basis of the allocation.
You can specify the method of operation of the allocation for a dimension. The operations range from simple to very complex.
You can specify whether the allocated value is added to or replaces the existing value of the target cell.
You can specify an amount to add to or multiply by the allocated value before the result is assigned to the target cell.
You can lock individual values in a dimension hierarchy so that the data of the target cells for those dimension values is not changed by the allocation. When you lock a dimension value, then the allocation system normalizes the source data, which subtracts the locked data from the source before the allocation. You can choose to not normalize the source data.
You can specify minimum, maximum, floor, or ceiling values for certain operations.
You can copy the allocated data to a second variable so that you can have a record of individual allocations to a cell that is the target of multiple allocations.
You can specify ways of handling allocations when the basis has a null value.
You can use the same aggmap in different ALLOCATE commands to use the same set of dimension hierarchy values, operations, and arguments with different source, basis, or target objects.