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: