CN102930046B - 数据处理方法、计算节点及*** - Google Patents
数据处理方法、计算节点及*** Download PDFInfo
- Publication number
- CN102930046B CN102930046B CN201210460097.5A CN201210460097A CN102930046B CN 102930046 B CN102930046 B CN 102930046B CN 201210460097 A CN201210460097 A CN 201210460097A CN 102930046 B CN102930046 B CN 102930046B
- Authority
- CN
- China
- Prior art keywords
- event
- computing node
- algorithm
- bpe
- cep
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供一种数据处理方法、计算节点及***。方法包括:BPE向CEP实例注册其算法;所述CEP实例在检测到所述预设算法关注的事件满足该算法触发计算的条件时,将该算法计算所需的事件传递给所述BPE;所述BPE根据该算法进行计算,得到计算结果;若所述BPE根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例;所述CEP实例在检测到其它算法关注的事件满足其触发计算的条件且中间事件为其计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。由CEP实例完成多事件多算法的关联,简化了计算过程,提高了时效性。
Description
技术领域
本发明实施例涉及数据计算领域,尤其涉及一种数据处理方法、计算节点及***。
背景技术
Hadoop技术是最近几年兴起的处理海量数据的分布式计算平台,在处理海量数据和可靠性方面有着巨大的优势。Hadoop是一个能够对大量数据进行分布式处理的软件框架,以一种可靠、高效、可伸缩的方式进行处理的。Hadoop是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够处理拍字节(PB)级数据。
关键绩效指标(KeyPerformanceIndicator,简称KPI)/关键质量指标(KeyQualityIndicator,简称KQI)计算往往需要在多个事件之间建立关联,即多个事件基于某个维度关联,并满足条件才生成一个KPI/KQI。但Hadoop在处理此类问题上缺少很好的支持,需要多次映射化简(MapReduce,简称MR)的复杂操作,生成更多的中间文件才能部分达成。而MR时效性不高,所有的中间结果都要通过输入输出(InputOutput,简称IO)写入Hadoop文件***(HadoopFileSystem,简称HDFS)中,然后再读出参与下次的运算,对于超大数据的处理IO成为瓶颈,实时性下降。
发明内容
本发明实施例提供一种数据处理方法、计算节点及***,用以一定程度上解决现有Hadoop中关联运算需要多次MR的复杂操作导致实时性下降的问题。
第一方面,本发明实施例提供的一种数据处理方法,所述方法应用于商业处理实体BPE上,所述方法包括:
向与所述BPE位于同一计算节点上的复杂事件处理CEP实例注册所述BPE的预设算法,所述BPE的预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件;
获得所述CEP实例传递的所述预设算法计算所需的事件,其中所述预设算法计算所需的事件是所述CEP实例在检测到所述预设算法关注的事件满足所述触发计算的条件时,所传递的;
根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果;
若根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,使得所述CEP实例在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
在第一方面的第一种可能的实现方式中,所述根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果之后还包括:
将所述计算结果传递给入库处理实体DPE,以使所述DPE将所述计算结果保存到数据库中;所述DPE位于所述计算节点或另一计算节点上。
结合上述第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述将所述计算结果传递给入库处理实体DPE包括:
根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果传递给算术处理实体APE,以使所述APE对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给所述DPE;
所述APE位于所述计算节点或另一计算节点上,所述APE与所述DPE位于同一计算节点或不同计算节点。
第二方面,本发明实施例提供的一种数据处理方法,所述方法应用于复杂事件处理CEP实例上,所述方法包括:
执行与所述CEP位于同一计算节点上的商业处理实体BPE的预设算法的注册,所述BPE的预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件;
在检测到所述预设算法关注的事件满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE,以使所述BPE根据所述预设算法对所述预设算法计算所需的事件进行计算、得到计算结果;
获得所述BPE写入的所述计算结果,所述计算结果为所述BPE在根据预设的业务逻辑判断所述计算结果需进一步计算时,以中间事件的方式写入的;
在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所属其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
在第二方面的第一种可能的实现方式中,所述预设算法关注的事件包括所述预设算法关注的原始事件和所述预设算法关注的的中间事件;所述在检测到所述预设算法关注的事件满足所述触发计算的条件之前,还包括:
从消息总线上提取所述预设算法关注的原始事件;
所述CEP实例检测所述预设算法关注的原始事件和所述预设算法关注的中间事件是否满足所述触发计算的条件。
第三方面,本发明实施例提供的一种数据处理方法,所述方法应用于包括商业处理实体BPE与复杂事件处理CEP实例的物理节点上,所述方法包括:
BPE向CEP实例注册所述BPE的预设算法,所述预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件;
所述CEP实例在检测到所述预设算法关注的事件满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE;
所述BPE根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果;
若所述BPE根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例;
所述CEP实例在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
在第三方面的第一种可能的实现方式中,所述BPE根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果之后还包括:
所述BPE将所述计算结果传递给入库处理实体DPE,以使所述DPE将所述计算结果保存到数据库中;所述DPE位于所述计算节点或另一计算节点上。
结合上述第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述CEP实例在检测到所述预设算法关注的事件满足所述触发计算的条件之前,还包括:
从消息总线上提取原始事件;
所述CEP实例检测所述提取的原始事件和被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件。
结合上述第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述从消息总线上提取原始事件包括:
接收消息服务器根据调度器的订购指令发送的所述计算节点上所有BPE的算法关注的原始事件;或
位于所述计算节点上的事件过滤器根据调度器的订购配置从消息总线上提取所述计算节点上所有BPE的算法关注的原始事件,并传递给所述CEP实例。
结合第三方面的上述任一种可能的实现方式,在第三方面的第四种可能的实现方式中,所述BPE将所述计算结果传递给入库处理实体DPE包括:
所述BPE根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果传递给算术处理实体APE,以使所述APE对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给所述DPE;
所述APE位于所述计算节点或另一计算节点上,所述APE与所述DPE位于同一计算节点或不同计算节点。
结合上述第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述APE对所述BPE和其它BPE的计算结果进行汇总计算之后,还包括:
若所述APE根据预设的业务逻辑判断所述汇总结果需进一步计算,则所述APE将所述汇总结果作为中间事件写入与所述APE位于同一计算节点的CEP实例。
第四方面,本发明实施例提供的一种计算节点,包括:商业处理实体BPE和复杂事件处理CEP实例;
所述BPE,用于向所述CEP实例注册所述BPE的预设算法,所述预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件;
所述CEP实例,用于在检测到所述预设算法关注的事件满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE;
所述BPE还用于,根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果;若根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例;
所述CEP实例还用于,在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述预设算法中的触发计算的条件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
在第四方面的第一种可能的实现方式中,所述BPE还用于,将所述计算结果发送给另一计算节点上的入库处理实体DPE,以使所述DPE将所述计算结果保存到数据库中;或
所述计算节点还包括DPE,所述BPE还用于,将所述计算结果发送给同一计算节点上的DPE,以使所述DPE将所述计算结果保存到数据库中。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述CEP实例还用于:
从消息总线上提取原始事件;
检测所述提取原始事件和被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件。
结合第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述CEP实例具体用于,
接收消息服务器根据调度器的订购指令发送的所述计算节点上所有BPE的算法关注的原始事件,检测所述原始事件和所述被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件,在检测到满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE,以及用于在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE;
或,所述计算节点还包括事件过滤器,所述事件过滤器用于根据调度器的订购配置从消息总线上提取所述计算节点上所有BPE的算法关注的原始事件,并传递给所述CEP实例;
所述CEP实例具体用于,接收所述事件过滤器传递的所述原始事件,检测所述原始事件和所述被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件,在检测到满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE,以及用于在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
结合第四方面或第四方面的上述任一种可能的实现方式,在第四方面的第四种可能的实现方式中,所述BPE还用于,根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果发送给另一计算节点上的算术处理实体APE,以使所述APE对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给所述DPE;或
所述计算节点还包括APE,所述BPE还用于,根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果发送给同一计算节点上的APE,以使所述APE对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给所述DPE;
所述APE与所述DPE位于同一计算节点或不同计算节点。
结合第四方面的第四种可能的实现方式,在第四方面的第五种可能的实现方式中所述APE还用于,若根据预设的业务逻辑判断所述汇总结果需进一步计算,则将所述汇总结果作为中间事件写入同一计算节点上的CEP实例。
第五方面,本发明实施例提供了一种分布式计算***,包括:
调度器和至少一个计算节点,各计算节点均为如上所述的计算节点;
所述调度器,用于收集各计算节点的资源信息,根据所述资源信息确定各计算节点的调度方式,根据各计算节点的调度方式分别调度各计算节点。
在第五方面的第一种可能的实现方式中,所述调度方式包括:预设算法,预设业务逻辑,是否开启计算节点上的商业处理实体BPE、算术处理实体APE、入库处理实体DPE。
结合第五方面或第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述计算节点有多个;所述调度器具体用于,预留一个计算节点作为备用计算节点,调度除所述备用计算节点之外的其它计算节点;当所述调度的其它计算节点中一个计算节点异常时,根据所述异常的计算节点的调度方式和所述异常的计算节点的缓存数据调度所述备用计算节点。
以上多个技术方案中的至少一个技术方案具有如下优点或有益效果:
本发明实施例采用计算节点上的商业处理实体(BusinessProcessorEntity,简称BPE)向该计算节点上的复杂事件处理(Complexeventprocessing,简称CEP)实例注册所述BPE的预设算法,所述CEP实例在检测到所述预设算法关注的事件满足所述预设算法的触发计算的条件时将计算所需的事件传递给所述BPE,所述BPE在根据所述预设算法进行计算得到计算结果后,若判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,所述CEP实例在检测到已注册的其它算法关注的事件满足所述其它算法中触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给注册了所述其它算法的BPE的技术手段,由CEP实例完成多事件多算法的关联,简化了计算过程,提高了时效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种数据处理方法的流程示意图;
图2为本发明实施例提供的又一种数据处理方法的流程示意图;
图3为本发明实施例提供的再一种数据处理方法的流程示意图;
图4为本发明实施例提供的另一种数据处理方法的流程示意图;
图5为本发明实施例提供的一种计算节点300的结构示意图;
图6为本发明实施例提供的一种计算节点400的结构示意图;
图7为本发明实施例提供的一种计算节点500的结构示意图;
图8为本发明实施例提供的一种分布式计算***600的结构示意图;
图9为本发明实施例的一种应用场景示意图;
图10为本发明实施例的又一种应用场景示意图;
图11为本发明实施例的再一种应用场景示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种数据处理方法的流程示意图。所述方法应用于包括BPE与CEP实例的计算节点上,如图1所示,该方法包括:
101、BPE向CEP实例注册所述BPE的预设算法,所述预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件。
本发明实施例中BPE的功能包括KPI/KQI的计算、用户信令分析等。BPE和CEP实例可以一同部署在每个计算节点上,举例来说,本发明实施例的计算节点可以是刀片***的一个刀片实体(其产品形态可以是单板),也可称为物理节点。这里的预设算法是BPE负责的KPI/KQI计算的算法、信令分析的算法等,算法也可称为功能函数、商业逻辑。
举例来说,任何一个KPI的计算都可以表示为:K=f(IE1,IE2,IE3...),其中K为KPI,f为功能函数,信息元素(InformationElement,简称IE)为网络中某个或某些事件参数的汇聚,常见的有以下几种情况:
1)计算字节数的汇总:IE=SUM(EVENT.x)
2)计算平均时长,跨网元的情况类似:IE=AVG(EVENT1.T-EVENT2.T)
3)计算次数,如错误码的次数:IE=count(EVENT)
计算任何一个KPI可以分为两个过程:1)某个集合中事件(Event)参数的汇聚计算IE;2)通过IE的运算来得出KPI。
预设算法可以以实体查询语言(EntityQueryLanguage,简称EQL)语句的形式来表达,包括该算法关注的事件的标识、该算法计算所需的事件的标识和触发计算的条件等。具体地,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件。
102、所述CEP实例在检测到所述预设算法关注的事件满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE。
预设算法中的触发计算的条件是启动该预设算法计算的条件,只有当该预设算法关注的事件满足触发计算的条件时,才启动根据所述预设算法的计算。
103、所述BPE根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果。
举例来说,所述BPE的算法关注两个事件:EVENT1{ID,TIME,VOLUMN}和EVENT2{TIME,SUCCESS},需要实现如下算法:当EVENT2中的SUCCESS为真,同时EVENT2中的TIME等于EVENT1中的TIME时,计算在10分钟内,累加EVENT1中的VOLUMN的值,并计算EVENT1事件的个数;于是BPE就向CEP实例注册如下EQL语句以实现其算法:
SelectEvent1.id,count(*),sum(Event1.Volumn)fromEvent1.win_batch(10min)whereEvent1.time=Event2.timeAndEvent2.Success=1
这样CEP实例就会跟踪EVENT1和EVENT2,当EVENT2中的SUCCESS为真,同时EVENT2中的TIME等于EVENT1中的TIME时,即该算法关注的EVENT1和EVENT2满足触发计算的条件时,将该算法计算所需的事件EVENT1传递给BPE,所述BPE根据上述算法累加EVENT1中的VOLUMN的值,并计算EVENT1事件的个数,每隔10分钟得到一条对应于Event1.id,count(*),sum(Event1.Volumn)的计算结果,这就是一条KPI记录。
104、若所述BPE根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例。
计算结果是否需进一步计算,取决于预先设计好的业务逻辑。举例来说,有些计算结果作为初级KPI,还需进一步地计算,得到高级KPI,因此,根据业务逻辑这些初级KPI的计算结果与其它的高级KPI算法有关,则这些初级KPI的计算结果需进一步计算。通常,由其它BPE根据自己的算法对计算结果进行进一步的计算。如果计算结果需进一步计算,可以理解为,所述计算结果为中间计算结果。
应当理解的是,本发明实施例中,将中间计算结果作为中间事件写入所述CEP实例,可见,所有中间结果都保存在内存或是分布式cache中,相比于现有Hadoop技术将所有的中间计算结果写入数据库、然后再从数据库中读出进行进一步的计算,本发明实施例减少了不必要的IO操作,从而提升时效性。
105、所述CEP实例在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
具体地,本发明实施例中由CEP实例根据已注册算法关注的事件、计算所需的事件和触发计算的条件来判断事件与算法之间的关联性,进而实现多事件和多算法之间的关联。其中,每个计算节点上可能部署了一个或多个BPE,每个BPE均向部署于同一计算节点的CEP实例注册自己的算法。应当理解的是,全文中提到的位于计算节点与部署于计算节点是同一种技术含义,都可以理解为作为软件逻辑部署于物理实体上,或者,作为软件逻辑被包括于物理实体中。
进一步地,在步骤103完成了计算之后,还需将计算结果保存到数据库中。本发明实施例中利用入库处理实体(DataStorageProcessorEntity,简称DPE)来完成入库。对应地,103之后还包括:
所述BPE将所述计算结果传递给DPE,以使所述DPE将所述计算结果保存到数据库中。
其中,DPE与所述BPE可以部署在同一计算节点,也可以部署在不同的计算节点,本实施例对此不作限定。具体地,这里的数据库可以是所述DPE所在计算节点的本地数据库,也可以是分布式计算***中的共享数据库。需要说明的是,103之后,所述BPE根据预设的业务逻辑判断所述计算结果是否需进一步计算,若是则可以并行执行将计算结果传递给DPE入库和104中将所述计算结果作为中间事件写入CEP实例的步骤,否则只需执行将计算结果传递给DPE入库的步骤。
应当理解的是,本发明实施例中,保存到数据库中的对象为完成初级运算的计算结果,从而实现较高的数据收缩比,降低了联机分析处理(OLAP,Onlineanalyticalprocessing)操作对数据库的冲击,同时也降低了数据库的数据存储量。
另外,需要说明的是,一个算法关注的事件既可以包括原始事件,也可以包括中间事件。对应地,102和105中CEP实例同时检测原始事件和中间事件中所述算法关注的事件是否满足触发计算的条件。对应地,102之前还包括:
所述CEP实例从从消息总线上提取原始事件;
所述CEP实例检测所述提取的原始事件和被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件。
通常,事件源以广播方式将原始事件发布到消息总线上,事件源可以是网络探针PROBE或深度包检测(DeepPackageInspection,简称DPI)服务器。
进一步地,所述从消息总线上提取所述原始事件具体包括:
接收消息服务器根据调度器的订购指令发送的所述计算节点上所有BPE的算法关注的原始事件;或
位于所述计算节点上的事件过滤器根据调度器的订购配置从消息总线上提取所述计算节点上所有BPE的算法关注的原始事件,并传递给所述CEP实例。
具体地,可以由调度器通知每个计算节点的BPE启动什么算法,该算法关注什么事件,相应地从消息总线上订购什么事件,这是一个订购和发布的过程,订阅发布有两个选择方式:1、在应用层面实现订阅发布,即消息服务器直接将关注的原始事件发送给CEP实例;2、在网络的二层下实现消息的订阅,即事件过滤器通过控制计算节点上的网络适配器在消息总线中提取关注的原始事件,这个方法效率高,但需要硬件配合完成。通常,一个计算节点上的CEP实例从消息总线上提取该计算节点上所有BPE的算法关注的事件。举例来说,当一个计算节点上的所有BPE只关注EVENT1和EVENT2时,则该计算节点上的CEP实例仅从消息总线上提取EVENT1和EVENT2,而不提取EVENT3;当一个计算节点上两个BPE中一个BPE的算法关注EVENT1,另一个BPE的算法关注EVENT2,则该计算节点上的CEP实例也从消息总线上提取EVENT1和EVENT2。
需要说明的是,若一个算法仅关注原始事件,则对应地,CEP实例仅为该算法检测该算法关注的原始事件;若一个算法仅关注中间事件,则对应地,CEP实例仅为该算法检测该算法关注的中间事件。进一步地,考虑到某类事件特别多,无法在一个计算节点上完成针对此类事件的计算,需要将该类事件以某个纬度划分为不同的计算节点上的BPE来计算,当这些BPE计算完成后,再将这些结果汇总,因此还可以设置一类PE,如算术处理实体(ArithmeticProcessorEntity,简称APE)用于计算结果的汇总。
图2为本发明实施例提供的又一种数据处理方法的流程示意图。在上述实施例的基础上,如图2所示,101~103之后,还包括:
106、所述BPE根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果发送给APE。
具体地,负责汇总的APE与负责计算的BPE可以部署于在同一计算节点,也可以部署在不同的计算节点。BPE根据预设的业务逻辑确定将计算结果发给同一计算节点上的APE还是另一计算节点上的APE。通常,若与所述BPE位于同一计算节点的APE也开启了,较优地,设计业务逻辑以使BPE将计算结果发给同一计算节点上的APE进行汇总。
需要说明的是,若所述BPE根据预设的业务逻辑判断所述计算结果不需要汇总,则直接将所述计算结果传递给DPE入库。另外,104~105与106~108可以并行执行。
107、所述APE对所述BPE和其它BPE的计算结果进行汇总计算。
具体地,其它BPE与所述APE、所述BPE可以部署于在同一计算节点,也可以部署在不同的计算节点。较优地,负责汇总的APE与计算结果需由该APE汇总的各BPE位于同一计算节点。
108、所述APE将汇总结果发送给所述DPE,以使所述DPE将所述汇总结果保存到数据库中。
具体地,负责汇总的APE与负责入库的DPE可以部署于在同一计算节点,也可以部署在不同的计算节点。APE根据预设的业务逻辑确定将汇总结果发给同一计算节点上的DPE还是另一计算节点上的DPE。通常,若与所述APE位于同一计算节点的DPE也开启了,为了尽量减少跨物理节点的网络通讯流量,较优地,在设计中优选地保证APE将汇总结果发给同一计算节点上的DPE进行入库。
在一些场景下,汇总结果还需要进一步地计算。对应地,107之后,还包括:
若所述APE根据预设的业务逻辑判断所述汇总结果需进一步计算,则所述APE将所述汇总结果作为中间事件写入与所述APE位于同一计算节点的CEP实例。
需要说明的是,当一个计算节点上同时部署有BPE和APE时,该计算节点上的CEP实例中被写入的中间事件除了BPE写入的中间事件,还包括APE写入的中间事件。进一步地,107之后,所述APE根据预设的业务逻辑判断所述汇总结果是否需进一步计算,若是则可以并行执行将汇总结果传递给DPE入库和将所述汇总结果作为中间事件写入CEP实例的步骤,否则只需执行将汇总结果传递给DPE入库的步骤。
进一步地,为了均衡各计算节点的负载,整个***的运作都是由调度器来完成协调工作的,调度器根据收集到的每个计算节点上的资源信息,如CPU当前使用的情况和内存剩余情况来判定各计算节点的负载情况,从而来确定各计算节点的调度方式,包括BPE的预设算法、预设业务逻辑以及是否开启计算节点上的各类PE,并根据各计算节点的调度方式分别调度各计算节点。举例来说,调度方式包括是否开启各计算节点上的BPE、APE或DPE,若开启BPE则进一步地配置该BPE的预设算法,比如该BPE计算哪些KPI,进一步地,还可以包括是否开启各计算节点上的事件过滤器,若开启事件过滤器则该事件过滤器的订购配置如何等。需要说明的是,为了易于管理和扩展,各物理节点上优选地部署相同的PE,确保所有物理节点是同质的,但运行时可以由调度器决策开启不同的PE。
进一步地,设计上还可以考虑容错机制,比如采取N+1的方式,即有一个计算节点是作为备用计算节点,当任何一个其它计算节点由于其它原因而损坏,备用计算节点就会立刻接手其工作,从而确保整个处理流不会长时间的中断。对应地,所述计算节点有多个;所述根据各计算节点的调度方式分别调度各计算节点具体包括:
预留一个计算节点作为备用计算节点,调度除所述备用计算节点之外的其它计算节点;
当所述调度的其它计算节点中一个计算节点异常时,根据所述异常的计算节点的调度方式和所述异常的计算节点的缓存数据调度所述备用计算节点。
其中,调度器在这个过程中起到关键的作用,调度器可以跟踪每个计算节点的资源信息,并实时监控每个计算节点的健康状况,当一个计算节点损坏离线后,调度器可以立刻将损坏的计算节点的缓存数据发送给备用计算节点,使其替代损坏的计算节点继续事件处理的工作。通常,调度器也可以在一个物理节点上实现。
可见,本发明实施例采用BPE向位于同一计算节点的CEP实例注册所述BPE的预设算法,所述CEP实例在检测到所述预设算法关注的事件满足所述预设算法中的触发计算的条件时将所述预设算法计算所需的事件传递给所述BPE,所述BPE在根据所述预设算法进行计算得到计算结果后,若判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,所述CEP实例在检测到已注册的其它算法关注的事件满足所述其它算法的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给注册了所述其它算法的BPE的技术手段,由CEP实例完成多事件多算法的关联,简化了计算过程,提高了时效性。
图3为本发明实施例提供的再一种数据处理方法的流程示意图。所述方法应用于BPE上,如图3所示,所述方法包括:
201、向与所述BPE位于同一计算节点上的CEP实例注册所述BPE的预设算法,所述BPE的预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件。
具体地,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件。
202、获得所述CEP实例传递的所述预设算法计算所需的事件,其中所述预设算法计算所需的事件是所述CEP实例在检测到所述预设算法关注的事件满足所述触发计算的条件时,所传递的。
203、根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果。
204、若根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,使得所述CEP实例在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
进一步地,203之后还可以包括:
将所述计算结果传递给DPE,以使所述DPE将所述计算结果保存到数据库中;所述DPE位于所述计算节点或另一计算节点上。
可选地,所述将所述计算结果传递给入库处理实体DPE包括:
根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果传递给APE,以使所述APE对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给所述DPE;
所述APE位于所述计算节点或另一计算节点上,所述APE与所述DPE位于同一计算节点或不同计算节点。
本实施例的具体实现可参照图1、图2所示实施例。
可见,本发明实施例采用BPE向位于同一计算节点的CEP实例注册所述BPE的预设算法,所述CEP实例在检测到所述预设算法关注的事件满足所述预设算法中的触发计算的条件时将所述预设算法计算所需的事件传递给所述BPE,所述BPE在根据所述预设算法进行计算得到计算结果后,若判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,所述CEP实例在检测到已注册的其它算法关注的事件满足所述其它算法的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给注册了所述其它算法的BPE的技术手段,由CEP实例完成多事件多算法的关联,简化了计算过程,提高了时效性。
图4为本发明实施例提供的另一种数据处理方法的流程示意图。所述方法应用于CEP实例上,如图4所示,所述方法包括:
301、执行与所述CEP位于同一计算节点上的BPE的预设算法的注册,所述BPE的预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件。
具体地,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件。
302、在检测到所述预设算法关注的事件满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE,以使所述BPE根据所述预设算法对所述预设算法计算所需的事件进行计算、得到计算结果。
303、获得所述BPE写入的所述计算结果,所述计算结果为所述BPE在根据预设的业务逻辑判断所述计算结果需进一步计算时,以中间事件的方式写入的。
304、在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
可选地,所述预设算法关注的事件包括所述预设算法关注的原始事件和所述预设算法关注的的中间事件;对应地,301之前,还可以包括:
从消息总线上提取所述预设算法关注的原始事件;
所述CEP实例检测所述预设算法关注的原始事件和所述预设算法关注的的中间事件是否满足所述触发计算的条件。
本实施例的具体实现可参照图1、图2所示实施例。
可见,本发明实施例采用BPE向位于同一计算节点的CEP实例注册所述BPE的预设算法,所述CEP实例在检测到所述预设算法关注的事件满足所述预设算法中的触发计算的条件时将所述预设算法计算所需的事件传递给所述BPE,所述BPE在根据所述预设算法进行计算得到计算结果后,若判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,所述CEP实例在检测到已注册的其它算法关注的事件满足所述其它算法的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给注册了所述其它算法的BPE的技术手段,由CEP实例完成多事件多算法的关联,简化了计算过程,提高了时效性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本发明实施例提供的一种计算节点300的结构示意图。如图5所示,计算节点300包括:
BPE21,用于向CEP实例22注册BPE21的预设算法,所述预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件;
CEP实例22,用于在检测到所述预设算法关注的事件满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给BPE21;
BPE21还用于,根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果;若根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入CEP实例22;
CEP实例22还用于,在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于计算节点300上向CEP实例22注册了所述其它算法的BPE。
需要说明的是,一个计算节点上可以部署一个或多个BPE,该一个或多个BPE均向该计算节点上的CEP实例注册自己的算法,每个算法均包括各自关注的事件的标识、计算所需的事件的标识和触发计算的条件。通常,事件的标识可以是事件的名称。
可选地,BPE21还用于,将所述计算结果发送给另一计算节点上的DPE,以使所述DPE将所述计算结果保存到数据库中。
图6为本发明实施例提供的又一种计算节点400的结构示意图。如图6所示,在图5所示计算节点300的基础上,计算节点400还包括:DPE23,对应地,BPE21还用于,将所述计算结果发送给DPE23,以使DPE23将所述计算结果保存到数据库中。
进一步地,,CEP实例22还用于:
从消息总线上提取原始事件;
检测所述提取原始事件和被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件。
进一步地,CEP实例22具体用于,接收消息服务器根据调度器的订购指令发送的计算节点300上所有BPE的算法关注的原始事件,检测所述原始事件和所述被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件,在检测到满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给BPE21,以及用于在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于计算节点300上、向CEP实例22注册了所述其它算法的BPE;
或,计算节点300还包括事件过滤器24,事件过滤器24用于根据调度器的订购配置从消息总线上提取计算节点上300所有BPE的算法关注的原始事件,并传递给所述CEP实例;
CEP实例22具体用于,接收事件过滤器24传递的所述原始事件,检测所述原始事件和所述被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件,在检测到满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给BPE21,以及用于在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于计算节点300上、向CEP实例22注册了所述其它算法的BPE。
可选地,BPE21还用于,根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果发送给另一计算节点上的APE,以使所述APE对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给DPE。
可选地,计算节点400还包括APE25;对应地,BPE21还用于,根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果发送给APE25,以使所述APE25对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给DPE23;
在一种实现方式下,APE25与所述DPE23可以是位于同一计算节点;在另一种实现方式下,APE25与所述DPE23可以是位于不同计算节点。
进一步地,APE25还用于,若根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入同一计算节点上的CEP实例22。
上述计算节点实施例的具体实现参照本发明实施例提供的一种数据处理方法。
可见,本发明实施例采用BPE向位于同一计算节点上的CEP实例注册所述BPE的预设算法,所述CEP实例在检测到所述预设算法关注的事件满足所述预设算法中的触发计算的条件时将所述预设算法计算所需的事件传递给所述BPE,所述BPE在根据所述预设算法进行计算得到计算结果后,若判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,所述CEP实例在检测到已注册的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给注册了所述其它算法的BPE的技术手段,由CEP实例完成多事件多算法的关联,简化了计算过程,提高了时效性。
图7是本发明实施例提供的又一种计算节点500的结构示意图。如图7所示,计算节点500一般包括至少一个处理器510,例如中央处理单元(CentralProcessingUnit,简称CPU),数字信号处理器(DigitalSignalProcessor,简称DSP),至少一个端口520,存储器530,和至少一个通信总线540。通信总线540用于实现这些装置之间的连接通信。处理器510用于执行存储器530中存储的可执行模块,例如计算机程序;可选地,计算节点500可包括用户接口550,用户接口550包括但不限于显示器,键盘和点击设备,例如鼠标、轨迹球(trackball)、触感板或者触感显示屏。存储器530可能包含高速随机存储器(RandomAccessMemory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
在一些实施方式中,存储器530存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作***532,包含各种***程序,用于实现各种基础业务以及处理基于硬件的任务;
应用模块534,包含各种应用程序,用于实现各种应用业务。
应用模块534中包括但不限于BPE21和CEP实例22。进一步地,应用模块534中还包括:DPE23、事件过滤器24、APE25。
应用模块534中各单元的具体实现参见图3或图4所示实施例中的相应单元,在此不赘述。
可见,本发明实施例采用BPE向位于同一计算节点上的CEP实例注册所述BPE的预设算法,所述CEP实例在检测到所述预设算法关注的事件满足所述预设算法中的触发计算的条件时将所述预设算法计算所需的事件传递给所述BPE,所述BPE在根据所述预设算法进行计算得到计算结果后,若判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,所述CEP实例在检测到已注册的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件,将所述中间事件传递给注册了所述其它算法的BPE的技术手段,由CEP实例完成多事件多算法的关联,简化了计算过程,提高了时效性。
图8为本发明实施例提供的一种分布式计算***600的结构示意图。如图8所示,***600包括:
调度器61和至少一个计算节点62,各计算节点62均为如上实施例所述的计算节点;
调度器61,用于收集各计算节点62的资源信息,根据所述资源信息确定各计算节点62的调度方式,根据各计算节点62的调度方式分别调度各计算节点62。需要说明的是,这里的资源信息包括但不限于CPU利用率和内存占用率等。
进一步地,所述调度方式包括:预设算法,预设业务逻辑,是否开启计算节点62上的BPE、APE、DPE,等。
进一步地,当计算节点62有多个时,调度器61具体用于,预留一个计算节点作为备用计算节点,调度除所述备用计算节点之外的其它计算节点;当所述调度的其它计算节点中一个计算节点异常时,根据所述异常的计算节点的调度方式和所述异常的计算节点的缓存数据调度所述备用计算节点。
需要说明的是,本实施例中的调度器61也可以部署在一个计算节点(例如,刀片***中的某个刀片实体或刀片节点)上,换言之,即本实施例中的调度器61也可以被包括在一个计算节点内。较优的,部署有调度器的计算节点上进一步包括但不限于BPE21和CEP实例22。进一步地,还可以包括:DPE23、事件过滤器24、APE25。
本实施例的具体实现参照本发明实施例提供的一种数据处理方法。
可见,本发明实施例采用BPE向位于同一计算节点上的CEP实例注册所述BPE的预设算法,所述CEP实例在检测到所述预设算法关注的事件满足所述预设算法中的触发计算的条件时将所述预设算法计算所需的事件传递给所述BPE,所述BPE在根据所述预设算法进行计算得到计算结果后,若判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,所述CEP实例在检测到已注册的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给注册了所述其它算法的BPE的技术手段,由CEP实例完成多事件多算法的关联,简化了计算过程(尤其是简化KPI/KQI的计算过程),提高了时效性。
进一步的,本发明实施例中,采用了N+1的容错机制,即有一个计算节点是作为备用计算节点,当任何一个计算节点损坏,备用的计算节点能立刻接手其工作,从而确保整个处理流不会长时间的中断。
进一步的,本发明实施例的分布式计算***的运作是由调度器来完成协调工作的,调度器根据收集到的各计算节点62的资源信息确定各计算节点62的调度方式,所述调度方式包括:预设算法,预设业务逻辑,是否开启计算节点62上的BPE、APE、DPE等(例如,调度器根据收集到的各计算节点62来确定在哪个计算节点上计算哪些KPI),以实现处理能力能均匀的分布到各个计算节点上,从而提供了灵活的分布式调度方案。
图9为本发明实施例的一种应用场景示意图。如图9所示,本发明实施例应用在单一计算节点的场景下,该单一计算节点上设置了CEP实例、BPE1-BPE6、DPE,其中,BPE1-BPE3负责初级KPI的计算,即计算IE,也可称为IEfactory,BPE4-BPE6负责高级KPI的计算,也可称为Metrics。该场景中执行如下步骤:
401、BPE1-BPE6向CEP实例注册各自的算法,即向CEP的运行时(CEPRuntime)创建模式与注册回调***(createpatternandregistercallbacklistener)。
402、CEP实例在检测到BPE1-BPE3算法各自关注的事件分别满足各算法中触发计算的条件时,将各算法计算所需的事件传递给BPE1-BPE3。
403、BPE1-BPE3根据各自的算法分别对各自计算所需的事件进行计算,将初级KPI上报给DPE。
404、DPE完成入库,即将初级KPI保存到数据仓库(DataWarehouse,简称DWH)中。
405、BPE1-BPE3将初级KPI重新写入CEP实例。
406、CEP实例检测到BPE4-BPE6算法关注的事件满足各算法中触发计算的条件且初级KPI为BPE4-BPE6算法计算所需的事件,将初级KPI传递给BPE4-BPE6。
407、BPE4-BPE6生成高级KPI,并上报给DPE。
408、DPE完成入库,即将高级KPI保存到DWH中。
需要说明的是,403中BPE1-BPE3将初级KPI上报给DPE、404和405-408可以同步进行。
图10为本发明实施例的又一种应用场景示意图。如图10所示,本发明实施例应用在多个计算节点的场景下,两个计算节点上均设置了CEP实例、BPE1-BPE4、APE和DPE。此场景中,各计算节点上均完成单一场景下的运算,包括初级KPI和高级KPI,然后利用APE完成跨计算节点的汇总,并由DPE完成入库。具体地,各计算节点上均执行如下步骤:
501、BPE1-BPE4分别向各自所在计算节点上的CEP实例注册各自的算法。
502、CEP实例在检测到BPE1-BPE2算法各自关注的事件分别满足各算法中的触发计算的条件时,将各算法计算所需的事件分别传递给BPE1-BPE2。
503、BPE1-BPE2根据各自的算法分别对各自计算所需的事件进行计算,将初级KPI传递给APE。
504、BPE1-BPE2将初级KPI重新写入CEP实例。
505、APE完成初级KPI的汇总,并将汇总结果上报给DPE。
506、DPE完成入库,即将初级KPI的汇总结果保存到DWH。
507、各CEP实例检测到BPE3-BPE4算法关注的事件分别满足各算法中的触发计算的条件且初级KPI为BPE3-BPE4算法计算所需的事件,将初级KPI传递给各自计算节点上的BPE3-BPE4进一步处理。
508、BPE3-BPE4生成高级KPI,将高级KPI传递给APE。
509、APE完成高级KPI的汇总,并将汇总结果上报给DPE。
510、DPE完成入库,即将高级KPI的汇总结果保存到DWH中。
需要说明的是,503中BPE1-BPE2将初级KPI传递给APE、505、506和504、507-510可以同步进行。
图11为本发明实施例的再一种应用场景示意图。如图11所示,本发明实施例应用在多个计算节点的场景下,一个计算节点上设置了CEP实例、BPE1-BPE4、APE和DPE,另一计算节点上设置了CEP实例和BPE1、BPE2。此场景中,各计算节点上均计算初级KPI,然后利用APE完成跨计算节点的初级KPI的汇总,并在APE将汇总结果传递给DPE的同时,写入APE所在计算节点的CEP实例,由其它BPE完成高级KPI的计算,并通过DPE入库。具体地,该场景中执行如下步骤:
601、BPE1-BPE4分别向各自所在计算节点上的CEP实例注册各自的算法。
602、CEP实例在检测到BPE1-BPE2算法关注的事件分别满足各算法中的触发计算的条件时,将各算法计算所需的事件传递给BPE1-BPE2。
603、BPE1-BPE根据各自的算法分别对各自计算所需的事件进行计算,将初级KPI传递给APE。
604、APE完成初级KPI的汇总,并将汇总结果上报给DPE。
605、DPE完成入库,即将初级KPI的汇总结果保存到DWH中。
606、APE将汇总结果重新写入CEP实例。
607、CEP实例检测到BPE3-BPE4算法关注的事件分别满足各算法中的触发计算的条件且上述汇总结果为BPE3-BPE4算法计算所需的事件,将上述汇总结果传递给BPE3-BPE4进一步处理。
608、BPE3-BPE4生成高级KPI,将计算结果传递给DPE。
609、DPE完成入库,即将高级KPI的汇总结果保存到DWH中。
需要说明的是,604中APE将汇总结果上报给DPE、605和606-609可以同步进行。
综上所述,本发明实施例采用BPE向位于同一计算节点的CEP实例注册所述BPE的预设算法,所述CEP实例在检测到所述预设算法关注的事件满足所述预设算法中的触发计算的条件时将所述预设算法计算所需的事件传递给所述BPE,所述BPE在根据所述预设算法进行计算得到计算结果后,若判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,所述CEP实例在检测到已注册的其它算法关注的事件满足所述其它算法的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给注册了所述其它算法的BPE的技术手段,由CEP实例完成多事件多算法的关联,简化了计算过程,提高了时效性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (20)
1.一种数据处理方法,其特征在于,所述方法应用于商业处理实体BPE上,所述方法包括:
向与所述BPE位于同一计算节点上的复杂事件处理CEP实例注册所述BPE的预设算法,所述BPE的预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件;
获得所述CEP实例传递的所述预设算法计算所需的事件,其中所述计算所需的事件是所述CEP实例在检测到所述预设算法关注的事件满足所述触发计算的条件时,所传递的;
根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果;
若根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例,使得所述CEP实例在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
2.根据权利要求1所述的方法,其特征在于,所述根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果之后还包括:
将所述计算结果传递给入库处理实体DPE,以使所述DPE将所述计算结果保存到数据库中;所述DPE位于所述计算节点或另一计算节点上。
3.根据权利要求2所述的方法,其特征在于,所述将所述计算结果传递给入库处理实体DPE包括:
根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果传递给算术处理实体APE,以使所述APE对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给所述DPE;
所述APE位于所述计算节点或另一计算节点上,所述APE与所述DPE位于同一计算节点或不同计算节点。
4.一种数据处理方法,其特征在于,所述方法应用于复杂事件处理CEP实例上,所述方法包括:
执行与所述CEP位于同一计算节点上的商业处理实体BPE的预设算法的注册,所述BPE的预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件;
在检测到所述预设算法关注的事件满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE,以使所述BPE根据所述预设算法对所述预设算法计算所需的事件进行计算得到计算结果;
获得所述BPE写入的所述计算结果,所述计算结果为所述BPE在根据预设的业务逻辑判断所述计算结果需进一步计算时,以中间事件的方式写入的;
在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
5.根据权利要求4所述的方法,其特征在于,所述预设算法关注的事件包括所述预设算法关注的原始事件和所述预设算法关注的的中间事件;所述在检测到所述预设算法关注的事件满足所述触发计算的条件之前,还包括:
从消息总线上提取所述预设算法关注的原始事件;
所述CEP实例检测所述预设算法关注的原始事件和所述预设算法关注的的中间事件是否满足所述触发计算的条件。
6.一种数据处理方法,其特征在于,所述方法应用于包括商业处理实体BPE与复杂事件处理CEP实例的计算节点上,所述方法包括:
BPE向CEP实例注册所述BPE的预设算法,所述预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件;
所述CEP实例在检测到所述预设算法关注的事件满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE;
所述BPE根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果;
若所述BPE根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例;
所述CEP实例在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
7.根据权利要求6所述的方法,其特征在于,所述BPE根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果之后还包括:
所述BPE将所述计算结果传递给入库处理实体DPE,以使所述DPE将所述计算结果保存到数据库中;所述DPE位于所述计算节点或另一计算节点上。
8.根据权利要求6所述的方法,其特征在于,所述CEP实例在检测到所述预设算法关注的事件满足所述触发计算的条件之前,还包括:
从消息总线上提取原始事件;
所述CEP实例检测所述提取的原始事件和被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件。
9.根据权利要求8所述的方法,其特征在于,所述从消息总线上提取原始事件包括:
接收消息服务器根据调度器的订购指令发送的所述计算节点上所有BPE的算法关注的原始事件;或
位于所述计算节点上的事件过滤器根据调度器的订购配置从消息总线上提取所述计算节点上所有BPE的算法关注的原始事件,并传递给所述CEP实例。
10.根据权利要求7所述的方法,其特征在于,所述BPE将所述计算结果传递给入库处理实体DPE包括:
所述BPE根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果传递给算术处理实体APE,以使所述APE对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给所述DPE;
所述APE位于所述计算节点或另一计算节点上,所述APE与所述DPE位于同一计算节点或不同计算节点。
11.根据权利要求10所述的方法,其特征在于,所述APE对所述BPE和其它BPE的计算结果进行汇总计算之后,还包括:
若所述APE根据预设的业务逻辑判断所述汇总结果需进一步计算,则所述APE将所述汇总结果作为中间事件写入与所述APE位于同一计算节点的CEP实例。
12.一种计算节点,其特征在于,包括:商业处理实体BPE和复杂事件处理CEP实例;
所述BPE,用于向所述CEP实例注册所述BPE的预设算法,所述预设算法包括关注的事件的标识、计算所需的事件的标识和触发计算的条件,所述关注的事件的标识用于标识预设算法关注的事件,所述计算所需的事件的标识用于标识预设算法计算所需的事件;
所述CEP实例,用于在检测到所述预设算法关注的事件满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE;
所述BPE还用于,根据所述预设算法对所述预设算法计算所需的事件进行计算,得到计算结果;若根据预设的业务逻辑判断所述计算结果需进一步计算,则将所述计算结果作为中间事件写入所述CEP实例;
所述CEP实例还用于,在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
13.根据权利要求12所述的计算节点,其特征在于,所述BPE还用于,将所述计算结果发送给另一计算节点上的入库处理实体DPE,以使所述DPE将所述计算结果保存到数据库中;或
所述计算节点还包括DPE,所述BPE还用于,将所述计算结果发送给同一计算节点上的DPE,以使所述DPE将所述计算结果保存到数据库中。
14.根据权利要求12所述的计算节点,其特征在于,所述CEP实例还用于:
从消息总线上提取原始事件;
检测所述提取的原始事件和被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件。
15.根据权利要求14所述的计算节点,其特征在于,所述CEP实例具体用于,接收消息服务器根据调度器的订购指令发送的所述计算节点上所有BPE的算法关注的原始事件,检测所述原始事件和所述被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件,在检测到满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE,以及用于在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE;
或,所述计算节点还包括事件过滤器,所述事件过滤器用于根据调度器的订购配置从消息总线上提取所述计算节点上所有BPE的算法关注的原始事件,并传递给所述CEP实例;
所述CEP实例具体用于,接收所述事件过滤器传递的所述原始事件,检测所述原始事件和所述被写入的中间事件中所述预设算法关注的事件是否满足所述触发计算的条件,在检测到满足所述触发计算的条件时,将所述预设算法计算所需的事件传递给所述BPE,以及用于在检测到已注册的除所述预设算法之外的其它算法关注的事件满足所述其它算法中的触发计算的条件且所述中间事件为所述其它算法计算所需的事件时,将所述中间事件传递给位于所述计算节点上、向所述CEP实例注册了所述其它算法的BPE。
16.根据权利要求13所述的计算节点,其特征在于,所述BPE还用于,根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果发送给另一计算节点上的算术处理实体APE,以使所述APE对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给所述DPE;或
所述计算节点还包括APE,所述BPE还用于,根据预设的业务逻辑判断所述计算结果是否需要汇总,若需要则将所述计算结果发送给同一计算节点上的APE,以使所述APE对所述BPE和其它BPE的计算结果进行汇总计算、将汇总结果传递给所述DPE;
所述APE与所述DPE位于同一计算节点或不同计算节点。
17.根据权利要求16所述的计算节点,其特征在于,所述APE还用于,若根据预设的业务逻辑判断所述汇总结果需进一步计算,则将所述汇总结果作为中间事件写入同一计算节点上的CEP实例。
18.一种分布式计算***,其特征在于,包括:调度器和至少一个计算节点,各计算节点均为如权利要求12-17中任一项所述的计算节点;
所述调度器,用于收集各计算节点的资源信息,根据所述资源信息确定各计算节点的调度方式,根据各计算节点的调度方式分别调度各计算节点。
19.根据权利要求18所述的***,其特征在于,所述调度方式包括:预设算法,预设业务逻辑,是否开启计算节点上的商业处理实体BPE、算术处理实体APE、入库处理实体DPE。
20.根据权利要求18或19所述的***,其特征在于,所述计算节点有多个;
所述调度器具体用于,预留一个计算节点作为备用计算节点,调度除所述备用计算节点之外的其它计算节点;当所述调度的其它计算节点中一个计算节点异常时,根据所述异常的计算节点的调度方式和所述异常的计算节点的缓存数据调度所述备用计算节点。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210460097.5A CN102930046B (zh) | 2012-11-15 | 2012-11-15 | 数据处理方法、计算节点及*** |
PCT/CN2013/074507 WO2014075425A1 (zh) | 2012-11-15 | 2013-04-22 | 数据处理方法、计算节点及*** |
EP13786611.7A EP2770447B1 (en) | 2012-11-15 | 2013-04-22 | Data processing method, computational node and system |
US14/080,954 US9009735B2 (en) | 2012-11-15 | 2013-11-15 | Method for processing data, computing node, and system |
IN1668KON2014 IN2014KN01668A (zh) | 2012-11-15 | 2014-08-11 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210460097.5A CN102930046B (zh) | 2012-11-15 | 2012-11-15 | 数据处理方法、计算节点及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102930046A CN102930046A (zh) | 2013-02-13 |
CN102930046B true CN102930046B (zh) | 2016-01-27 |
Family
ID=47644843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210460097.5A Active CN102930046B (zh) | 2012-11-15 | 2012-11-15 | 数据处理方法、计算节点及*** |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP2770447B1 (zh) |
CN (1) | CN102930046B (zh) |
IN (1) | IN2014KN01668A (zh) |
WO (1) | WO2014075425A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930046B (zh) * | 2012-11-15 | 2016-01-27 | 华为技术有限公司 | 数据处理方法、计算节点及*** |
US9009735B2 (en) | 2012-11-15 | 2015-04-14 | Huawei Technologies Co., Ltd. | Method for processing data, computing node, and system |
JP6378356B2 (ja) | 2014-03-31 | 2018-08-22 | 華為技術有限公司Huawei Technologies Co.,Ltd. | イベント処理システム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761602A (zh) * | 2012-06-05 | 2012-10-31 | 北京永洪商智科技有限公司 | 一种基于Hadoop的海量数据实时分析处理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8266630B2 (en) * | 2007-09-03 | 2012-09-11 | International Business Machines Corporation | High-performance XML processing in a common event infrastructure |
US8489474B2 (en) * | 2007-12-31 | 2013-07-16 | Software Ag | Systems and/or methods for managing transformations in enterprise application integration and/or business processing management environments |
US8374986B2 (en) * | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
CN102930046B (zh) * | 2012-11-15 | 2016-01-27 | 华为技术有限公司 | 数据处理方法、计算节点及*** |
-
2012
- 2012-11-15 CN CN201210460097.5A patent/CN102930046B/zh active Active
-
2013
- 2013-04-22 WO PCT/CN2013/074507 patent/WO2014075425A1/zh active Application Filing
- 2013-04-22 EP EP13786611.7A patent/EP2770447B1/en active Active
-
2014
- 2014-08-11 IN IN1668KON2014 patent/IN2014KN01668A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761602A (zh) * | 2012-06-05 | 2012-10-31 | 北京永洪商智科技有限公司 | 一种基于Hadoop的海量数据实时分析处理方法 |
Non-Patent Citations (3)
Title |
---|
Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing;Matei Zaharia等;《Electrical Engineering and Computer Sciences》;20110719;第1-15页 * |
Scalable and Low-Latency data processing with streammapreduce;Andrey Brito等;《International Conference on Coud Computing Technology and Science》;20111231;第48-58页 * |
Scalable Complex Event Processing on Top of MapReduce;Jiaxue Yang等;《Asia-pacific international conference on web technologies and applications》;20120413;第529-536页 * |
Also Published As
Publication number | Publication date |
---|---|
IN2014KN01668A (zh) | 2015-10-23 |
EP2770447B1 (en) | 2016-06-08 |
WO2014075425A1 (zh) | 2014-05-22 |
EP2770447A1 (en) | 2014-08-27 |
EP2770447A4 (en) | 2014-12-17 |
CN102930046A (zh) | 2013-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9832280B2 (en) | User profile configuring method and device | |
CN107111527B (zh) | 用于分析仪器化软件的数据流处理语言 | |
CN104618693B (zh) | 一种基于云计算的监控视频在线处理任务管理方法及*** | |
CN107528870B (zh) | 一种数据采集方法及其设备 | |
CN107886238A (zh) | 一种基于海量数据分析的业务流程管理***及方法 | |
Küçükkeçeci et al. | Big data model simulation on a graph database for surveillance in wireless multimedia sensor networks | |
CN107807872A (zh) | 一种输变电***运行状态监测方法 | |
CN105917345A (zh) | 虚拟机之间的边信道攻击的检测 | |
CN108255620A (zh) | 一种业务逻辑处理方法、装置、业务服务器及*** | |
JP6423803B2 (ja) | キュー監視及び視覚化 | |
CN106293881B (zh) | 一种基于非一致性i/o访问构架的性能监控器及其监控方法 | |
CN110147470B (zh) | 一种跨机房数据比对***及方法 | |
CN105989163A (zh) | 数据实时处理方法及*** | |
CN109379305A (zh) | 一种数据下发方法、装置、服务器及存储介质 | |
CN110647447A (zh) | 用于分布式***的异常实例检测方法、装置、设备和介质 | |
CN108182263A (zh) | 一种数据中心综合管理***的数据存储方法 | |
CN102930046B (zh) | 数据处理方法、计算节点及*** | |
CN105069029B (zh) | 一种实时etl***及方法 | |
CN108932241A (zh) | 日志数据统计方法、装置及节点 | |
CN112583610A (zh) | ***状态的预测方法、装置、服务器及存储介质 | |
US9009735B2 (en) | Method for processing data, computing node, and system | |
CN112579552A (zh) | 日志存储及调用方法、装置及*** | |
JP7097408B2 (ja) | 局所的ホットスポットを処理する方法、装置、電子デバイス及び記憶媒体 | |
WO2021184588A1 (zh) | 集群优化方法、装置、服务器及介质 | |
CN113824601A (zh) | 一种基于业务日志的电力营销监控*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |