MOLAP is a Multidimensional, Open-Source, In-Memory, Object-Oriented, and Embeddable API for aggregating data through computationally efficient multidimensional cubes developed by Macrofocus. It supports the usual drill-down, drill-up, slicing, dicing, and pivot operations, alongside a wide choice of built-in aggregation functions, with the following distinctive features:
- Indexed data structured similarly to R and Pandas dataframe
- Arbitrary group by without the need to describe the cube structure
- Automatic optimization of the cheapest aggregation path
- Just-in-time calculation of aggregates
- Drill-across queries
- Expressive programming style through fluent interfaces
- Custom aggregation functions
- Java implementation
Conceptually it works by:
- Proving the input data as a table (DataFrame interface)
- Creating a data cube (Cube interface, with InMemoryDataCube providing the default implementation)
- Grouping the data into cuboids (Cuboid interface) along some nested dimensions (Dimensions interface)
- Drilling-down (Cuboid.drillDown()), Drilling-up (Cuboid.drillUp()), Slicing (Cuboid.slice())and dicing (Cuboid.dice()) the cuboids
- Defining how the data should be aggregated (Aggregation interface)
- Extracting data from the cube through by placing queries (Query interface)
Future plans includes:
- Parallel and distributed processing
- Creation and aggregation of time series
- Aggregation of geospatial objects
- Real-time and incremental updates made to the input table
- Persistance of the data cube
- Query language (potentially with MDX query parser and support for DAX expressions)
- XML/A Server
- Port to other languages (e.g. JavaScript)
January 1, 2023
Simply the best wishes for 2023!
May 2, 2014
MOLAP v. 1.0rc1 is now available! You can find it in the download area.