olap4j is an open Java API for OLAP.

Think of it like JDBC, but for accessing multi-dimensional data.

olap4j is a common API for any OLAP server, so you can write an analytic application on one server and easily switch it to another. Built on that API, there is a growing collection of tools and components.


olap4j 1.1.0 was released on January 17th, 2013.

This olap4j release includes the specification, a technology compatibility kit (TCK) and a generic XML/A driver compatible with Pentaho Analysis (Mondrian), Microsoft SQL Server Analysis Services, Palo and SAP BW.

This release is a minor update to the olap4j specification. There have been changes to the internal APIs which will affect developers and implementors of the specification. This release is backwards compatible with applications written against olap4j 1.0.

This release is also the first to introduce our new sister project, olap4j-xmlaserver. It consists of a Java Servlet implementation that provides XMLA services based on an underlying olap4j connection. For more details, consult the project page at GitHub.

New Features / Improvements

  • Switched to the JavaCC parser (was previously JavaCUP).
  • Added compatibility with Mondrian 4+.
  • Minor changes to the NamedList interface.

Bug Fixes in Core

  • Fix bug 71, "Inconsistent behavior when parsing '.CHILDREN' and '.Children'".
  • Fix bug 73, "Incomplete LCID list".
  • Fix bug 76, "Still missing code from LCID-to-Locale mapping".

Bug Fixes in XMLA driver

  • Fixes compatibility issues with Essbase.
  • Fixes compatibility issues with SAP BW.
  • Fixes a thread-safety issue in DeferredNamedList.



Olap4j is distributed as four Java JAR libraries.

olap4j Core API, Query Model, Transformation and other auxiliary packages, along with the driver specification.
olap4j-xmla Driver implementation of olap4j for XML/A data sources. It is compatible with Mondrian, Palo, SAP BW and SQL Server 2005+.
olap4j-tck Technology compatibility kit. Consists mostly of JUnit tests.
olap4j-jdk14 Olap4j distribution compatible with Java 1.4. Includes the core API and the XML/A driver.

Packages and Roadmap

The core API of olap4j version 1.0 is a Long Term Support (LTS) release, but some parts of the olap4j project will remain considered as experimental, thus subject to change in future releases.

Core packages

The core packages in olap4j-1.0 are as follows.

org.olap4j.driver.xmla Generic XML/A driver
org.olap4j.mdx Core objects of the MDX model
org.olap4j.mdx.parser Parser for the MDX query language
org.olap4j.metadata Model for browsing metadata
org.olap4j.type System for the core MDX object model and the metadata package
Experimental packages

The following packages are considered experimental and are subject to change.

org.olap4j.query Programmatic Query Model
org.olap4j.transform Core MDX object model transformation utilities
org.olap4j.layout Utility classes to display CellSets
org.olap4j.CellSetListener and associated classes Event-based system for real time updates of CellSet objects
org.olap4j.Scenario and associated classes Statistical simulations module

Related projects

  • Mondrian, an OLAP engine that natively supports olap4j;
  • olap4j-xmlaserver, a wrapper that converts any olap4j data source into an XMLA server.

Get involved!

Join the forum, download the specification, and give us your feedback. If you are developing an OLAP server, component or application, let's work together to make your project olap4j-compliant.

There are olap4j drivers for mondrian and XML/A; we are looking for committers to port the XML/A driver to new servers, and to write native drivers for other OLAP engines.


olap4j is an open specification, developed by a consortium of companies and open source projects, including:

Developer resources