Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt

Use this file to discover all available pages before exploring further.

Virtual hierarchies are an effective way to reduce data loading time and memory usage in Atoti. Instead of populating hierarchy members during data loading, a virtual hierarchy creates an empty structure. Member values are retrieved from the database or from an aggregate provider only when needed in a query.
  • Faster data loading: Large hierarchies with millions of distinct values can slow down loading. Virtual hierarchies skip member population at load time.
  • Lower memory consumption: Regular hierarchies store members in a tree structure. Virtual hierarchies do not build this tree, saving memory for high-cardinality fields.

When to use virtual hierarchies

Virtual hierarchies are best for:
  • High-cardinality hierarchies with non-repeating strings (e.g., Trade ID).
  • Hierarchies that are not used for slicing or ordering.
  • Scenarios where members are only needed for filtering or display in queries.
Avoid using virtual hierarchies for:
  • Date hierarchies (ordering is required).
  • Slicing hierarchies (need a default member).
  • Use cases requiring next, previous, or lag operations.

How to decide

Ask these questions:
  • Does the hierarchy have very high cardinality?
  • Are the member values non-repeating strings?
  • Is the hierarchy used for slicing?
  • Is the order of the members in hierarchy important?
  • Will users need to filter on this hierarchy outside Atoti UI or Excel?
Virtual hierarchies decision flow
Find out how to set a hierarchy as a virtual hierarchy using: