Document created by Pedro Goncalves on Aug 10, 2017Last modified by Diogo Belem on Sep 12, 2017
Version 56Show Document
  • View in full screen mode


Online Analytical Processing server (OLAP). Allows business users to analyze large and complex amounts of data in real-time.





Analyze all your data in real-time

Analyzing huge quantities of data has never been that easy. With Mondrian, an open source Online Analytical Processing server (OLAP) written in JAVA, the system responds to queries fast enough to allow an interactive exploration of the data - even if they have millions of records, occupying several gigabytes. It brings multidimensional analysis to the masses, allowing users to examine business data by drilling and cross-tabulating information.



Frequently asked questions


How do I use Mondrian in my application?

Can Mondrian handle large data sets?

Which API does Mondrian use?

There are several ways to do it. If you have a fixed set of queries which you'd like to display as HTML tables, use the tab library. The JPivot project is a JSP-based pivot table, and will allow you to dynamically explore a data set over the web.Yes, if your RDBMS can. We delegate the aggregation to the RDBMS, and if your RDBMS happens to have materialized group by views created, your query will fly. And the next time you run the same or a similar query, that will really fly, because the results will be in the aggregation cache.Mondrian's main API is olap4j, an extension to JDBC for OLAP applications. It also has a XML provider for Analysis.

How does Mondrian's dialect of MDX differ from Microsoft Analysis Services?

How do I enable tracing?

See MDX language specification.

See Configuring log4j within Mondrian.



Main concepts

The Mondrian OLAP System uses Partitioned Cubes, allowing several fact tables. It also consists of four layers; working from the eyes of the user to the inward of the data center. These are: the Presentation Layer, the Dimensional Layer, the Star Layer, and the Storage Layer.


Partitioned cubes

Whereas a regular cube has a single fact table, a Partitioned Cube has several fact tables, which are joined together. One partition might contain today's data, while another might hold historical data, giving a useful contribute for real-time analysis.


Presentation LayerDimensional Layer
Determines what's shown in the user's screen, and how he can interact to ask new questions. There are many ways to present multidimensional data sets, including pivot tables, pie, line or bar charts and advanced visualization tools such as clickable maps and dynamic graphics.Parses, validates and executes Multidimensional Expressions (MDX) queries. A query is evaluated in multiple phases and the axes are the first to be computed, right before the values of the cells within the axes.
Star LayerStorage Layer
Is responsible for maintaining an aggregate cache. An aggregation is a set of measure values (cells) in memory, qualified by a set of dimension column values.

Is a Relational Database Management System (RDBMS) and is responsible for providing aggregated cell data and members from dimension tables.






Mondrian is an Open Source Business Analytics engine that enables organizations of any size to give business users access to their data for interactive analysis. You can build powerful Business Intelligence solutions with Mondrian as your Online Analytical Processing (OLAP) engine, enabling multidimensional queries against your business data, using the powerful MDX query language.



Change Log