我们有一个DynamoDB数据库,它将机器传感器信息存储在以下“结构”中:
HashKey: MachineNumber (数字) SortKey: EntryDate (String)列: SensorType (String),SensorValue (Number)
传感器几乎每3秒产生一次信息,我们希望测量一个(接近)实时的KPI,来计算过去10分钟内一个区域有多少台机器停机。一个区域可以有近10000台机器,所以迭代DynamoDB需要花费几乎10+分钟的时间来响应。做这件事最好的方法是什么?
发布于 2015-08-27 21:00:30
描述在对问题的评论中讨论过的答案。
在一个非常大的表上执行表格扫描是昂贵的,应该避免。DynamoDB流提供了在插入记录后使用自己的自定义代码处理记录的能力。这使得聚合或其他计算能够在几乎实时的情况下异步执行。然后,可以在一个单独的DynamoDB表中写入或更新结果。
您可以在自己的服务器上运行处理DynamoDB流消息的代码(例如: EC2),但是使用Lambda可能更容易。Lambda允许您编写将在完全管理的AWS基础设施上运行的Java或NodeJS代码,所以您所需要担心的就是代码。
https://stackoverflow.com/questions/32228935
复制相似问题