java 设计一个真实的时间计算/速度计数器引擎

8yoxcaq7  于 2024-01-05  发布在  Java
关注(0)|答案(1)|浏览(155)

我的目标是创建一个针对在线交易数据量身定制的低延迟计算引擎。我将从交易负载中提取电子邮件、电话号码和客户设备等信息,然后计算基于时间的聚合,例如过去5分钟内与特定电子邮件相关的交易数量或过去10天内与特定电话号码相关的交易数量。
我应该如何设计这个系统?
我尝试将原始交易负载存储在Redis中,并在收到请求时执行聚合查询。对于时间窗口超过1天的聚合,我们离线计算它们。

2o7dmzc5

2o7dmzc51#

也许我错过了什么,但你所需要的只是一个Transaction表。

  1. Transaction
  2. -----------
  3. Transaction ID
  4. Email
  5. Phone Number
  6. Customer Device
  7. Transaction timestamp

字符串
其中Transaction ID是一个自动递增的主键,你在Transaction timestamp降序上定义了另一个非唯一的索引。我们降序排序的原因是,当按Transaction timestamp降序排序时,最近的交易在前面。
因为存储的是时间戳,所以可以查询特定的日期和时间,只需要为感兴趣的时间段生成适当的WHERE子句。
通过计算为特定查询检索到的行数来获得计数。

相关问题