Esper - 通过分区进行聚合

时间:2014-08-24 15:09:28

标签: esper

我是Esper的新手。我坚持执行这个问题。

输入传感器事件数据的格式如下:(id,time,value,intensity) 我想为每个id和强度进行值聚合。

因此,输出数据的格式应为:id,start_time,end_time,聚合值,强度(高,低,中) 其中start_time是分析开始的时间,end_time是分析结束的时间,分析是在11秒的滑动窗口上完成的。 对于输入数据:

1,t1,x1,i1 1,t2,x1,i1 1,t3,x2,i1 1,t4,x3,i1 1,t5,x5,i2 1,t6,x6,i1 2,t7,x7,i1 输出结果如下: 1,t1,t1,v1,i1 1,t1,t2,v2,i1 1,t1,t3,v3,i1 1,t1,t4,v4,i1 1,t5,t5,v5,i2 1,t6,t6,v6,i1 2,t7,t7,v7,i1等。

在结果集中,我们可以看到数据按id和强度分组,但是一旦出现不同的(id,intensity),就会停止分析。 如何以此格式获得结果? 我尝试使用prev()函数,但这不起作用,因为我不知道会有多少事件。 请建议我应该尝试解决这个问题。

1 个答案:

答案 0 :(得分:0)

“上一步”功能可以告诉您前一组停止的时间。您可以让“prev”生成一个序列结束的指示符。例如,当“prev”遇到改变字段时,“插入来自事件的触发器选择字段,其中prev(字段)<>字段”将生成触发事件。然后可以使用触发事件来执行分析并可以删除行。命名窗口可用于存储相关行,直到完成分析。