Let's Get Analytical
Data Warehouse on Rails!
The ActiveWarehouse plugin simplifies building data warehouses in Rails. A data warehouse is a database designed specifically for analytical use as opposed to operational transaction processing. Typically a data warehouse houses data which spans several years and is sourced from numerous operational databases. Data warehouses are usually highly de-normalized which is contrary to transactional systems which tend to be normalized. The links in the side bar provide additional information.
Here’s how to get rolling:
Install the plugin
Getting the ActiveWarehouse plugin is easy: go to the home directory for a Rails app and type:
script/plugin install git://github.com/aeden/activewarehouse.git
The code will be downloaded from the Github repository and placed in the vendor/plugins directory of your app.
Build your warehouse
Use script/generate to create your facts, dimensions and cubes.
Load Data with ActiveWarehouse ETL
Use the ActiveWarehouse ETL library to extract data from operational systems, transform it so that it conforms across data sources, and load it into your data warehouse.
What About Tutorials?
There are no tutorials that cover the current version of ActiveWarehouse.
What's There Now?
Right now the plugin has the following functionality:
- Generators for Facts, Dimensions, Cubes and Bridges
- Multi-dimension support
- Default aggregate implementation that converts cube queries to SQL queries
- DateDimensionBuilder which can be used to populate a typical warehouse date dimension
- Support for calculated fields
- Support for pre-joining facts with dimensions for fact listings
- Extensions to Date class to handle calculation of fiscal year elements
- Report helper for creating a view of cubes with drill down
- Role playing (i.e. views on the same dimensions - for the date dimension)
- Slowly changing dimensions
- Variable depth hierarchies (i.e. ragged hierarchies)
- ETL tool
What Might Appear in the Future?
- Dimensional modeling concepts not yet implemented:
- Semi-additive facts (i.e. averaged values) and non-additive facts
- Junk dimensions
- Periodic snapshot and accumulating snapshot
- Year-to-date calculated fields
- New aggregation implementations
- Create a CustomerDimensionBuilder
- Docs, docs and more docs
- A live demo site to show how AW works
- Drag and drop slice and dice (i.e. changing currently viewed cube dimensions on the fly)
If you would like additional assistance with ActiveWarehouse then join the mailing list, contribute comments, patches, new code, whatever, and let's get warehousing!