如何配置AWS IoT Core规则向Amazon Timestream发送多度量记录?是否可行?
解决方案:AWS IoT Core规则配置Timestream多度量记录
功能支持情况
AWS IoT Core完全支持将设备数据以多度量记录格式写入Amazon Timestream,无需额外中间服务,直接通过规则引擎即可实现一个时间戳对应一条包含所有测量变量的记录。
调整后的IoT Core规则SQL语句
你需要修改SQL语句,构造符合Timestream多度量要求的数据结构,示例如下:
SELECT timestamp() AS time, -- 示例:从Topic提取设备ID作为维度(假设Topic格式为devicepub/data/{device_id}) [{"name": "device_id", "value": topic(3)}] AS dimensions, -- 打包所有度量值到数组,指定每个度量的名称、值和数据类型 [ {"name": "temperature", "value": temperature, "type": "DOUBLE"}, {"name": "humidity", "value": humidity, "type": "DOUBLE"}, {"name": "pressure", "value": pressure, "type": "DOUBLE"} ] AS measure_values, -- 可选:指定统一的度量名称,方便后续查询识别 "environment_metrics" AS measure_name FROM 'devicepub/data/#'
规则目标配置要点
在配置Timestream作为规则目标时,需要完成以下关键设置:
- 勾选Multi-measure record(多度量记录)选项
- 字段映射:
- 将SQL输出的
time映射到Timestream的时间字段 - 将
dimensions映射到Timestream的维度字段 - 将
measure_values映射到Timestream的度量值数组字段 - (可选)将
measure_name映射到Timestream的度量名称字段
- 将SQL输出的
说明
原来的SQL语句会将temperature、humidity、pressure分别作为独立度量写入Timestream,因此生成三条记录。调整后的SQL会将所有度量打包到一个数组中,配合多度量配置,最终每个设备上报的数据包会对应Timestream中的一条记录,包含同一时间戳下的所有测量变量。
内容的提问来源于stack exchange,提问作者betelgeuse
相关产品推荐
相关产品推荐

