数据异常的报警处理方法及装置与流程

文档序号:12063871阅读:760来源:国知局
数据异常的报警处理方法及装置与流程

本发明涉及数据处理领域,尤其涉及数据异常的报警处理方法及装置。



背景技术:

Flink是一款新的大数据处理引擎,目标是统一不同来源的数据处理。这个目标看起来和Spark和类似。这两套系统都在尝试建立一个统一的平台可以运行批量,流式,交互式,图处理,机器学习等应用。对于Flink来说,从一开始就坚持使用自己控制内存。Flink除把数据存在自己管理的内存之外,还直接操作二进制数据,因此Flink流计算平台的计算能力很强大。

企业关键绩效指标(KPI:Key Performance Indicator)是通过对组织内部流程的输入端、输出端的关键参数进行设置、取样、计算、分析,衡量流程绩效的一种目标式量化管理指标,是把企业的战略目标分解为可操作的工作目标的工具,是企业绩效管理的基础。

目前,对于企业关键绩效指标的计算,通常通过Flink进行分析计算,Flink流计算平台的计算能力虽然强,但Flink任务提交后不能更改,当Flink任务提交后发现数据异常,进行报警,作业修改需停止先前的作业后启动新作业;但目前报警规则多,每个规则都用Flink处理维护困难,对于流数据处理效率过低。

因此,现有技术中的缺陷是,在运用Flink流计算平台进行流数据处理时,Flink任务提交后不能更改,需要停止先前的作业后启动新作业,因此基于目前的报警规则,通过Flink进行流数据的报警处理,效率过低。



技术实现要素:

针对上述技术问题,本发明提供一种数据异常的报警处理方法及装置,通过将大数据分析引擎Flink与规则配置引擎(CEP-Complex Event Processing)集成的方式,进行数据的异常报警处理,提高数据处理效率。

为解决上述技术问题,本发明提供的技术方案是:

第一方面,本发明提供一种数据异常的报警处理方法,包括:

步骤S1,获取流数据中的目标数据;

步骤S2,将规则引擎与大数据分析引擎Flink进行集成处理,得到报警规则引擎;

步骤S3,将所述目标数据发送至所述报警规则引擎中,通过所述大数据分析引擎Flink计算所述目标数据的统计结果,并将所述统计结果发送至所述规则引擎,对所述目标数据进行处理,实现对所述目标数据的报警异常处理。

本发明的数据异常的报警处理方法,其技术方案为:先获取流数据中的目标数据;接着将规则引擎与大数据分析引擎Flink进行集成处理,得到报警规则引擎;最后将所述目标数据发送至所述报警规则引擎中,通过所述大数据分析引擎Flink计算所述目标数据的统计结果,并将所述统计结果发送至所述规则引擎,对所述目标数据进行处理,实现对所述目标数据的报警异常处理。

本发明的数据异常的报警处理方法,通过将大数据分析引擎Flink与规则配置引擎(CEP)集成的方式,进行数据的异常报警处理,CEP在处理数据时,在实时性和复杂性方面都得到了很好的解决,即提高数据处理效率。

进一步地,所述步骤S2,具体为:

将所述规则引擎的组件集成到所述大数据分析引擎Flink的sink端,所述sink端作为流数据的出口;

根据所述sink端,得到sink函数,所述sink函数用来对数据进行报警异常处理。

将规则引擎与大数据分析引擎Flink进行集成的具体方式是将规则引擎的组件集成到大数据分析引擎Flink的sink端,sink端作为流数据的出口,提供了一些内在SinkFunction抽象类(sink函数)。通过这些内在的SinkFunction抽象类对数据进行报警异常处理。

进一步地,所述步骤S3,具体为:

根据所述sink函数,初始化设置所述规则引擎,并获取接收到的所述目标数据对应的规则ID;

根据所述规则ID,从预先设计的规则库中获取所述规则ID对应的规则语句;

将接收到的所述目标数据输入到所述规则引擎,每隔预设时间对所述目标数据进行异常判断,得到判定结果;

根据所述判定结果,得到报警结果,将所述报警结果输出至预先定义的目的地,完成数据报警处理。

目标数据是流数据,每隔预设时间,对接收到的每个流数据通过规则引擎进行异常判断,实现了对流数据的实时性处理。

进一步地,将接收到的所述目标数据输入到所述规则引擎,每隔预设时间对所述目标数据进行异常判断,得到判定结果:

