写点什么

8 招带你玩转规则引擎(一)

  • 2019-12-24
  • 本文字数:1812 字

    阅读完需:约 6 分钟

8招带你玩转规则引擎(一)

【摘要】 华为云物联网平台提供的规则引擎包括数据转发和设备联动等多种能力,这些能力都要怎么使用?本文教您 8 招最常用的用法,带您玩转规则引擎。


规则引擎是华为云物联网平台提供的一种能力,用户对接入平台的设备设定相应的规则,在条件满足所设定的规则后,平台会触发相应的动作来满足用户需求。规则引擎包含数据转发和设备联动两种类型。


  • 数据转发规则:物联网平台支持将设备上报的数据(和设备信息)转发至其他云服务,包括数据接入服务 DIS、对象存储服务 OBS、企业集成平台 ROMA 等,并支持对转发的数据进行过滤。

  • 设备联动规则:设备联动规则是指当设备行为(即设备上报的数据中的某个值)或者系统时间满足了规则设定的条件时,就会触发规则设定的动作,如触发告警、发送消息和下发命令给设备。


面对规则引擎的这么多能力,我们该如何使用它们?接下来就让本文教你 8 招,带你玩转规则引擎。

第一招 数据转发至 OBS 长期存储

对于设备上报的数据,设备接入服务只保存最新的数据,设备管理服务(创建应用时开启了存储数据能力)保存 7 天的历史数据。如果用户希望长期保存设备历史数据,就需要将设备上报的数据及时转发至其他地方保存。


此时,就轮到规则引擎出场了。数据转发规则支持将设备上报的数据转发至对象存储服务OBS,实现设备数据持久存储。OBS 是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,适用于对设备上报数据进行归档和备份存储。


1574730857864646.png


在 OBS 中,基本的概念是桶和对象:桶是 OBS 中存储对象的容器,每个桶都有自己的存储类别、访问权限、所属区域等属性,用户在互联网上通过桶的访问域名来定位桶。对象是 OBS 中数据存储的基本单位,一个对象实际是一个文件的数据与其相关属性信息的集合体,包括 Key(文件名称)、Metadata(元数据,由 OBS 自动生成)、Data(文件数据)三部分。



1574730895876403.png


规则引擎转发设备上报数据到 OBS 时,每条数据都会作为一个对象被保存到用户创建的桶中。若需要用桶中读取数据,OBS 也提供了控制台、SDK、API、客户端工具等多种方法,是不是很方便?

第二招 数据经由 DIS 转发至第三方应用

很多物联网企业都会自己开发物联网应用管理设备,那么,物联网应用如何从物联网平台实时获取设备上报的数据?华为物联网平台提供了两种方案。


方案一是使用设备管理服务的订阅推送功能。这个方案是由第三方应用调用物联网平台的接口进行订阅,然后设备上报数据后物联网平台主动推送至第三方应用。这个方案方便快捷,且支持推送的数据不止设备上报的数据,还包括设备注册通知、设备状态变化通知等;但这个方案也有一些局限性:第三方应用所在服务器必须绑定一个公网 IP 用于接收推送,物联网平台默认只提供较弱(10TPS)的推送能力,且不支持过滤数据。


方案二则是使用规则引擎,将设备上报数据转发到数据接入服务DIS,再由第三方应用从 DIS 获取数据。DIS 为处理或分析流数据的第三方应用构建数据流管道,实现数据高效采集、传输、分发。


1574730906462047.png


在 DIS 中,数据流管道被称为通道,是用户创建的逻辑单位,用以区分不同用户实时数据的集合。和使用 OBS 服务时同样,我们需要先创建一个通道,然后在物联网平台创建数据转发规则时指定该通道,设备上报的数据就会被物联网平台转发至该通道内。然后,第三方应用通过集成 DIS 的 SDK 或直接调用 DIS 的 API,主动获取数据。创建规则时,我们还可以指定过滤条件,例如指定某个属性的值必须大于 0 才转发该条数据,提前过滤无效数据。


1574730952561784.png


该方案虽然仅支持转发设备上报的数据(和设备信息),但无需公网 IP,支持数据过滤,并可以根据数据流速创建不同规格的数据通道,整体灵活性更高。

