存储AWS IoT数据并请求实时和批量数据?

时间:2018-02-21 10:43:46

标签: amazon-web-services amazon-dynamodb aws-iot

目前我正在开展一个项目,我在AWS IoT中拥有7个相同的传感器(温度,光线,运动)。这些传感器放置在建筑物的不同房间。这些传感器每5分钟发送一次更新。

我需要一种安全的方式来将数据存储在AWS中并将其交给外部客户。 为了展示这一点,我想创建一个仪表板,显示建筑物的楼层地图,并具有以下功能:

  • 获取每个传感器的最新数据
  • 在图像上的正确位置显示温度
  • 发生传感器更新时实时更新数据
  • 显示所选传感器的图表和所有数据

我目前在1个DynamoDB表中保存了所有传感器的数据,并以这种方式创建了一个工作API:

API Gateway -> AWS Lambda -> DynamoDB <- AWS IoT <- Sensors

但问题在于它不会实时更新。而且很难从DynamoDB中获取最新价值。所以我需要一个更好的方法。

2个问题:

  • 为此目的,在AWS中存储数据的最佳方法是什么?以及如何创建用户友好且安全的API来请求实时和批量数据?
  • 是否存在可以在静态图像上显示传感器数据的仪表板工具?

1 个答案:

答案 0 :(得分:0)

在AWS中存储数据的最佳方式在很大程度上取决于您希望如何访问数据。从您描述的用例中,Dynamodb将与AWS IOT MQTT消息代理的Web套接字连接一起使用。

对于Dynamodb,我会考虑创建一个表,其中包含作为传感器ID的partion键,以及一个作为时间戳的排序键。然后,您可以轻松查询表格以获取每个传感器的最新记录。将ScanIndexForward参数设置为false,以便在查询中按降序返回记录。

对于Realtime消息,您可以使用MQTT over Web套接字从浏览器连接到AWS IOT MQTT消息代理。您可以订阅传感器发布到的相同主题并接收实时更新。