当所述规则ID对应的规则语句有变更,判定所述判定结果为所述目标数据异常;

当所述规则ID对应的规则语句没有变更,判定所述判定结果为所述目标数据正常。

具体判断数据有没有异常,依据目标数据对应的规则ID与规则库中的规则语句进行比较,如果数据正常,规则语句没有变更,如果数据有异常,规则语句有变更,以此完成报警规则。

进一步地,根据所述判定结果,得到报警结果,具体为:

当所述判定结果为所述目标数据异常,重新启动所述规则引擎;

当所述判定结果为所述目标数据正常,关闭所述规则引擎。

根据对数据的判断结果,如果数据有异常,则重新启动规则引擎,接着进行数据异常的检测;如果数据没有异常,关闭规则引擎,完成整个数据报警异常的处理过程。

第二方面,本发明提供了一种数据异常的报警处理装置,包括:

目标数据获取模块,用于获取流数据中的目标数据;

集成模块,用于将规则引擎与大数据分析引擎Flink进行集成处理,得到报警规则引擎;

数据报警异常处理模块,用于将所述目标数据发送至所述报警规则引擎中,通过所述大数据分析引擎Flink计算所述目标数据的统计结果,并将所述统计结果发送至所述规则引擎,对所述目标数据进行处理,实现对所述目标数据的报警异常处理。

本发明的数据异常的报警处理装置,其技术方案为:先通过目标数据获取模块,获取流数据中的目标数据;接着通过集成模块,将规则引擎与大数据分析引擎Flink进行集成处理,得到报警规则引擎;最后通过数据报警异常处理模块,将所述目标数据发送至所述报警规则引擎中,通过所述大数据分析引擎Flink计算所述目标数据的统计结果,并将所述统计结果发送至所述规则引擎,对所述目标数据进行处理,实现对所述目标数据的报警异常处理。

本发明的数据异常的报警处理装置,通过将大数据分析引擎Flink与规则配置引擎(CEP)集成的方式,进行数据的异常报警处理,CEP在处理数据时,在实时性和复杂性方面都得到了很好的解决,即提高数据处理效率。

进一步地,所述集成模块,具体用于:

将所述规则引擎的组件集成到所述大数据分析引擎Flink的sink端,所述sink端作为流数据的出口;

根据所述sink端,得到sink函数,所述sink函数用来对数据进行报警异常处理。

将规则引擎与大数据分析引擎Flink进行集成的具体方式是将规则引擎的组件集成到大数据分析引擎Flink的sink端,sink端作为流数据的出口,提供了一些内在SinkFunction抽象类(sink函数)。通过这些内在的SinkFunction抽象类对数据进行报警异常处理。

进一步地,所述数据报警异常处理模块,具体用于:

根据所述sink函数,初始化设置所述规则引擎,并获取接收到的所述目标数据对应的规则ID;

根据所述规则ID,从预先设计的规则库中获取所述规则ID对应的规则语句;

将接收到的所述目标数据输入到所述规则引擎,每隔预设时间对所述目标数据进行异常判断,得到判定结果;

根据所述判定结果,得到报警结果,将所述报警结果输出至预先定义的目的地,完成数据报警处理。

目标数据是流数据,每隔预设时间,对接收到的每个流数据通过规则引擎进行异常判断,实现了对流数据的实时性处理。

进一步地,所述数据报警异常处理模块包括数据异常判断子模块,具体用于:

当所述规则ID对应的规则语句有变更,判定所述判定结果为所述目标数据异常;

当所述规则ID对应的规则语句没有变更,判定所述判定结果为所述目标数据正常。

具体判断数据有没有异常,依据目标数据对应的规则ID与规则库中的规则语句进行比较,如果数据正常,规则语句没有变更,如果数据有异常,规则语句有变更,以此完成报警规则。

进一步地,所述数据报警异常处理模块还包括报警结果子模块,具体用于:

当所述判定结果为所述目标数据异常,重新启动所述规则引擎;

当所述判定结果为所述目标数据正常,关闭所述规则引擎。

根据对数据的判断结果,如果数据有异常,则重新启动规则引擎,接着进行数据异常的检测;如果数据没有异常,关闭规则引擎,完成整个数据报警异常的处理过程。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。

图1示出了本发明实施例所提供的一种数据异常的报警处理方法的流程图;

图2示出了本发明实施例所提供的一种数据异常的报警处理装置的示意图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。

