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.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.
- 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.
- 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?
