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

标签 java architecture aggregate data-processing

<分区>

我有一个事件流和一个键值存储。 值大小限制为 4Kb。事件发生率不是很高 - 最多一天数百个。

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

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

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

我在想:有没有java开源框架可以辅助实现上述功能

我也很感激设计建议:设计模式等。

使用标准 Java API 从头开始​​实现该解决方案并不难,但在实现之前,我希望能提供一些开源框架建议(如果有的话)。

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

最佳答案

看看Esper .

StreamCruncher .

关于用于聚合和滑动窗口实现的java框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380743/

相关文章:

java - 使用方法引用替换链式方法调用

java - JAR 文件中缺少类 java.lang.NoClassDefFoundError : or g/eclipse/core/runtime/spi/IRegistryProvider

architecture - ATM 机的数据系统是否使用最终一致性?

c# - ASP.NET MVC 体系结构 : ViewModel by composition, 继承还是重复?

architecture - Redis 配置

aggregate - Tableau 聚合为值范围的容器

rest - 聚合和事务的 DDD 问题

java - 使用不带 LoadTimeWeaving 的服务自定义 UserDetails

java - 使用 SAP Cloud SDK 对扩展实体执行过滤

python - groupby 和选择模式并连接回原始数据帧