<分区>
我有一个事件流和一个键值存储。 值大小限制为 4Kb。事件发生率不是很高 - 最多一天数百个。
在这个值中,我需要存储一个数据结构的序列化表示,该数据结构提供了一种有效的机制,用于读取、存储和更新 3 个月内的聚合事件计数,每日和每周聚合以及 1/2 的滑动窗口小时。
该解决方案需要针对简单的事件计数聚合和事件计数标准差有效地执行以下任务。 (以下所有任务的最长期限为3 个月):
- 持续更新(以惰性方式 - 当相应的事件到达时) - 如果最新计算的聚合太旧 - 抛出过时的数据并创建新的聚合
- 更新由读取请求触发(用户请求一些信息,例如特定用户的事件计数、单个用户事件计数的标准偏差等),以防最新计算的聚合太旧 - 抛出它们
我在想:有没有java开源框架可以辅助实现上述功能?
我也很感激设计建议:设计模式等。
使用标准 Java API 从头开始实现该解决方案并不难,但在实现之前,我希望能提供一些开源框架建议(如果有的话)。
除了一些理论文章、基于 SQL 的解决方案和 IBM(名为 SPL 的非开源工具包)之外,谷歌搜索解决方案并没有带我到任何地方。