Esper 中的分组和批处理事件

Grouping and batching events in Esper

我正在尝试按用户对事件进行分组,然后 return 将它们分批(每个用户)。例如,如果 3 个用户每个发送 5 个事件,我希望从 esper 输出 3 批 5 个事件。

使用以下 EPL,我能够验证创建了 3 个数据 windows,并且每个 window 中有 5 个事件。

select * 来自 EVT.std:groupwin(用户).win:time_batch(2).std:size()

但是,当我删除 std:size() 时,它 return 将所有 15 个事件集中在一个批次中。据我了解,这是由于 std:groupwin grouped-window 视图如何被 std:merge 视图评估。

如何从每个数据 window 输出批事件而不将它们全部合并在一起?

我想你想接收对侦听器的多个调用而不是单个调用?单个调用通常更有效,因此这是默认值。我想你想使用 "for"。 link 是 http://esper.codehaus.org/esper-5.1.0/doc/reference/en-US/html_single/index.html#epl-grouped-delivery