首页 > 解决方案 > 如何将物联网 (IoT) 数据发送到 Amazon Web Services 上的数据库和 SQS 队列?

问题描述

我有来自野外机器的工业物联网 (IIoT) 数据。目前,数据正在从机器传输到 Amazon Web Services (AWS) 简单排队服务 (SQS) 队列,供第三方公司使用。

我现在想做两件事:

  1. 像以前一样将数据放入第三方公司的 SQS 队列中,并且
  2. 将数据存储在 Amazon Relational Database Service (RDS) 数据库中以进行分析

为此,我是否应该先将数据发送到 Amazon Simple Notification Service (SNS) 主题,然后将数据从那里推送到我的数据库和第三方公司的 SQS 队列?

有没有更好的方法来实现我的目标,还是我走在正确的轨道上?

我之所以这么问,部分原因是亚马逊似乎在引导我使用一个名为 DynamoDB 的 noSQL 数据库,但我想我想要一个结构化的关系数据库来存储我的 IIoT 数据。

标签: amazon-web-servicesaws-lambdaamazon-rdsamazon-sqsamazon-sns

解决方案


亚马逊的物联网“消息代理”,它使用 MQTT 与我的物联网设备进行通信,是一个 SNS 主题,这很有意义。

SNS 消息主题不同于 SQS 队列。队列只能由一个用户读取,然后消息会从队列中删除——它只是临时存储。所以我们不能与第三方公司共享 SQS 队列。

相比之下,SNS 主题会立即向多个用户发送推送通知(和消息),并且所有“订阅”的用户都会收到消息。SNS 就像订阅某人的 Twitter 或 Instagram 提要一样,所有“订阅者”都会收到来自“发布者”到消息“主题”的新消息的通知。

长话短说,我们可以使用 AWS IoT“规则”将我们设备的 MQTT 保护“消息”发送给我们想要的任意数量的“订阅者”或 AWS 服务。因此,我们将向 SQS 队列发送一个副本,并将另一个副本发送到某种 AWS 数据库。


推荐阅读