This page provides a description of how we can expose a datastore field
as a cube level. It features an example in which we expose a calculated
column ‘calculated’ from a new store as a level. For a full walk-through
on how this store was added to the cube, see Adding New Data Loading or Unloading Topics. Plus, to
see how the column calculator was implemented, see Enriching File Fields by Adding Column Calculators.
The techniques employed are generic examples that can be extended,
adapted and repeated for any use case that we need. In all cases, we
make minimal changes to the Accelerator Reference Implementation.
Step 1 - (Optional) Modify the schema selection description
If the field we want to turn into a level is not currently in our schema
selection, then the first step is to add it.
The cube selection is made by retrieving all fields from a datastore
except unwanted ones, so adding an extra field to an existing store will
add it to the selection. Only extra datastore fields will need a change
on the selection.
Fields are added to the schema selection by creating a Spring Bean with
type UnaryOperator<CanUseOtherReference> and qualifier
SchemaSelection_CUBENAME_ (for example,
SchemaSelectionStandardisedApproachCube
The field in the schema selection can now be turned into a level in the
cube.
Dimensions, hierarchies, and levels can be added to the cube
configuration by creating Spring Beans with type DimenionsAddr and
qualifier Dimensions_CUBENAME_ (for example,
DimensionsStandardisedApproachCube).