// the find
DataBrewery/cubes
[NOT MAINTAINED] Light-weight Python OLAP framework for multi-dimensional data analysis
Cubes is a Python OLAP framework for defining a logical model over relational data and querying it with dimensional analysis — think slice-and-dice against star/snowflake schemas without writing the SQL by hand. It ships a Flask-based HTTP server (Slicer) so you can expose aggregated data as an API. The repo is explicitly unmaintained as of the README banner, last touched in 2022.
The logical model abstraction is genuinely useful — you define dimensions, hierarchies, and measures in JSON and the SQL query generator handles the joins, which saves a lot of repetitive aggregation SQL. Hierarchical dimensions with localization support is non-trivial and it's all here. The plugin architecture (stores, backends, auth) is well-factored; MongoDB was split out cleanly rather than becoming a forever-untested code path. Test coverage is real — the `tests/sql/` directory tests the actual query generation against model fixtures, not just unit-testing string formatting.
Abandoned. Python 2.7 is in the requirements, the last release (1.1) was never even properly tagged, and no one is merging PRs. If you hit a bug with SQLAlchemy 2.x or Python 3.12+, you own the fix. The HTTP server is built on Flask Blueprint with no async support — fine in 2015, a liability now if you need anything beyond synchronous request handling. There's no columnar or in-memory backend; everything is ROLAP against a relational DB, so analytical performance is entirely dependent on your database's query planner. Documentation links point to pythonhosted.org which is gone.