AWS 将数据从 IOT 流式传输到仪表板图表

AWS Stream data from IOT to dashboard graphs

我们需要从 1000 多个物联网设备中获取数据(温度、压力、转速等总共 50 多个参数)并在仪表板上显示,无需太多处理(仅检查数字是否在范围内,否则会发出警报)但真实时间。 我查看并测试了许多 aws 博客资源,例如 Kinesis Storm ClickStream App

但是我认为使用 storm 对于这样一个简单的任务来说有点矫枉过正。我想要做的就是将数据保存在数据库中并显示图表(30 分钟、1 小时或自定义日期)。这是我目前的想法

Device -> AWS IOT(mqtt) -> Kinesis -> x -> dynamoDB -> Presenter Web APP (Laravel) 我可能必须使用 Node.jsRedis Pub/Sub,如 ClickStream 示例中所述,以实时更新图表和警报。

我不想使用 Apache Storm,因为它在 Java 中并且有学习曲线(并且找不到任何好的资源)。我知道我可以使用 Lambda 但不确定它会如何扩展。

Apache storm 是一个分布式事件处理框架。在您的用例中,您似乎没有对事件执行任何计算。基本上,您的应用程序执行三项任务:

  1. 将数据引入系统。
  2. 读取X到Y的数据
  3. 在 Web 前端绘制图表。

摄取部分由 AWS-IOT 负责。您应该做的第一步是创建一个 SNS 主题并将所有 IoT 数据作为消费者之一发布到 SNS topics. Here you get the flexibility to create one topic per datatype(ex: temperature, pressure) and attach consumer SQS queues to the topics to accumulate messages into. For a persistent DB, one consumer can be DynamoDB table, another consumer can be a Lambda function which performs some kind of filtering and data transform and updates your cache. If you need to perform some kind of OLAP/Analytical queries on the data, then consider using Redshift。您必须了解具体要求才能完成您的设计。

您是否考虑过在 IoT Core 中收到 mqtt 消息后将数据路由到 AWS IoT Analytics?通过这种方式,您可以通过 kinesis、Dynamo 和您的表示层摆脱所有基础设施的繁重工作。

AWS IoT Analytics 为您提供摄取、数据准备和查询功能。将数据存储在已处理的数据存储中后,您可以使用 AWS QuickSight 将其可视化。