我有以下用例,我试图用EPL编写,但没有成功。我正在生成不同类型的分析事件,这些事件以不同的时间间隔(1分钟,5分钟,10分钟等)生成。在特殊的分析中,我需要收集4个特定的 每个时间间隔(1min,5min,10min等)都会返回不同类型的Analytics(分析)事件(我将从中计算出另一个分析事件)。这里的条件是,在每个整个时间间隔上,例如,每隔一分钟00:01:00、00:02:00,我想返回4个事件,或者如果事件在((例如2s)。
情况1:事件A,B,C,D在时间00:01:00.500、00:01:00.600、00:01:00.700、00:01:00.800到达-在第四事件到达esper之后,返回所有4个事件的汇总事件
情况2:闲置时间为2秒,事件A,B,C,D在00:01:00.500、00:01:00.600、00:01:00.700、00:01:02.200到达-因为没有到达最后一个事件超出了闲置时间
答案 0 :(得分:0)
您可以像这样每分钟创建一个触发事件:
insert into TriggerEvent select * from pattern[timer:schedule(date:'1970-01-01T00:00:00.0Z', period: 1 minute, repetitions: -1)]
每分钟到达的触发器可以启动一个模式或上下文。模式似乎足够好。这是这样的:
select * from pattern [every TriggerEvent -> (a=A -> b=B -> c=C -> d=D) where timer:within(2 seconds)]