油气生产物联网的海量流式数据告警分析与处理
2017-04-18赵长军
赵长军
【摘 要】本文通过将油气生产物联网实时运行数据以数据流的方式,注入到Storm流式数据处理引擎中,并在引擎中加载各类告警规则,对实时运行的情况进行在线告警监测。通过利用Storm可对海量流式实时数据进行高速实时处理的优点,能够快速对大量的多维度运行数据进行精确的分析处理;同时利用Storm的多层级处理方式,将各级输出数据组合为新的规则输入,实现各类告警规则的层层叠加,形成更为完善的分析体系,提升处理的准确性,达到提高油气生产的安全性的目的。
【关键词】Storm;告警分析;流式数据
0 引言
油气生产的安全控制是生产环节中各级部门最关注的一环。国内油气企业已经着手建立油气生产物联网,从而希望可以通过集成现有的SCADA系统等的生产运行数据,同时通过建设物联网来丰富数据来源,获取更为完整的运行环境、设备监控等多维度数据。本文基于Storm流式数据处理,将告警规则导入到Storm中,对采集的生产数据流进行实时数据清洗、规则分析,实现对海量实时数据的告警处理及连锁分析处理,从而为生产运行中各类故障问题提供实时度更高、分析维度更多、告警更为精确的技术支持。通过Storm分析技术的整合以达到如下效果:
1)实时度更高:对海量数据流进行多维度的告警规则实时分析;
2)规则叠加与结果复用:针对故障判断规则进行叠加,即前一个规则可作为后一个规则的输入,达到简单规则处理,结果又可以重复利用分析的目的;
3)提升告警准确性:由同时发生的多种相关非正常工况进行多维数据组合告警分析,让结果更准确。
1 Storm流式数据处理运用
油气生产中告警分析处理应用牵涉的生产数据流的量大、多变,要提升告警的准确性和实时性,大数据储存技术的发展对于油气行业以TB数量级计算的数据分析处理提供了技术基础。
本文引入了Storm流式数据实时分析技术,将各类设备的海量实时运行数据应用于在线告警分析,实现运行监控、告警预警、改进管理等。Storm是一套实时的、分布式以及具备高容错的数据计算系统,其最大的优点就是对海量实时数据流的高速并行处理,通过对数据进行多轮次的加工,生成不同类型的数据结果,用于故障告警、生产管理、决策辅助等。
Storm对流式数据的处理,以Topology任务形式存在。通过加载开发的Topology任务到Storm,即可将源源不断的数据流输入到告警规则判断中,对生产运行进行实时监控。
Topology的构成如图1所示,Spout是数据入口,负责数据流的读入;Bolt是处理数据、加工数据的节点;中间数据被封装在Tuple中,輸入到Bolt中进行处理,同时Bolt节点可以产生新的Tuple;Grouping则是对输出的Tuple进行归类分发给下一节点Bolt。
其中Topology由几个部分组成,含义如下:
1)Tuple:数据处理单元,一个Tuple由多个字段组成。例如压缩机的输入气压与输出气压;
2)Spout:从外部获取数据,输出原始的Tuple;
3)Bolt:接收Spout/Bolt输出的Tuple,处理后输出新的Tuple;
4)Grouping:Tuple从上游到某个下游多个并发Task的分组方式。
一个实时数据告警分析应用的Topology就由上述的Spout、Bolt、Grouping组合而成,构成了对流式生产数据的实时计算分析。
根据油气生产的实际情况,可以根据需要给Spout和Bolt设计一种能够处理油气生产海量数据的Topology,当一个特定数据值例如气压、温度、含硫度等超过预设的临界值时触发警报,这就是一个告警规则。使用Storm的Topology,逐行读入采集数据并且监视输入数据。同时各个告警规则的输出可以进一步的组合,形成更为复杂的告警规则Bolt的输入,进行多维数据监测与分析。
Storm对运行实时数据流分析以进行告警监测的结构如图2所示。
如图2所示,各类实时生产数据流通过Spout发射到Storm中进行告警分析,而Storm加载各类告警规则Bolt,并对数据流的Tuple进行层层处理。如果根据告警规则需要触发各类动作,则根据动作定义对外发送,并触发各类告警通知。
2 告警规则Bolt设计
采集数据的告警分析将主要聚焦于门限值的两种分析类型:瞬间门限值(instant thershold)和时间序列门限值(time series threshold)。
瞬间门限值监测:指数据某个字段的值在某个瞬间超过了预设的门限值,如果条件符合的话则触发一个Trigger。
时间序列门限值监测:指字段的值在一个给定的时间段内超过了预设的门限值,如果条件符合则触发一个触发器。比如:在5分钟内,气压超过某设定值的设备。
与告警规则Bolt相结合,通过设置多条件的复杂规则,可实现连续门限在Storm中的监测。油气生产的需求分析可知,各个油气生产井、站、管线、设备设施,在生产过程中涉及到数据包括生产运行参数、工作流程控制、井站实时监控、设备采集数据监控(例如温度、湿度、压力值)等,数据采集和分析过程都需要制定一系列监测与告警规则,以便能够及时发现安全问题。因此,制定的规则是:设置一个或多个条件,对数据对象进行分析判断,当满足这些条件时触发一个或多个操作。
本文将Storm以规则引擎的形式存在,而Topology中用到的规则判断即一个个的Bolt,规则Bolt以组件形式存在,实现将处理引擎与业务逻辑的分离。使用预定义的语义模块编写业务规则Bolt,接受数据输入,解释业务规则,并根据规则做出业务决策,应用于对油气生产物联网采集数据的告警判断与分析中。
Storm规则引擎主要功能是存储、分类和管理规则Bolt,验证规则的一致性,它的任务是把当前提交给引擎的数据对象与加载的引擎中的规则Bolt进行测试和对比,激活符合当前数据状态下的业务规则,触发其能否匹配对应的规则并执行规则中所规定的动作。
当采集到各种生产设备新的数据时,数据输入Topology中进行实时分析,将每個新数据和预设报警门限值或连续门限值的规则Bolt进行测试比较,测试条件包括“大于”、“小于”、“等于”、“变化率大于”、“变化率小于”等等。设备运行的预警与报警过程需要依据设备运行的具体工况、参数间的逻辑关系,利用各类规则结合现场经验建立。
Storm规则引擎的运行有下面几个构件支撑:
1)规则库(Rule set):规则库就是许多规则的集合。每条规则包含一个条件过滤器和多个动作。一个条件过滤器可以包含多个过滤条件。条件过滤器是多个布尔表达式的组合,其组合结果仍然是一个布尔类型的。在程序运行时,动作将会在条件过滤器值为真的情况下执行。
2)匹配器(Context):是规则引擎工作的上下文环境,用来关联工作存储器和规则集容器,将工作存储器中的应用程序对象与规则集容器中的一系列规则进行匹配,并将匹配成功的规则实例放入执行器中。
3)执行器(Agenda):存放匹配成功的规则实例,用来执行规则的动作部分,并将执行结果传回给应用程序。
逻辑规则配置可采用图形化方式实现,图3是配置的1个告警规则Bolt。
3 告警规则Bolt处理过程
通过告警规则Bolt的配置,完成后加载到Storm中,则可以对设备运行数据进行处理。
1)导入规则集:规则引擎指明使用哪个规则集,并且可以进一步指出要对哪个规则进行计算,以及是否过滤计算结果。
2)规则匹配:在匹配器中将工作存储器中的应用对象与规则Bolt的条件部分进行匹配。如果匹配成功,则输出对应的Tuple。
3)执行规则:在规则匹配时触发执行动作。
通过对告警规则Bolt的配置、加载和处理,设备运行数据一旦传入到Storm中,即可对流式数据按照规则定义进行处理判断,生成对应告警对象。
4 告警通知
Storm根据告警规则及连锁门限的判断,生成各类告警后可触发各类动作,实现对生产现场各点的区域监测、重点设备监测、智能预警提醒、应急处理等功能,可根据不同的告警类型通知不同的人员。还可结合地图系统,快速在地图中定位站点位置并查看故障地图,同时在WEB网页上直观、形象查看告警分布情况以及实际位置信息,从物联网获取各探测设备的信息,快速联系责任人进行故障处理。
5 结论
本文通过将油气生产物联网的实时运行数据作为多维数据源,输入到Storm告警分析模型中,利用Storm的并行处理优势和分层分析特点,解决油气生产设备运行实时数据量大、影响因素众多带来的常规告警分析方法不准确的问题,特别适合于数据量大、工艺流程复杂、对告警分析精确度要求高的油气生产行业,提升生产运行安全和综合运营效益。
【参考文献】
[1]张永华.基于大数据技术的电信网络告警关联分析设计与实现[J].电信工程技术与标准化,2016,29(4):18-23
[2]刘子英,唐宏建,肖嘉耀,张骞.基于流式计算的Web实时故障诊断分析与设计[J].华东交通大学学报,2014(1):119-123.
[3]王德文,杨力平.智能电网大数据流式处理方法与状态监测异常检测[J].电力系统自动化,2016,40(14):122-128.
[4]闫欢,张宜生,李德群.规则引擎在制造企业MES中的研究与应用[J].计算机工程,2007,33(7):210-212.
[5][美]吉奥兹,[美]奥尼尔.Storm分布式实时计算模式[M].董昭,译.机械工业出版社,2015,1.
[责任编辑:田吉捷]