【摘要】 华为云物联网平台提供的规则引擎包括数据转发和设备联动等多种能力,这些能力都要怎么使用?本文教您 8 招最常用的用法,带您玩转规则引擎。
规则引擎是华为云物联网平台提供的一种能力,用户对接入平台的设备设定相应的规则,在条件满足所设定的规则后,平台会触发相应的动作来满足用户需求。规则引擎包含数据转发和设备联动两种类型。
数据转发规则:物联网平台支持将设备上报的数据(和设备信息)转发至其他云服务,包括数据接入服务 DIS、对象存储服务 OBS、企业集成平台 ROMA 等,并支持对转发的数据进行过滤。
设备联动规则:设备联动规则是指当设备行为(即设备上报的数据中的某个值)或者系统时间满足了规则设定的条件时,就会触发规则设定的动作,如触发告警、发送消息和下发命令给设备。
面对规则引擎的这么多能力,我们该如何使用它们?接下来就让本文教你 8 招,带你玩转规则引擎。
第一招 数据转发至 OBS 长期存储
对于设备上报的数据,设备接入服务只保存最新的数据,设备管理服务(创建应用时开启了存储数据能力)保存 7 天的历史数据。如果用户希望长期保存设备历史数据,就需要将设备上报的数据及时转发至其他地方保存。
此时,就轮到规则引擎出场了。数据转发规则支持将设备上报的数据转发至对象存储服务OBS,实现设备数据持久存储。OBS 是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,适用于对设备上报数据进行归档和备份存储。
在 OBS 中,基本的概念是桶和对象:桶是 OBS 中存储对象的容器,每个桶都有自己的存储类别、访问权限、所属区域等属性,用户在互联网上通过桶的访问域名来定位桶。对象是 OBS 中数据存储的基本单位,一个对象实际是一个文件的数据与其相关属性信息的集合体,包括 Key(文件名称)、Metadata(元数据,由 OBS 自动生成)、Data(文件数据)三部分。
规则引擎转发设备上报数据到 OBS 时,每条数据都会作为一个对象被保存到用户创建的桶中。若需要用桶中读取数据,OBS 也提供了控制台、SDK、API、客户端工具等多种方法,是不是很方便?
第二招 数据经由 DIS 转发至第三方应用
很多物联网企业都会自己开发物联网应用管理设备,那么,物联网应用如何从物联网平台实时获取设备上报的数据?华为物联网平台提供了两种方案。
方案一是使用设备管理服务的订阅推送功能。这个方案是由第三方应用调用物联网平台的接口进行订阅,然后设备上报数据后物联网平台主动推送至第三方应用。这个方案方便快捷,且支持推送的数据不止设备上报的数据,还包括设备注册通知、设备状态变化通知等;但这个方案也有一些局限性:第三方应用所在服务器必须绑定一个公网 IP 用于接收推送,物联网平台默认只提供较弱(10TPS)的推送能力,且不支持过滤数据。
方案二则是使用规则引擎,将设备上报数据转发到数据接入服务DIS,再由第三方应用从 DIS 获取数据。DIS 为处理或分析流数据的第三方应用构建数据流管道,实现数据高效采集、传输、分发。
在 DIS 中,数据流管道被称为通道,是用户创建的逻辑单位,用以区分不同用户实时数据的集合。和使用 OBS 服务时同样,我们需要先创建一个通道,然后在物联网平台创建数据转发规则时指定该通道,设备上报的数据就会被物联网平台转发至该通道内。然后,第三方应用通过集成 DIS 的 SDK 或直接调用 DIS 的 API,主动获取数据。创建规则时,我们还可以指定过滤条件,例如指定某个属性的值必须大于 0 才转发该条数据,提前过滤无效数据。
该方案虽然仅支持转发设备上报的数据(和设备信息),但无需公网 IP,支持数据过滤,并可以根据数据流速创建不同规格的数据通道,整体灵活性更高。
第三招 数据实时分析后转发至第三方应用
有些时候,第三方应用因为性能或业务逻辑等问题,期望获取的是已经分析处理过的设备上报数据,而不是原始数据。对于这种诉求,我们仅需在第二招上稍微做些改动即可实现。
实时流计算服务CS,是运行在公有云上的实时流式大数据分析服务,全托管的方式用户无需感知计算集群,只需聚焦于 Stream SQL 业务,即时执行作业。CS 支持 DIS 流式数据作为数据源和数据输出,所以我们需要建立两个 DIS 通道,一个通道作为 CS 的数据源,物联网平台将数据转发至该通道后就会被 CS 取出并处理;另一个通道作为 CS 的输出通道,CS 会把分析处理完的数据输出到这个通道中,第三方应用再从该通道中获取分析后的数据即可。
本文转载自华为云社区博客。
原文链接:https://bbs.huaweicloud.com/blogs/134889
评论