Steve Rowe wrote: ↑Wed Oct 12, 2022 9:05 am
I'll play devil’s advocate in the interest of keeping the debate going! No criticism intended!
...
@GTonkin
Lightly used KPIs. Not convinced on this one...In terms of calculated data points there would be no difference between a MDX and ruled approach, only the data points that are requested are calculated. With the rules approach we would have the feeder overhead which might be large. This could be minimised using a C level KPI / feederless approach…. I'm not sure I'm buying the cube bloat argument. Delivering it quickly without recompiling the rules and maybe getting tangled up in the customers change control are clear benefits though.
...
In the view I am talking about, the user is looking at a high level requiring all underlying points to calculate.
Tested this quickly again to be sure and may be a nuance with the particular system/rule being added.
Essentially have this:
['Log Fee %'] = C: ['Sales Measures':'Log Fees'] \ ['Sales Measures':'Total Sales Revenue'];
After about 10 minutes the rule finished saving and memory usage had doubled, no feeders. Opening the view also took ages with the 3 measures above.
Does not make sense, so maybe this in an edge case and some other dependencies are causing this behaviour and need to be further investigated.
Happy to be wrong here but still think there is value in having infrequently used calculations only needed at certain levels, done in the presentation layer.
Edit/Update: Looks like an edge case as in this particular model, Log Fee % is populated at a Leaf level via process.
In live plans, the percentage is used to derive Log Fees. There are multiple sources too, Input used to store the % from the process, Rule-Derived to store the derived Log Fee and you then have layers for adjustments, restatements etc.
Where there is not leaf level value, proxies are used e.g. Brand on the product dimension, Customer group etc. etc. These are C levels.
The Log Fee % at a C level is then trying to be calculated which is in turn used in Log Fee and in some cases I picked up circular references when drilling into the data - depends where a proxy is being used.
So either I would need to write a couple of rules to do this between live and static rules or add another measure where we have the seeding for the Log Fee %.
In short, probably an isolated case but using the presentation layer was a quick (and possibly dirty) way around having to jump through some hoops to get the rules working as required.