9

我有一个事件流和一个 key-val 存储。值大小受 4Kb 限制。事件发生率不是很高——一天最多几百个。

在这个值中,我需要存储一个数据结构的序列化表示,它提供了一种有效的机制来读取、存储和更新为期 3 个月的聚合事件计数,每天和每周聚合以及每小时 1/2 的滑动窗口。

该解决方案需要针对简单的事件计数聚合和事件计数标准偏差有效地执行以下任务。(以下所有任务的最长期限为3 个月):

  1. 不断更新(以惰性方式 - 随着相应事件的到来) - 如果最新计算的聚合太旧 - 抛出过时的数据并创建新的聚合
  2. 由读取请求触发的更新(用户请求一些信息,例如特定用户的事件计数,单个用户的事件计数标准偏差等),以防最新计算的聚合太旧 - 抛出它们

我想知道:是否有任何 java 开源框架可以帮助实现上述内容

我也很欣赏设计建议:设计模式等。

使用标准 java API 从头开始​​实施该解决方案并不难,但在这样做之前,我会很感激一些开源框架建议(如果有的话)。

除了一些理论文章、基于 SQL 的解决方案和 IBM(称为SPL的非开源工具包)之外,谷歌搜索解决方案并没有将我带到任何地方。

4

1 回答 1

3

看看埃斯珀

StreamCruncher

于 2012-05-07T15:34:48.907 回答