Perficient Enterprise Information Solutions Blog

Blog Categories


Posts Tagged ‘virtual cubes’

IBM Cognos TM1 and a Relational Mind




For a long time relational models have supported the ability to create virtual tables known as “views” to provide a mechanism that allows developers to customize how their users can logically view data stored in base tables.

There is a similar concept in Cognos TM1 known as “virtual cubes”. A virtual cube is a cube that contains no physical data but though TM1 rules refers to and displays data that persists within a TM1 server.

If we use a virtual cube, we are not restricted to the dimensionality of a particular cube or cubes; in fact, we can combine or dissect dimensions, perform mathematical calculations, and filter or summarize slices of data to create a view that is the most optimal to a particular user, group or reporting need.

Why not just build cubes that way in the first place?  Well, in the first place, you model your cubes to support analytical analysis.  This means breaking apart data into (the simplest) chunks that you need to report on – this breakout supports potentially endless “slicing and dicing” but can create extra work when building reports -as a report more realistically will want to see rows with columns showing totals that are based upon a combination of dimensions.

Cube Viewer

Virtual cubes will extend the usefulness of TM1’s Cube viewer since virtual cubes are not restricted by the dimensionality of a cube users can create views that are more conducive for general reporting and therefore eliminate (or at least reduce) the need for more “formal” reporting options such as a TM1 Web sheet or Cognos BI report.


Virtual cubes can also be used to simplify security. Granting access to a particular cube is always easier to implement than element of cell security models. Virtual cubes can be the mechanism that restricts users to a certain subset of data in one or more base cubes.


Virtual cubes can also be defined to provide system performance benefits, improving data access on the most complex queries by precomputing and materializing a view of data.


To be sure, virtual cubes are not a slam dunk – careful consideration must go into their design and implementation – but they certainly deserve an earnest evaluation before your next TM1 implementation.

“We all live every day in virtual environments, defined by our ideas” – Michael Crichton


Navigating Cognos TM1 Cube Types


Cubes are to TM1 what tables are to relational databases.  Almost all data stored in TM1 is stored in and accessed from cubes. Do you know the difference between the types of these
basic objects?


Let’s explore!



First, each and every TM1 cube must have at least two and up to a maximum of 256 dimensions.

There are four types of cubes in Cognos TM1. They are:

  • “Standard”,
  • “Control”,
  • “Virtual” and
  • “Lookup”.

Standard Cubes

A “standard” Cognos TM1 cube is referred to as a “hard” cube or a cube where data is actually loaded and “resides”.

There are two ways to create (standard) cubes:

  • Empty Cube – You can manually create an “empty cube” by selecting (at least) 2 dimensions from the list of existing
    dimensions in the “Creating Cube” window to create a new cube with no data.
  • External Data Sources – You can create a cube and load it with data by using TurboIntegrator to identify and
    map dimensions and data from an external data source to a new or existing cube. (Of course, this requires some expertise using TurboIntegrator).

Control Cubes

Control cubes are “special” Cognos TM1 cubes. These “special” cubes are created and used by TM1 and by definition, are “hard” cubes that hold data.

Cognos TM1 itself uses control cubes to perform certain activities (of course you can access information in these cubes as
well). These activities are:

  • Security
  • Client and Group Administration
  • Object Attribute and Properties Control
  • Performance Monitoring
  • “Hold” Tracking by username

All control cube names are prefixed with a first character of “}” and are by default “not visible” within in TM1 Server Explorer. These cubes can be made visible in TM1 Server Explorer by:

  1. Selecting “View” and then
  2. Display Control Objects”.

Note: It is possible to create a cube and prefix its name with the “}” but although this will “show and hide” your cube with the rest of the “}” cubes – your cube will not “really” be a TM1 control cube.

Virtual Cubes

A “virtual” cube is a TM1 cube which is referred to as a “soft” cube where no data actually is loaded to or resides in but references data points in
other cubes.

To a TM1 user, a virtual cube may have the exact same appearance of a standard or “hard” cube.

Being a” fully rule calculated cube”, virtual cubes have no data stored in them but use rules to “pull” data from other cubes (and possibly to perform additional calculations on that data).

To perform this “data pull” into your virtual cube, you utilize TM1 “inter-cube” rules. These rules must be associated with that virtual cube.

While the rule statements reside in the target cube, the feeder statements to support these rules will always reside in the source cube.

You’ll use the TM1 rule DB function. The DB function must reference the cube (where the data you want to retrieve lives) and then provide a value for each of the dimensions in that cube:

DB('myCube', dimension value, dimension value,... dimension value);
Of course, you can only reference or pull data from cubes that reside in the same TM1 instance as the virtual cube.

Some Cognos TM1 cubes may be very complicated, large or have intensive rule calculations.  In other examples, data required for a reporting may be sourced from multiple cubes. In these cases, specific end user reporting may become difficult (especially for the “more casual” TM1 user) or somewhat slow. Defining several specific virtual cubes – referencing information in unique views of the larger cube or cubes – can be very useful.

Lookup Cubes

Another type of TM1 cube is the “Lookup” cube. This is a sort of  “utility” cube.

Lookup cubes are cubes that you can set up and use to support other  cubes and processes within a TM1 application. These cubes are usually read-only
or even made “not visible” to the user and may contain calculations or reference  data that is then “pulled” into other cubes using TM1 rules.

Whenever there is a need to perform a translation or conversion of  information, your choices would be to use an element attribute or a Lookup

Typically, if it’s a “single point” translation (involves only one  dimension) you’d want to use an attribute. If the translation involves  “multiple points”, then you would use a lookup cube.

Okay – that’s the 4 types – did I  miss any?

au revoir!