amazon Web Services (AWS)——聚合DynamoDB数据



我们有一个DynamoDB数据库,它将机器传感器信息存储在以下结构中:

HashKey: MachineNumber (Number)SortKey:输入日期(字符串)列:SensorType (String), SensorValue (Number)

传感器几乎每3秒生成信息,我们希望测量(接近)实时KPI,以计算过去一小时内某个地区有多少台机器停机超过10分钟。一个区域可以有近10000台机器,因此遍历DynamoDB几乎需要10分钟以上的响应时间。最好的方法是什么?

描述问题评论中讨论的答案


在一个非常大的表上执行表扫描是非常昂贵的,应该避免。DynamoDB Streams提供了在插入记录后使用您自己的自定义代码处理记录的能力。这允许以近乎实时的方式异步执行聚合或其他计算。然后可以在单独的DynamoDB表中写入或更新结果。

您可以在自己的服务器上运行处理DynamoDB流消息的代码(例如:EC2),但是使用Lambda可能更容易。Lambda允许您编写Java或NodeJS代码,这些代码将在完全托管的AWS基础设施上运行,因此您只需要担心代码。

最新更新