第三招 数据实时分析后转发至第三方应用

有些时候,第三方应用因为性能或业务逻辑等问题,期望获取的是已经分析处理过的设备上报数据,而不是原始数据。对于这种诉求,我们仅需在第二招上稍微做些改动即可实现。


1574730985511311.png


实时流计算服务CS,是运行在公有云上的实时流式大数据分析服务,全托管的方式用户无需感知计算集群,只需聚焦于 Stream SQL 业务,即时执行作业。CS 支持 DIS 流式数据作为数据源和数据输出,所以我们需要建立两个 DIS 通道,一个通道作为 CS 的数据源,物联网平台将数据转发至该通道后就会被 CS 取出并处理;另一个通道作为 CS 的输出通道,CS 会把分析处理完的数据输出到这个通道中,第三方应用再从该通道中获取分析后的数据即可。


本文转载自华为云社区博客。


原文链接:https://bbs.huaweicloud.com/blogs/134889


2019-12-24 13:282185

评论

发布
暂无评论
发现更多内容

WebRTC 传输通道的建立过程解析 | 社区征文

liuzhen007

音视频 新春征文 2月月更

视频绿幕抠像一键搞定,这些好用工具你要知道。

彭宏豪95

效率 工具 视频剪辑

JVM进阶(五):JAVA GC 之标记

No Silver Bullet

JVM 2月月更 标记 MAT

JVM进阶(六):鲜为人知的二次标记

No Silver Bullet

JVM 日志分析 2月月更 二次标记

在线SVG在线编辑器

入门小站

工具

守护石谈学习Java之路

DaemonStone

Java 学习方法 经验分享 编程学习

Netflix是如何做决策的? | 4. A/B测试结果之假阴性和统计功效

俞凡

数据分析 netflix 大厂实践 2月月更

一条SQL更新语句是如何执行的?

蝉沐风

MySQL MySQL InnoDB

Jvm 参数默认值

努力努力再努力

AI,机器人和元宇宙(9/100)

hackstoic

元宇宙

第七节:SpringBoot高级属性配置二

入门小站

springboot Java EE

2021考了个PMP

夏兮。

PMP Certification

图解MySQL(5)-Buffer Pool的flush链表

JavaEdge

2月月更

架构训练营 week9 课程总结

红莲疾风

「架构实战营」

在线标准程序员计算器

入门小站

工具

JVM进阶(三):内存分配与回收策略

No Silver Bullet

Java JVM 内存分配 2月月更

如何阻止软件退化?

蜜糖的代码注释

Java 后端开发 项目实践 2月月更

JavaScript 数组常见操作(一)

编程三昧

JavaScript 前端开发 数组操作 2月月更

共赴冰雪之约,见证体育场馆的数字化之旅

脑极体

《恰如其分的软件架构》随笔一:模型是解决复杂问题的重要途径

panda

模型

开源效能可视化平台介绍 -DevLake

夏兮。

效能平台 MARI

Netflix是如何做决策的? | 5. 在做决定时建立信心

俞凡

数据分析 netflix 大厂实践 2月月更

Netflix是如何做决策的? | 3. A/B测试结果之假阳性和统计显著性

俞凡

数据分析 netflix 大厂实践 2月月更

对 HTTP 缓存的全面总结

编程三昧

缓存 前端开发 HTTP 2月月更

计算机视觉算法探究:OpenCV CLAHE算法详解| 社区征文

老猿Python

AI 算法 计算机视觉 新春征文 CLAHE

Linux之top命令

入门小站

Linux

如何写好代码注释?

蜜糖的代码注释

Java 后端 开发 2月月更

架构训练营 week8 课程总结

红莲疾风

「架构实战营」

[架构实战营] 模块八作业

Geek_0ed632

「架构实战营」

JVM进阶(二):初识 JAVA 堆

No Silver Bullet

Java JVM 内存 2月月更

团队开周会的目的:保证有效的协同效应和构建PDCA循环

panda

管理 PDCA 周会 协同效应

8招带你玩转规则引擎(一)_行业深度_我是卤蛋_InfoQ精选文章