[Mondrian] All Members vs Aggregate
tpalanis at thoughtworks.com
Tue May 8 10:29:35 EDT 2007
For implementing Sql with Grouping Set we need to change the way the
following classes interact during loading of Cell request data.
1. fastBatchingCellReader.loadAggregations() -> batch.loadAggregation()
2. batch.loadAggregation() -> aggregationManager.loadAggregation()
3. aggregationManager.loadAggregation() -> aggregation.load()
4. aggregation.load() -> Segment.load()
Using SQL with Grouping Set function needs to be decided at the Batch
level, once we identify the batches that can be grouped then we need to
tag them together and pass this information down to Segment.load() to fire
single SQL for multiple batches.
Segment.load() static method needs information about all the segment
instances which are going to be queried together along with some
additional information from Aggregation/Batch class.
So we need to put together all the segment instances from multiple grouped
batches and pass it to Segment.load().
We are thinking of the following approach to achieve this,
Instead of aggregation.load() calling Segment.load() with its Segments
list, aggregation.load() need to return Segment list of each batch to the
FBCR(or class representing Grouped Batch).
Then FBCR will group the segments of grouped batches and make a call to
Segment.load static method to fire single sql with grouping sets and
populate all those Segments.
We are close to finishing a working prototype based on the above approach.
Hence would like to get your early feedback to ensure that we are on right
Code posted at http://forums.pentaho.org/showthread.php?t=53644 is POC for
logic of grouping the Batch and extracting information from a grouping set
sql to multiple segments of multiple batches.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mondrian