Dale LaBossiere created EDGENT-409:
--------------------------------------

             Summary: Add analytic aggregations for non-JsonObject types
                 Key: EDGENT-409
                 URL: https://issues.apache.org/jira/browse/EDGENT-409
             Project: Edgent
          Issue Type: New Feature
          Components: Analytics
            Reporter: Dale LaBossiere
            Assignee: Dale LaBossiere


On more than one occasion I've found myself wishing for analytic aggregations 
like our {{o.a.e.analytics.math3.stat.Statistic.MEAN}}, etc but either being 
unable to use {{JsonAnalytics}} because it lacks batched aggregation support or 
simply wanting something less cumbersome to use because I had a simple use case 
- e.g., wanting to compute a windowed MEAN for a TStream<Double> yielding a 
stream of TStream<Double>.

Life would be better if there were Collection-based (not TStream/TWindow based) 
aggregation methods supporting the same set of Statistic and Regression 
aggregate ops that have been defined for use on JsonObjects.  For example,
{code}
static double aggregate(Collection<? extends Number> c, UnivariateAggregate 
stat)
{code}

See the associated PR for the full API, etc.

Unfortunately the existing {{o.a.e.analytics.math3.stat.Statistic}} and 
Regression enums lack a "Json" name or package prefix though they are 
inherently tied to other unnecessarily Json-specific interfaces/classes.  That 
results in the need to define tuple-type-agnostic analogs like Statistics2 and 
Regression2 (for lack of something better) and the supporting 
interfaces/classes.

Not included with this JIRA/PR is the opportunity to then unify around using 
these new tuple-type-agnostic Statistic2,Regression2 by augmenting 
JsonAnalytics to have methods that take them as arguments.  Then json-specific 
Statistic, Regression and the JsonAnalytic methods that use them can be marked 
deprecated.




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to