实施例一

图1示出了本发明第一实施例所提供的一种数据异常的报警处理方法的流程图;如图1所示,本发明实施例一提供了一种数据异常的报警处理方法,包括:

步骤S1,获取流数据中的目标数据;

步骤S2,将规则引擎与大数据分析引擎Flink进行集成处理,得到报警规则引擎;

具体为:

将规则引擎的组件集成到大数据分析引擎Flink的sink端,sink端作为流数据的出口;

根据sink端,得到sink函数,sink函数用来对数据进行报警异常处理。

将规则引擎与大数据分析引擎Flink进行集成的具体方式是将规则引擎的组件集成到大数据分析引擎Flink的sink端,sink端作为流数据的出口,提供了一些内在SinkFunction抽象类(sink函数)。通过这些内在的SinkFunction抽象类对数据进行报警异常处理。

步骤S3,将目标数据发送至报警规则引擎中,通过大数据分析引擎Flink计算目标数据的统计结果,并将统计结果发送至规则引擎,对目标数据进行处理,实现对目标数据的报警异常处理。

具体为:

根据sink函数,初始化设置规则引擎,并获取接收到的目标数据对应的规则ID;

根据规则ID,从预先设计的规则库中获取规则ID对应的规则语句;

启动规则引擎和定时器,将接收到的目标数据输入到规则引擎,通过定时器每隔预设时间对目标数据进行异常判断,得到判定结果:

当规则ID对应的规则语句有变更,判定判定结果为目标数据异常;

当规则ID对应的规则语句没有变更,判定判定结果为目标数据正常。

根据判定结果,得到报警结果,将报警结果输出至预先定义的目的地,完成数据报警处理:

当判定结果为目标数据异常,重新启动规则引擎;

当判定结果为目标数据正常,关闭规则引擎。

本发明的数据异常的报警处理方法,通过将大数据分析引擎Flink与规则配置引擎(CEP)集成的方式,进行数据的异常报警处理,CEP在处理数据时,每隔预设时间对接收到的每个流数据通过规则引擎进行异常判断,通过大数据分析引擎Flink与规则配置引擎(CEP)集成的方式对数据进行异常报警处理,在实时性和复杂性方面都得到了很好的解决,即提高数据处理效率。

具体地,SinkFunction抽象类供了3个具体实现open/invoke/close,具体如下:

open():

1.定义报警结果输出目的地,

2.初始化siddhi manager,就是进行规则引擎的初始化设置,包括开启规则引擎及规则引擎中的执行引擎;

3.根据规则id从规则库中获取规则语句;

4.启动siddhi执行计划,即启动规则引擎,此时的规则引擎是包含在报警规则引擎中;

5.启动定时器,每n秒定时检查规则库中规则id对应的规则语句是否有变更,如有变更则重启执行计划。

invoke();

1.数据流接收到的每条数据输入到siddhi的执行引擎,通过invoke将接收到流数据中的每条数据输入到规则引擎(siddhi)的执行引擎,即对每条数据进行异常检测。

close():

1.关闭siddhi执行计划;

2.关闭siddhi manager。

通过close实现对规则引擎和规则引擎中执行引擎的关闭,即结束程序。

使用示例:

DataStream<Object[]>dataStream=…;

dataStream.addSink(new SinkCEPFunction(“规则id”));

图2示出了本发明实施例所提供的一种数据异常的报警处理装置的示意图,如图2所示,本发明实施例二提供了一种数据异常的报警处理装置10,包括:

目标数据获取模块,用于获取流数据中的目标数据;

集成模块,用于将规则引擎与大数据分析引擎Flink进行集成处理,得到报警规则引擎;

具体为:

将规则引擎的组件集成到大数据分析引擎Flink的sink端,sink端作为流数据的出口;

根据sink端,得到sink函数,sink函数用来对数据进行报警异常处理。

将规则引擎与大数据分析引擎Flink进行集成的具体方式是将规则引擎的组件集成到大数据分析引擎Flink的sink端,sink端作为流数据的出口,提供了一些内在SinkFunction抽象类(sink函数)。通过这些内在的SinkFunction抽象类对数据进行报警异常处理。

数据报警异常处理模块,用于将目标数据发送至报警规则引擎中,通过大数据分析引擎Flink计算目标数据的统计结果,并将统计结果发送至规则引擎,对目标数据进行处理,实现对目标数据的报警异常处理:

