我们是Esper,在某些事件集上聚合分组,但是esper并未取消引用该聚合对象。
esper queury
private static final String HOURLY_CONTEXT =
"create context HourlyRollup start(0,*,*,*,*,0) end(59,*,*,*,*,59)";
这是我们的文化背景...
查询中的这个bean没有被取消引用,我们正在获取这些对象的gbs。
enter code here
private static final String HOURLY_STATEMENT =
"context HourlyRollup "
+ "select count(*) as xcount,hourlyFloor(min(from_time)),a,b,c,d,e,f,"
+ "g,h,sum(h),sum(i),j,k,l,"
+ "m,n,y,o,p,q,r "
+ "from io.common.Bean where Dir in (-5,-3,0,1) "
+ "group by a,b,c,d,e,f,g,Direction,h,"
+ "i,j,k,l,m,l,n,o,p output all "
+ "when terminated order by a,b,c,Dir,d,e";
private static final int HOURLY = RollupPeriod.HOURLY.ordinal();
答案 0 :(得分:0)
当选择子句选择group-by子句中未包含的每个事件的属性时,这意味着Esper不能忘记事件本身,并一直保留事件,直到需要输出和终止为止。
这类查询为http://esper.espertech.com/release-8.2.0/reference-esper/html_single/index.html#processingmodel_aggregation_batch_group_agg
当选择子句仅具有聚合的属性以及出现在group-by子句中的未聚合的属性时,这意味着Esper可以忘记该事件,而是保留聚合的值。 这类查询为http://esper.espertech.com/release-8.2.0/reference-esper/html_single/index.html#processingmodel_aggregation_batch_full_agg
因此...请检查select子句中的表达式,并确保事件属性位于group-by子句中,或已全部聚合,例如“ last(r)”或“ first(r)”或相似。