设备数据存储和计算实践

本文介绍如何存储和计算已接入物联网平台设备的数据,以挖掘设备数据更多的价值。

背景信息

物联⽹平台数据一般来⾃于已接入的智能设备、传感器设备等。只要设备在运⾏中,就会持续不断地产⽣设备数据。

设备数据的使⽤价值根据场景千差万别,其中时效性对不同场景有不同影响,场景如下。

场景

说明

监控运维场景

超过⼩时周期的数据参考价值很小,并且需要有秒级处理要求。

事务型在线业务场景

应⽤系统需要使⽤⼀定周期(例如7天)的数据,用于事务型应⽤场景,并且需要分钟级处理要求。

经营统计分析场景

数据统计分析需要保持1年至2年的数据周期,并且需要按⼩时或按天得出计算结果。

基于⼈⼯智能的分析场景

设备全周期的数据是AI模型的基础,并且处理要求跟业务场景各不相同。

面临的挑战

在不同的数据⽣命周期中,您需要采⽤不同的技术⽅案去存储和计算是设备数据,在不同的业务场景中,以下是较为典型的选型模式:

场景

说明

监控运维场景

数据存储在RocketMQ等流数据存储产品中,并使⽤实时计算Flink等流计算框架进⾏计算。

事务型在线业务场景

数据存储在Tablestore、TSDB等在线数据库进⾏存储和计算。

经营统计分析场景

数据存储在MaxCompute、Hadoop等⼤数据仓库中,使⽤Spark或Python进⾏计算。

基于⼈⼯智能的分析场景

与⼤数据仓库组合使⽤,例如在DataWorks上使⽤PAI,Hadoop上使⽤Spark ML等。

当您在⾯对以上⼏种或全部存储计算场景时,需要采用不同的技术⽅案进行选择和使⽤,⾯临的主要挑战如下:

  • 数据链路和架构过于复杂,技术⽅案选型眼花缭乱。

  • 同一时间的产品间数据同步和存储,存在数据冗余和⼀致性⻛险。

  • 不同⽣命周期的数据存储,使⽤最优化成本的存储⽅案。

解决方案

针对以上共性问题的抽象和思考,阿⾥云物联网平台逐步建设了⼀套物联⽹数据存储、计算的⽅案。物联网平台提供数据存储服务,包括数据分层存储,并且在数据存储上提供数据导出、变更通知订阅、及连接⼤数据产品的组件等必要的存储相关服务。同时支持搭配计算组件(实时数据处理、交互式分析和离线计算),供您快捷地处理物联网平台设备数据。

分层存储

例如:物联网平台某家摩托⻋⼚商的客户每天产⽣约20 GB数据,按3年时间会产⽣21 TB数据。按照存储产品年费用预计在18万~28万不等,采⽤物联网平台归档存储,年费用不到1万元。如果客户需要分析数据,可以从归档存储中取回数据,假设取回全部21 TB数据,年费⽤预计5万元。更合理的方式是按照数据使⽤情况来规划备份⽣命周期和存储类型,同时切分⼀个归档存储和标准存储的时间范围,以达到成本最优存储⽅案。

如下所示存储规划:

image..png

计算模式

实时计算

为了满⾜物联⽹实时计算场景,物联网平台提供了实时数据解析功能,基本功能如下:

功能项

数据解析

数据源

支持解析设备数据源和API数据源。

时效性

实时地抽取和转化数据,延迟在秒级。

数据格式

支持JSON、ProtoBuf、Base64(to_JSON)和原始数据类型的数据格式。

计费

数据解析任务需要消耗数据处理单元(CU)。

⽀持的详细功能项如下表:

功能

节点

说明

输入

源节点

选择待处理数据的数据源。

自定义

源节点中数据源的Topic格式原始数据时,在源节点后会自动添加并连接自定义节点,用于配置自定义脚本解析原始数据。

处理

数据计算

根据源节点配置,自动匹配显示相关字段数据。

您可通过配置表达式,计算已有字段数据,来生成新字段数据。

数据过滤

配置过滤条件,指定只输出满足特定条件的数据。

值转化

配置判断条件,将解析任务中流转消息的某个字段的值,转化为另一个值,该值可以输出到原字段或新定义的字段。

数据聚合

类比为Flink SQL的窗口函数,将解析任务中流转消息的字段按照窗口进行聚合计算。

超时插值

在数据上报产生中断时,配置固定的策略进行补值,防止数据出现中断。

相邻消息计算

取当前消息与前一条消息中的同一数值字段的值(仅支持BIGINT、DOUBLE类型),按照定义的表达式进行计算,将计算的结果输出到定义的输出字段上。

输出

目标节点

将解析后的数据转入IoT实例Topic、IoT孪生引擎中使用,或IoT实例自定义存储表中存储。

选择在自定义存储表中存储时,根据处理功能节点的输出配置,自动匹配显示可输出的字段。您可根据需要删除、修改字段,完成最终输出结果配置。

详细使用内容,请参见数据解析

交互查询

为了满⾜数据洞察分析,物联网平台提供了SQL⼯作台,可以直接在⼯作台上编写任意SQL脚本分析观察数据。

image..png

另外为满⾜物联⽹场景,在⼯作台上提供了可直接使用的物联网平台数据,具体如下表所示:

选项

说明

产品属性时序表

存储了设备上报至物联网平台的物模型属性、事件数据。

产品属性快照表

产品事件表

IoT孪生引擎时序表

存储了IoT孪生引擎对应孪生空间中孪生实体图中孪生节点的物模型属性数据。

IoT孪生引擎快照表

自定义存储表

存储了已完成自定义初始化配置的数据。即数据解析或SQL分析任务,调度任务后,输出至自定义存储表的数据。

平台系统表

存储了产品、设备、设备分组、设备标签和设备位置等基本信息。

详细使用内容,请参见SQL分析

离线统计分析

SQL⼯作台编写的脚本完成了数据分析洞察,可以配置⼩时、⽇调度,物联网平台系统会定时产出SQL脚本的分析洞察结果。

image..png

详细使用内容,请参见设置任务调度策略

⼈⼯智能分析

针对于特定场景,平台内置了⼈⼯智能算法模型,这些模型原⽣对接存储的数据,最⼤限度降低算法的使⽤⻔槛。

详细使用内容,请参见算法模板

数据获取

针对分析洞察后数据,物联网平台提供了多种⽅式获取:

方式

说明

相关文档

免费报表

免费的可视化报表,可临时查看相关数据。

数据报表

云云对接

提供数据API,在业务系统使⽤相关数据。

数据API

数据集成

提供IoT Reader,通过企业数据仓库(DataWorks)集成相关数据。

数据集成

CSV导出

提供数据本地导出功能,可以按照时间段导出相关数据的CSV⽂件。

创建和管理自定义存储表