This Rails plugin makes it easy to add a basic OLAP interface to your application, which is great for administration interfaces. Its main uses are collection information about the usage of your application and detecting inconsistencies and problems in your data.
This plugin provides:
The main functions for OLAP querying: olap_query and olap_drilldown. These functions must be enabled for your model by calling enable_active_olap on your model class.
Functions to easily define dimension, categories and aggregates to use in your OLAP queries.
In the future, the following functionality is planned to be included:
A helper module to generate tables and charts for the query results. The gchartrb gem is needed for charts, as they are generated using the Google charts API.
A controller that can be included in your Rails projects to get started quickly.
More information about the concepts and usage of this plugin, see the Active OLAP Wiki on GitHub: wiki.github.com/wvanbergen/active_olap. I have blogged about this plugin on the Floorplanner tech blog: techblog.floorplanner.com/tag/active_olap/. Finally, if you want to get involved or tinker with the code, you can access the repository at github.com/wvanbergen/active_olap/tree.
Why use this plugin?
This plugin simply runs SQL queries using the find-method of ActiveRecord. You might be wondering why you would need a plugin for that.
First of all, it makes your life as a developer easier:
This plugin generates the nasty SQL expressions for you using standard compliant SQL, handles issues with SQL NULL values and makes sure the results have a consistent format.
You can define dimensions and aggregates that are “safe to use” or known to yield useful results. Once dimensions and aggregates are defined, they can be combined at will safely and without any coding effort, so it is suitable for management. :-)
To install the gem on your system, run:
gem install active_olap -s http://gemcutter.org
Alternatively, you can include them gem into your Rails project by adding it to the configuration in your environment.rb file:
gem.config 'active_olap', :source => 'http://gemcutter.org'
This plugin is usable for any ActiveRecord-based model. Because named_scope is used for the implementation, Rails 2.1 is required for it to work. It is tested to work with MySQL 5 and SQLite 3 but should work with other databases as well, as it only generates standard compliant SQL queries.
Warning: OLAP queries can be heavy on the database. They can impact the performance of your application if you perform them on the same server or database. Setting good indices is helpful, but it may be a good idea to use a copy of the production database on another server for these heavy queries.
Another warning: while this plugin makes it easy to perform OLAP queries and play around with it, interpreting the results is hard and mistakes are easily made. At least, make sure to validate the results before they are used for decision making.
About this plugin
The plugin is written by Willem van Bergen for Floorplanner.com. It is MIT-licensed (see MIT-LICENSE).
The Floorplanner techblog contains some posts about this plugin that can be used as a reference: techblog.floorplanner.com/tag/active_olap
The project wiki also contains some documentation: wiki.github.com/wvanbergen/active_olap
If you have any questions or want to help out with the development of this plugin, please contact me on my github account.