我有一个关于如何聚合进入DynamoDB的时间序列数据的问题。
目前,每台设备每30秒就会有一次能耗数据进入DynamoDB。这些设备也分布在许多时区。
我想显示一小时,一天,一个月和一年的总能耗。
我知道我能做到的一种方法是在1小时的cron作业上运行一个Lambda,它获取前一小时的所有读数并将它们全部加在一起,然后将它们记录在另一个表中。
同时在那个cron工作中,Lambda可以检查是否有任何设备时区只有他们的日期结束,如果是这样,那么在过去的24小时内批量阅读一天。
同样适用于月份和年份。
但是有些东西告诉我还有另一个更好的方法来做这一切(可能使用了一些我没想到的其他AWS服务)
答案 0 :(得分:0)
您可以使用dynamoDB流而不是cron作业。
在这种情况下,当记录进入数据收集表时,它可以启动一个更新聚合表的lambda函数。这将使您能够更及时地更新聚合表。您的记录聚合的小时/日/月/年的逻辑应该在该lambda中。
另外,我会使用云观察事件代替cron ......