amazon-web-services - 如何将物联网 (IoT) 数据发送到 Amazon Web Services 上的数据库和 SQS 队列?
问题描述
我有来自野外机器的工业物联网 (IIoT) 数据。目前,数据正在从机器传输到 Amazon Web Services (AWS) 简单排队服务 (SQS) 队列,供第三方公司使用。
我现在想做两件事:
- 像以前一样将数据放入第三方公司的 SQS 队列中,并且
- 将数据存储在 Amazon Relational Database Service (RDS) 数据库中以进行分析
为此,我是否应该先将数据发送到 Amazon Simple Notification Service (SNS) 主题,然后将数据从那里推送到我的数据库和第三方公司的 SQS 队列?
有没有更好的方法来实现我的目标,还是我走在正确的轨道上?
我之所以这么问,部分原因是亚马逊似乎在引导我使用一个名为 DynamoDB 的 noSQL 数据库,但我想我想要一个结构化的关系数据库来存储我的 IIoT 数据。
解决方案
亚马逊的物联网“消息代理”,它使用 MQTT 与我的物联网设备进行通信,是一个 SNS 主题,这很有意义。
SNS 消息主题不同于 SQS 队列。队列只能由一个用户读取,然后消息会从队列中删除——它只是临时存储。所以我们不能与第三方公司共享 SQS 队列。
相比之下,SNS 主题会立即向多个用户发送推送通知(和消息),并且所有“订阅”的用户都会收到消息。SNS 就像订阅某人的 Twitter 或 Instagram 提要一样,所有“订阅者”都会收到来自“发布者”到消息“主题”的新消息的通知。
长话短说,我们可以使用 AWS IoT“规则”将我们设备的 MQTT 保护“消息”发送给我们想要的任意数量的“订阅者”或 AWS 服务。因此,我们将向 SQS 队列发送一个副本,并将另一个副本发送到某种 AWS 数据库。
推荐阅读
- mysql - 如何匹配 2 个不同表上的日期并加入 ID 表?
- java - 为什么 Camunda 不在用户任务开始时显示消息事件订阅,而是在结束时显示?
- python - 从文件名/字符串中删除非数字
- ruby-on-rails - Heroku、自定义子域和自定义约束
- ruby-on-rails - 如何将默认字符串值放入隐藏字段?
- javascript - Busboy 保存流以备后用
- javascript - routingParams.departure 对 calculateIsoline 没有影响
- android - Android:允许用户自定义 UI
- laravel - 如何将批量数据从 Excel 复制并粘贴到 Html 表中,然后保存到 Laravel
- vue.js - 异步加载 Vue 时如何加载 Vue 插件?