Online analytical processing (OLAP) is about getting as much useful information as possible out of business data while this data is rapidly and continuously changing.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.
What is Atoti?
Atoti by ActiveViam is a high performance data analytics platform with real-time capabilities and advanced data modeling. It lets its users structure the business data into multidimensional cubes from which they can subsequently extract valuable insights, by means of sophisticated summaries and selective drill-downs.
- Atoti Server aggregates data incrementally. The data can be updated incrementally and in real time so that only those sections of the cube that are impacted by a data change are refreshed. This represents a significant advantage as compared with traditional OLAP solutions that usually reload all data in the analytical environment and then re-compute all the metrics whenever the source data changes.
- Atoti Server computes complex measures. As an Atoti user, you have the ability to plug in your own business logic at every step of the aggregation process and manipulate complex measures. Atoti allows you to create new measures (some as simple as a standard deviation, some as complex as VaR and PFE/XVA) to help you understand and monitor your business. Measures are written in Java, meaning that any type of logic can be injected into the engine, including non-linear calculations. Atoti Server permits queries to run continuously and can generate real-time alerts on Key Performance Indicators (KPIs). This means that real-time analytics involving complex business logic can be deployed with ease.
- The underlying data can either be loaded into Atoti Server, or directly fetched to answer a query. Atoti Server ingests and consolidates data coming from a variety of heterogeneous systems. It can load data from most sources, including CSV, databases, cloud storage and real-time messaging platforms, such as Kafka and JMS. It can also sit on top of an existing database, and act as a semantic layer, a query engine, and a cache provider.
- Atoti Server performs What-If analysis. In general terms, What-If Analysis is the process of changing the values in cells to see how those changes will affect the outcome of formulas on a worksheet. Conducting a what-if framework is beneficial in several ways. Not only can you make better and more informed decisions by changing assumptions and observing or estimating the results, you are also better able to predict the outcome of your decisions. In the context of Atoti, a user wishing to perform a simulation just needs to create a new branch and modify some data: all measures defined on the cube are immediately available on the branch and comparisons can be performed between branches.
Defining a cube
In a cube, data is organized in dimensions and measures. Each cube axis is defined by a Dimension, and acts as an axis of analysis. Measures mainly correspond to numerical data, aggregated along the axis of analysis.

Location (containing aggregated values) for:
- Each individual member (Bob, Joe, etc.)
- The total across all members (AllMember)
Defining an indexed aggregate provider
An indexed aggregate provider is an Atoti Server component that acts as a Materialized View storing aggregated data. While a Just-In-Time aggregate provider will simply delegate any request for aggregated values to the underlying data, an indexed aggregate provider will store these aggregated values at load time, and keep them in sync with the underlying data. An aggregate provider will strongly speed up any query that it can answer to, at the memory cost of an additional data structure.Creating Custom Measures
It is possible to create custom or post-processed measures in Atoti Server. This is a unique and key differentiator of Atoti. Post-processed measures are defined once and can be used at any location of the cube. Most measures, including Native Measures, can be created using the Copper API. Consider the calculation of the Value at Risk (VaR) from a Finance use case. The post-processed measure is defined once with one PostProcessor. However, it can be used and queried from any hierarchy - from an AllMember aggregate level, all the way down to the individual Trade or fact level.
Fact-level Data in an Atoti Project
Data that is not yet aggregated (in an indexed aggregate provider, or as part of a query) is referenced as fact-level data, or granular data.The Datastore
It can be ingested, from multiple sources, and at the fact-level data, in the datastore. The datastore is relational. Each record in the base table is called a fact. The facts can be enriched with data from other tables, linked through references. Each fact is published to the Atoti cube, along with its referenced data, in a single denormalized fact record. The fact is then aggregated into the cube and the indexed aggregate providers, the level of detail retained being defined by the cube configuration.
External Databases
Granular data does not necessarily have to be loaded in main memory, in the datastore. Instead, it is also possible to keep it in an external databases, and to let the cube delegate queries to the underlying database. In such a setup, indexed aggregate providers are directly fed from queries against the external database, and cube queries that cannot be answered from any of the configured indexed aggregate providers will perform queries against the database.Note that both systems can be used together, using the Composite Database, or using distribution.