Cubes – Lightweight OLAP and Pluggable Data Warehouse
Stefan Urbanek, Robin Thomas
- Audience level:
- Novice
- Category:
- Databases
Description
Cubes is a light-weight Python OLAP framework for small to middle data warehouses. It enables users to quickly build and serve multi-dimensional view of their (mostly categorical) data. Features: pluggable data warehouse, multidimensional data modeling, concept hierarchies, aggregation and drill-down, external cubes provided by other services, multiple backends (SQL, MongoDB, ...), localizable.
Abstract
Cubes is a light-weight Python OLAP and multi-dimensional data modeling framework for building dynamic reporting and data analysis applications. It enables users to quickly build and serve multi-dimensional view of mostly categorical data. The functionality is provided in two forms: as Slicer server with JSON HTTP interface or pure Python API. Thanks to the modular architecture the framework is very extensible. Built-in backends include: SQL (many dialects, including PostgreSQL, Oracle, MySQL), MongoDB, Slicer Server (you can reuse/group/plug-in external servers) and Mixpanel.
Core features are:
* **Multidimensional Model** – metadata, description of the (categorical) data from analyst's perspective: facts, dimensions, concept hierarchies, measures and their aggregates.
* **Aggregation Browser** – processes aggregation queries, does slicing-and-dicing, drills-down. Browsers are backend provided and extensible.
* **Analyital Workspace** – combines cubes, shared dimensions, data stores, model providers and model metadata. Provides appropriate aggregation browsers and maintains database connections.
* **Slicer** – a Flask HTTP server with JSON interface that can be easily used in a HTML/JavaScript web application or plugged into another Flask application as a blueprint.
* **Data Stores** – extensible backend–specific storage of data such as SQL (ROLAP), MongoDB, Mixpanel. Custom backends for other databases or aggregation engines can be added.
* **Model Providers** – generates logical model from a simple JSON file or an external source. Custom model providers can load models from other analytical services.
* **Authentication and Authorization** – provides access rights on per-cube basis or can provide access just to certain part of the cube (like region, years, categories, ...).
application.
Links:
* [Project](http://cubes.databrewery.org)
* [Github](https://github.com/Stiivi/cubes/)
* [Example open-data site using Cubes](http://tender.sme.sk)