具体为:

根据sink函数,初始化设置规则引擎,并获取接收到的目标数据对应的规则ID;

根据规则ID,从预先设计的规则库中获取规则ID对应的规则语句;

启动规则引擎和定时器,将接收到的目标数据输入到规则引擎,通过定时器每隔预设时间对目标数据进行异常判断,得到判定结果:

当规则ID对应的规则语句有变更,判定判定结果为目标数据异常;

当规则ID对应的规则语句没有变更,判定判定结果为目标数据正常。

根据判定结果,得到报警结果,将报警结果输出至预先定义的目的地,完成数据报警处理:

当判定结果为目标数据异常,重新启动规则引擎;

当判定结果为目标数据正常,关闭规则引擎。

本发明的数据异常的报警处理装置10,通过将大数据分析引擎Flink与规则配置引擎(CEP)集成的方式,进行数据的异常报警处理,CEP在处理数据时,每隔预设时间对接收到的每个流数据通过规则引擎进行异常判断,通过大数据分析引擎Flink与规则配置引擎(CEP)集成的方式对数据进行异常报警处理,在实时性和复杂性方面都得到了很好的解决,即提高数据处理效率。

具体地,SinkFunction抽象类供了3个具体实现open/invoke/close,具体如下:

open():

1.定义报警结果输出目的地;

2.初始化siddhi manager,就是进行规则引擎的初始化设置,包括开启规则引擎及规则引擎中的执行引擎;

3.根据规则id从规则库中获取规则语句;

4.启动siddhi执行计划,即启动规则引擎,此时的规则引擎是包含在报警规则引擎中;

5.启动定时器,每n秒定时检查规则库中规则id对应的规则语句是否有变更,如有变更则重启执行计划。

invoke();

1.数据流接收到的每条数据输入到siddhi的执行引擎,通过invoke将接收到流数据中的每条数据输入到规则引擎(siddhi)的执行引擎,即对每条数据进行异常检测。

close():

1.关闭siddhi执行计划;

2.关闭siddhi manager。

通过close实现对规则引擎和规则引擎中执行引擎的关闭,即结束程序。

使用示例:

DataStream<Object[]>dataStream=…;

dataStream.addSink(new SinkCEPFunction(“规则id”));

实施例二

基于实施例一中的数据异常的报警处理方法,及数据异常的报警处理装置10,结合具体的开发语言环境及应用场景,进行具体数据异常的报警处理过程说明。

本发明提供的数据异常的报警处理方法及装置,开发语言环境为Java。

1)、报警规则:x分钟指数振幅超标

规则描述:报警时刻前朔x分钟内,中小板指数、创业板指数、等指数其中之一,振幅超过K%;

2)、报警规则:盘中分时涨跌异常

指标描述:x分钟内,单支证券的振幅超过m%,且成交量超过n%;

指数与证券的振幅都可从行情数据中计算得到,而行情数据可以认为是一种较细粒度的KPI(统计结果),可以自己与CEP对接,在CEP中直接完成报警。也可以在大数据分析引擎Flink中完成更粗粒度的统计结果(如1分钟、3分钟等),将汇聚结果输出到CEP,由CEP完成最终报警,如此可进一步降低CEP的计算压力,提高报警效率。

规则语句样例:

define stream stream1(securityID long,mdType int,maxPx double,minPx double,totalVolumeTrade double,kltg long);

form stream1[(mdType==0 and minPx>0 and kltg>0 and(maxPx-minPx)/minPx>=0.03 and totalVolumeTrade/kltg>=0.01)

or(mdType!=0 and minPx>0 and(maxPx–minPx)/minPx>=0.03)]

select securityID,mdType,maxPx,minPx,totalVolumeTrade,kltg。

3)、报警规则:x分钟会员金额超标

指标描述:报警时刻前朔x分钟内,单个会员的买入金额或卖出金额超过P亿元,在成交流中,先对每笔成交单解析出买卖双方属实的会员以及买卖金额,然后按会员进行汇聚(统计),统计x分钟内各会员买卖总金额,将结果输出给CEP,由CEP完成报警。

规则语句样例:

define stream stream1(mbr long,transacTime long,totalBuyValueTrade double,totalSellValueTrade double);

from stream1[totalValueTrade>=1000 or totalSellValueTrade>=1000]

select mbr,transacTime,totalValueTrade,totalSellValueTrade。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1