如何解决为分析应用构建实时的每日/每月/每年数据聚合系统
我有一个用例,我有一个传入的事件流,其中包含有关我们客户的事件信息。这些事件包含诸如客户 ID、订单类型、订单 $ 价值、订单中的商品数量和其他数据等信息。
我正在尝试构建一个系统,以每天、每周、每月和生命周期的聚合索引这些信息。由于数据是实时传入的,我希望处理过程尽可能实时。
我考虑的一个选择是手动索引这些数据,因为它进入这些聚合级别。这样做的问题是,过去突然出现的迟到事件可能会导致每周、每月和每年级别的级联上游计算。
另一种方法是简单地将所有数据放入数据库中,然后运行一些批处理作业以定期计算摘要。
我的最终目标是预先计算快照并将它们放入 DynamoDB 或 MongoDB,以便将此信息提供给我们的应用程序客户端。
这个问题似乎是数据工程/处理与构建数据存储以服务于实时应用程序之间的交叉问题。如果有人对方法有任何建议,我会全神贯注!
Note: In terms of scale,This system will process millions of events per day.
解决方法
在我看来,您应该采用批处理作业方法并定期进行评估。
原因:由于您提到的过去发生的迟到事件,您被迫随时可能重新计算任何事情,这将导致内部逻辑困难,并对性能产生不可预测的影响。
另外,我会质疑您的实时要求。谁是评估结果的接收者,出于什么目的以及多久查看一次这些结果?提供不包括最后一个时间间隔(比如当天或当前小时)的结果可能是可以接受的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。