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
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.
See examples
directory in the source code repository
for simple examples and use-cases.
See https://github.com/DataBrewery/cubes-examples for more complex examples.
For cubes models see https://github.com/DataBrewery/cubes-models
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/_*
.
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
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
Report bugs using github issue tracking.
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.
Cubes is written and maintained by Stefan Urbanek (@Stiivi on Twitter) [email protected] and various contributors. See AUTHORS file for more information.
Cubes is licensed under MIT license. For full license see the LICENSE file.