如何利用AWS服务在Web仪表板展示AWS IoT Core近10分钟数据?
实现AWS IoT Core近10分钟数据到自有Web仪表板的方案
一、基于现有HTTPS端点的快速优化方案
如果你已经通过AWS IoT规则配置了HTTPS端点推送数据,要实现仅发送近10分钟的数据,可从以下两个层面处理:
1. IoT规则层过滤(推荐)
在AWS IoT规则的SQL语句中添加时间过滤条件,只转发近10分钟内生成的消息。
- 若设备上报的数据包含时间戳字段(如
timestamp,单位毫秒),SQL示例:SELECT * FROM 'your/topic/path' WHERE timestamp > (current_timestamp() - 600000) - 若设备未上报时间戳,可使用IoT Core内置的消息到达时间
timestamp():SELECT * FROM 'your/topic/path' WHERE timestamp() > (current_timestamp() - 600000)
注:600000是10分钟对应的毫秒数(10601000),需确保时间戳时区与IoT规则的时间计算一致。
2. Web前端过滤(临时方案)
如果无法在规则层过滤,可在Web仪表板接收数据后,通过前端代码过滤旧数据。JavaScript示例:
const tenMinutesAgo = Date.now() - 10 * 60 * 1000; const recentData = receivedData.filter(item => item.timestamp > tenMinutesAgo); // 用recentData更新仪表板展示
这种方式会传输多余数据,仅适合临时场景。
二、最优架构方案(兼顾实时性与可扩展性)
如果需要长期稳定支持该需求,且未来可能扩展历史数据查询能力,推荐以下架构:
AWS IoT Core → AWS IoT规则 → 时序存储(Timestream/DynamoDB) → Lambda + API Gateway → 自有Web仪表板
1. 各组件作用
- AWS IoT Core:接收设备上报的消息。
- AWS IoT规则:将消息转发至存储服务,同时可配置实时推送至Websocket(提升实时性)。
- Amazon Timestream:专为时序数据设计的数据库,查询近10分钟数据效率极高,支持自动分层存储(热数据存内存、冷数据存S3)。
- Amazon DynamoDB:适合数据量较小的场景,开启TTL(自动过期)功能可自动删除10分钟前的数据,降低存储成本。
- Lambda + API Gateway:构建查询API,供Web仪表板按需拉取近10分钟数据。
- Web仪表板:定期调用API拉取数据,或通过Websocket接收实时消息并维护本地10分钟数据窗口。
2. 具体实现步骤
(1)存储层配置
- Timestream场景:
- 创建Timestream数据库和表,设置数据保留策略(如近10分钟数据存内存层)。
- 配置IoT规则,将设备消息写入Timestream,指定时间戳字段(设备上报或IoT内置时间)。
- DynamoDB场景:
- 创建DynamoDB表,主键设为
device_id + timestamp,开启TTL功能,将TTL字段设为timestamp + 600000(自动删除10分钟前的数据)。 - 配置IoT规则,将设备消息写入DynamoDB。
- 创建DynamoDB表,主键设为
(2)查询层配置
- 创建Lambda函数,编写查询逻辑:
- Timestream查询示例:
SELECT * FROM "db_name"."table_name" WHERE time > ago(10m) - DynamoDB查询示例:通过
Query操作过滤时间戳大于当前时间减10分钟的数据。
- Timestream查询示例:
- 配置API Gateway,将Lambda函数暴露为HTTP API,供Web仪表板调用。
(3)Web仪表板集成
- 定期调用API(如每10-30秒一次)拉取近10分钟数据,更新仪表板。
- 若需更高实时性,可同时配置IoT规则将实时消息推送到API Gateway的Websocket API,Web仪表板订阅后接收实时数据,自动移除本地缓存中超过10分钟的旧数据。
三、方案对比
| 方案 | 优点 | 缺点 |
|---|---|---|
| IoT规则+HTTPS+前端过滤 | 快速实现,无需额外服务 | 传输冗余数据,带宽浪费 |
| IoT规则+HTTPS+规则层过滤 | 减少无用数据传输,效率高 | 仅支持实时推送,无法回溯历史数据 |
| Timestream+Lambda+API Gateway | 时序数据查询高效,可扩展历史查询 | 需额外配置存储/计算服务,成本略高 |
| DynamoDB+Lambda+API Gateway | 存储成本低,TTL自动清理过期数据 | 大数据量下查询效率不如Timestream |
内容的提问来源于stack exchange,提问作者Kubra Kkartal
相关产品推荐
相关产品推荐

