【问题标题】:AWS Stream data from IOT to dashboard graphsAWS 将数据从 IOT 流式传输到仪表板图
【发布时间】:2018-06-23 15:59:00
【问题描述】:

我们需要从 1000 多个 IOT 设备(温度、压力、RPM 等总共 50 多个参数)中获取数据,并在没有太多处理的情况下将其显示在仪表板上(只需检查数字是否在范围内,否则会发出警报)但实时显示。 我审查并测试了许多 AWS 博客资源,例如 Kinesis Storm ClickStream App

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

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

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

  • 对解决方案有什么想法吗?
  • AWS 没有适用于 PHP 的 KCL、替代方案或解决方案?因为我熟悉 PHP 而不是 Java。

【问题讨论】:

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


    【解决方案1】:

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

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

    摄取部分由 AWS-IOT 负责。您应该做的第一步是创建一个 SNS 主题并将所有 IoT 数据发布到 SNS 主题。在这里,您可以灵活地为每种数据类型创建一个主题(例如:温度、压力),并将消费者 SQS 队列附加到主题以将消息累积到其中。对于持久数据库,一个消费者可以是DynamoDB 表,另一个消费者可以是Lambda 函数,它执行某种过滤和数据转换并更新您的缓存。如果您需要对数据执行某种OLAP/Analytical 查询,请考虑使用Redshift 作为消费者之一。您必须了解具体要求才能最终确定您的设计。

    【讨论】:

    • 感谢@Adi,所以你的意思是我完全删除了 kinesis 并使用 'Device(s) -> AWS IOT(mqtt) -> SNS -> SQS -> Lambda -> dynamoDB '。您还说“一个消费者可以是 DynamoDB”这是什么意思?发电机能够直接将数据保存到某个表还是我需要 lambda?
    • Kinesis 和 SQS 只是两种不同的排队解决方案,它们的用例略有不同。 Kinesis 最适合您需要数据持久性并且以数据流形式摄取的情况。我不会参与 SQS 与 Kinesis 的讨论,您可以自己评估。 “一个消费者可以是 DynamoDB”:当您向任何 SNS 主题发布消息时,您可以有任意数量的消费者来监听该主题。因此,它表现为 1...N 消息传递。阅读有关 SNS 的更多信息。
    【解决方案2】:

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

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

    【讨论】:

    • 是的,这也是我的第一选择。但硬件无法支持加密要求。
    • 您介意详细说明一下吗?与其将数据从 AWS IoT 推送到 Kinesis(“Device -> AWS IOT(mqtt) -> Kinesis”),您应该能够像这样简单地选择 IoT Analytics 作为目标:“Device -> AWS IOT(mqtt) - > 物联网分析 -> AWS QuickSight”。有关详细信息,请参阅docs.aws.amazon.com/iot/latest/developerguide/…
    • 对不起,我的意思是我没有走这条路,因为设备首先无法将数据发送到 AWS IOT(对 IOT 的加密要求)所以我必须执行 Device -> mqtt server -> kinesis .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 2018-08-10
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多