0

我的事件流通常包含一个打开事件,然后是一个关闭事件。让我们相应地称它们为Oand C。但是,有两个细节:

  1. O可能后跟一个或多个O之前C到达
  2. C可能完全丢失(见下文)

假设C应该不迟于一段时间T后到达O。否则,C视为缺失。当 aC最终到达时,所有比它O更早到达的 open s都被认为是孤儿并且没有兴趣。TC

我希望 esper 触发每一对O后跟C,其中最早O不远TC被选中。任何O介于两者之间以及之前选择的 sO都将被跳过。

例如,

O1 O2 O3 ... C

应该选择(O1,C)如果datediff(O1, C) < T

(O2,C)如果以上为假,则应选择datediff(O2, C) < T

等等

A 在处理这个问题时发了脾气。看来我的心智与esper不兼容。您的帮助非常感激。

4

1 回答 1

0

这可能像下面这样,想法是当事件到达时,我们想要查看最后 1 分钟的事件并找到第一个与时间差异匹配的事件。如果需要,请使用第二条语句过滤掉没有匹配项的内容。

插入 Pair select , (select window( ).firstOf(v => v.time - e2.time < T) from Event.win:time(1 min) as e1) 与 Event as e2 匹配

select * from Pair wherematched 不为空

于 2013-06-25T13:20:34.627 回答