I’d like to add to the emerging Essbase Hybrid Aggregation knowledge base with a few clarifications, gleaned from testing in active projects.
The motivation for me came from my investigation into the feasibility of using a hybrid approach for an application with a lot of heavy allocations done in business rules. I had read that not all operations worked in hybrid, but I couldn’t tell if that situation pertained only to member formulas in retrieves. The general direction I got from the documentation was that, if the engine can’t do it in hybrid (ASO), it will default to BSO. So – if your business rules/calcs worked fine in BSO with dynamic dimensions – did that mean they would work fine in hybrid? It seems like a great pattern to build an app with dynamic dimensions, that calculates in the background in BSO, but aggregates in the front-end in ASO.
Could it work? Unfortunately, the answer is: no, not at this time.
Essentially it appears that, while hybrid will default to BSO, and complete a calculation, it apparently has to think about it for each block it handles. So, for instance, a Datacopy of a couple hundred blocks will take a couple minutes to complete. It didn’t appear to me to matter whether the members being copied were dynamic calc or not, as long as they were upper-level. I couldn’t even necessarily limit the performance drain to upper-level. In general, the hybrid engine thinking behind the scenes is definitely not faster, nor even nearly as fast as BSO as we know it, for an unknown amount of calcs. That finding immediately ended the experiment for me!
So, in short, for calculations, Hybrid Aggregation does not quickly default to BSO when needed, making its suitability for complex calculations highly suspect. Other options to consider? Using multiple plan types seems like a great pattern, if you have the availability (one plan type being dynamic BSO for calcs, and one being Hybrid for retrieves). Also – hopefully Oracle will figure out how to change the hybrid setting in run-time, so you can turn it on and off at will, as opposed to the current implementation that requires a bounce of the Essbase service. Until then, ‘the way it thinks’ is going to remain a bit of a mystery for me.
If you have any new or contradictory experiences on using Hybrid Aggregation, I’d be happy to hear about them! Feel free to reach me at:
Jon Keskitalo, email@example.com