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

时间:2016-05-30 13:54:46

标签: amazon-web-services aws-lambda amazon-kinesis aws-iot

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

然而,我认为使用风暴对于这么简单的任务来说太过分了。我想要做的就是将数据保存在数据库中并显示图形(30分钟,1小时或自定义日期)。这是我到目前为止所想的

Device -> AWS IOT(mqtt) -> Kinesis -> x -> dynamoDB -> Presenter Web APP (Laravel) 我可能必须使用ClickStream示例中提到的Node.jsRedis Pub/Sub来实时更新图形和警报。

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

  • 对解决方案的任何想法?
  • AWS没有KCL for PHP,替代品或解决方案?因为我熟悉PHP但不熟悉Java。

2 个答案:

答案 0 :(得分:1)

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

  1. 将数据提取到系统中。
  2. 读取X期至Y期的数据。
  3. 在网络前端绘制图表。
  4. 摄取部分由AWS-IOT负责。您应该做的第一步是创建一个SNS主题,并将所有IoT数据发布到SNS主题。在这里,您可以灵活地为每个数据类型创建一个主题(例如:温度,压力),并将消费者SQS队列附加到主题以累积消息。对于持久性DB,一个消费者可以是DynamoDB表,另一个消费者可以是Lambda函数,它执行某种过滤和数据转换并更新您的缓存。如果您需要对数据执行某种OLAP / Analytical查询,请考虑使用Redshift作为消费者之一。您必须达到特定要求才能完成设计。

答案 1 :(得分:0)

您是否考虑过在IoT Core中收到mqtt消息后将数据路由到AWS IoT Analytics?这样,您就可以摆脱Kinesis,Dynamo和您的表示层带来的所有基础架构繁重负担。

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