Cubes - Online Analytical Processing Framework for Python
Cubes is a light-weight Python framework and set of tools for Online
Analytical Processing (OLAP), multidimensional analysis and browsing of
aggregated data.
Focus on data analysis, in human way
Overview
Purpose is to provide a framework for giving analyst or any application
end-user understandable and natural way of presenting the multidimensional
data. One of the main features is the logical model, which serves as
abstraction over physical data to provide end-user layer.
Features:
OLAP and aggregated browsing (default backend is for relational databse -
ROLAP)
multidimensional analysis
logical view of analysed data - how analysts look at data, how they think of
data, not not how the data are physically implemented in the data stores
hierarchical dimensions (attributes that have hierarchical dependencies,
such as category-subcategory or country-region)
localizable metadata and data
SQL query generator for multidimensional aggregation queries
OLAP server – HTTP server based on Flask Blueprint, can be easily
integrated into your
application.
Download
Current recommended version is 1.1.x. It hasn't been yet tagged so please use the master branch.
This version includes SQL backend support out of the box, and other backends have been moved to separate
projects (ie. MongoDB). This branch (currently master) will be soon tagged as 1.1 release.
Previous stable version was 1.0.1. This version included all backend types, but no further
development will be done on this branch.
Documentation
Examples
See examples directory in the source code repository
for simple examples and use-cases.
Models
Development
Source code is in a Git repository on GitHub
git clone git://github.com/DataBrewery/cubes
After you've cloned, you might want to install all of the development dependencies.
pip install -e .[dev]
Build the documentation like so. ::
cd doc
make help
make html
Outputs will go in doc/_*.
Requirements
Python >= 2.7 and Python >= 3.4.1
Most of the requirements are soft (optional) and need to be satisfied only if
certain parts of cubes are being used.
SQLAlchemy from http://www.sqlalchemy.org/ version >= 0.7.4 - for SQL
backend
Flask from http://flask.pocoo.org/ for Slicer server
Jinja2 from http://jinja.pocoo.org/docs/ for HTML presenters
Support
If you have questions, problems or suggestions, you can send a message to the
Google group cubes-discuss.
IRC channel #databrewery on server irc.freenode.net
Development
If you are browsing the code and you find something that:
is over-complicated or not obvious
is redundant
can be done in better Python-way
... please let it be known.
Authors
Cubes is written and maintained by Stefan Urbanek (@Stiivi on Twitter)
stefan.urbanek@gmail.com and various contributors. See AUTHORS file for more
information.
License
Cubes is licensed under MIT license. For full license see the LICENSE file.