用于聚合和滑动窗口实现的java框架

avi*_*iad 9 java architecture aggregate data-processing

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

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

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

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

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

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

使用标准java API从头开始实现解决方案并不困难,但在此之前我会欣赏一些开源框架建议(如果有的话).

除了一些理论文章,基于SQL的解决方案和IBM(非开源工具包称为SPL)之外,谷歌搜索解决方案并没有引导我.