Esper 生成不带窗口的重复数据消除事件流

Esper 生成不带窗口的重复数据消除事件流,esper,Esper,我正在尝试生成一个重复数据消除事件流,而不指定任何用于重复数据消除的窗口策略。在我的查询中使用output first every子句似乎能达到预期效果,但当这些查询直接插入到流中时,效果就不一样了 对于下面给出的示例,假设我试图在4小时的窗口内仅检测每辆车发出的第一声喇叭声 (define-event-type! "CarEvent" {:license_plate java.lang.String}) (define-event-type! "HonkEvent" {:volu

我正在尝试生成一个重复数据消除事件流,而不指定任何用于重复数据消除的窗口策略。在我的查询中使用
output first every
子句似乎能达到预期效果,但当这些查询直接插入到流中时,效果就不一样了

对于下面给出的示例,假设我试图在4小时的窗口内仅检测每辆车发出的第一声喇叭声

(define-event-type! "CarEvent"
   {:license_plate java.lang.String})

(define-event-type! "HonkEvent"
   {:volume java.lang.Integer}
   :supertypes #{"CarEvent"})

(define-variant! "HonkEventDeduplicated" "HonkEvent")

(define-statement! "context-IndividualCarContext"
  "create context IndividualCarContext partition by license_plate from CarEvent")

(define-statement! "populate-HonkEventDeduplicated"
  "context IndividualCarContext
   insert into HonkEventDeduplicated
   select * from HonkEvent
     group by license_plate
     output first every 4 hours")

但是--
select*from honkeventdeducplicated
会在每次鸣叫事件中触发,即使同一辆车连续鸣叫两次。

不是使用
output first every
子句过滤,而是使用
std:firstunique
视图:

(define-statement!
  "populate-HonkEventDeduplicated"
  "insert into HonkEventDeduplicated
  select * from HonkEvent.win:time(4 hours).std:firstunique(license_plate)")