We've implemented Abacus on a couple of operations. We haven't gone on a replace all PE's exercise; don't fix what isn't broken. We will replace the PE's over time to make the solution more maintainable. I have looked at "automating" this migration; it looks possible (plus I saw a presentation on this at the UC). Bear in mind that this is a V1 product; we also did a fair amount of testing on the beta releases.
- Backfilling - far easier to use that the PE recalculation function
- Roll ups - rolling up a hierarchy. The one problem is that it appears to only do one level.
- Event frame generation - for simple event frames this is great. It won't replace EFGen for batches just yet
- Multiple triggers
- Templates - it is a real time saver to add the calcs to a template. However, there are some limitation; e.g. if you set a time true parameter on an EF generator you can't change this on the individual instances.
- Performance - I haven't hit any issues
- Reliability - again no issues.
- The Analysis dashboard in PSE is great.
The not so good:
- This doesn't replace totalizers or ACE.
- No control over the result timestamp.
- Rollups only do a single level
- I don't believe that you can have multiple analysis services running. However, as I've said performance hasn't been an issue yet.
All in all I would say that this is a pretty good start. I would definitely recommend using Abacus (sorry Asset Based Analytics).
Good summary there from Michael.
To add a couple of items to it:
The not so good:
- It has a pretty slick UI.
- Steam Table functions!
- PIBufss now supports multi-collective writes so you can bring calculations together in Abacus.
- It performs well, very well for most scenarios. (Repeat of what Michael mentioned.) One feature I was most impressed with.
- There is a way to stream events via a custom data reference into the analysis engine from non-PI sources for event based scheduling.
I've built a PE => Abacus parser and it works great but you really miss out on defining a hierarchy or associating calculations with a template etc. So I did it as challenge but soon realised that it doesn't really help you in the long run.
- Some issues if you're x86 PSE and add a calc with an x86 DR that is not compatible with the Analysis Service but it appears to evaluate fine.
- You can generate EFs but cannot manipulate Attributes of a generated EF.
- Can't trigger calculations based on generation of an Event Frame.
- Needs custom functions.
- UOM within calcs was an after thought for v1.
Thanks Michael and Rhys for sharing your experiences! It sounds like there are a lot of good things, but also some ways for things to go.
The ability to use the Analysis Service with custom DR's sounds quite powerful in itself though!
From your experience with deploying AF analytics, would you say there is no longer a compelling reason or use case to implement a new solution using PE's? (Other than perhaps if a proper AF tree wasn't available?). Or have you still run into situations where you felt it would have been better (for whatever reason) to implement the calculation in a PE?
My initial impression is that since the analytics use PE syntax, that most, if not all, of the functionality of the original PE's should be possible in Asset Based Analytics, but I haven't done any complete studies of this yet.
I would say that there is no compelling reason to use PE period. Even if you don't have an AF tree you can simply create an element. Only reason I would use PE now is if there was a function that I really need that wasn't in Abacus; like you I haven't done a comparison.
There is one more not so good I would like to add (I'm sure the product team is looking at this thread). Rollup don't have a weighted function; e.g. weighted average. You can do weighted rollups but you land up with a number intermediate calculations.
The way we implemented Rollup has a somewhat hidden feature, in that you can add/remove child elements and the Rollup continues to work without you having to change the analysis. It's subtle, but we think it's beneficial to customers that have to move elements around the hierarchy and in this way they don't have to redo the Rollup analyses. As such, it's not possible to do a weighted average with the current design.