1

我有一个用户案例,我从客户端接收事件,其中一些事件在逻辑上相关(属于单个会话),并且在基于时间戳的事件之间存在明确排序。按时间戳排序的流数据聚合

现在,我想要构建一个解决方案,该解决方案应该继续聚合事件,直到按照时间戳的递增顺序接收到最后一个特定组为止。因此,如果收到的活动不按顺序进行,应该一直进行下去,直到他们收到的活动为止。然后,根据该特定组的密钥将它存储在HBase等数据存储中。

问题是此类不完整的组的数量可能会达到数百万,并且需要一些能够支持快速附加到不完整组并且保持无序接收的事件。我应该怎么做呢?

+0

任何小洞察力都是可观的。谢谢! – ptntialunrlsd 2015-04-03 12:20:42

回答

0

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

我喜欢Codehaus Esper,它是开源的,但在未付费版本中受到限制,我不得不实施存储事件并在应用程序启动时重新加载它们。另一种选择是Drools Fusion,但是当我在5年前尝试使用时,我发现它是越野车。我最近正在研究WSO2 CEP,但这件事严重缺乏证据。