Hi,
I am working on a OLAP python framework for multidimensional analysis
and creating pre-aggregated multidimensional cubes:
http://databrewery.org/cubes/doc/
The first back-end cube builder and aggregation browser is for MongoDB
[1]
Typical workflow for using OLAP is:
1. create logical model for your data
http://databrewery.org/cubes/doc/cubes.html
2. build aggregated cube:
http://databrewery.org/cubes/doc/computing.html
Currently implemented simple MongoDB aggregator requires one
denormalized collection (no joins should be required, however does not
have to be flat - might contain deep structure). Cube is computed to
separate collection or aggregations might be computed into the same
collection (there are cases where it might be desirable, records are
recognised by a configurable flag _is_aggregate).
In simple cube builder all combinations of all dimensions and their
levels are pre-aggregated.
3. browse aggregates in your application:
http://databrewery.org/cubes/doc/aggregate.html
Browser will get data from collection generated in the step 2.
The project is in its early stage. Future plans are to create backends
for other databases as well (mainly relational/SQL based) and create
generic MongoDB backend for storing preaggregated cubes from other
sources (including SQL). In other words, you will be able to do: SQL
database schema --> MongoDB preaggregated cube. You will use SQL for
detailed/transactional usage, mongo backend for analytics.
The project is hosted on bitbucket (mercurial repository):
https://bitbucket.org/Stiivi/cubes/overview
And on github for convenience (synchronized with mercurial):
https://github.com/Stiivi/cubes
I would like to hear what you think of it. Also I am looking for
people who would like to try it/test it on their data and give me
feedback - mainly for bugs and requirements.
Regards,
Stefan
[1]
http://databrewery.org/cubes/doc/api/builders.html#cubes.builders.MongoSimpleCubeBuilder