按时间戳排序的流数据聚合



我有一个用例,我从客户端接收事件,其中一些事件在逻辑上是相关的(属于单个会话),并且事件之间基于时间戳有明确的顺序。

现在,我想构建一个解决方案,该解决方案应该继续聚合事件,直到按照时间戳的递增顺序接收到特定组的最后一个事件。因此,如果接收到一个不正常的事件,则应保持该事件,直到接收到之前的事件为止。然后,根据特定组的密钥将其存储在数据存储中,如HBase。

问题是,一次这样的不完整组的数量可能达到数百万,并且需要能够支持快速附加到不完整组并将接收到的事件无序保存的东西。我该怎么做?

您可以使用事件流处理或复杂的事件处理框架http://en.wikipedia.org/wiki/Complex_event_processing.您编写一个查询/模式,将其加载到引擎中,向引擎提供事件,查询将不断更新或在时间到来时激发。

我喜欢Codehaus Esper,它是开源的,但在非付费版本中受到限制,例如,我必须实现事件的存储并在应用程序启动时重新加载它们。另一个选择是Drools Fusion,但我在大约5年前试用时发现它有缺陷。我最近在调查WSO2 CEP,但这件事的记录严重不足。

相关内容

  • 没有找到相关文章

最新更新