基于流计算框架和RETE算法的大数据实时决策引擎制造技术

技术编号:38905114 阅读:15 留言:0更新日期:2023-09-22 14:23
本发明专利技术公开了一种基于流计算框架和RETE算法的大数据实时决策引擎,涉及大数据技术领域,通过把分布式流计算处理框架FLINK和RETE模式匹配算法结合起来,形成一个实时分布式流计算决策引擎,极大提高了大数据量且业务规则复杂场景下决策处理的吞吐量、处理速度和系统的高可用性,从而大大提高了业务实时决策的能力,解决了现有技术中数据处理吞吐量偏小,当需要处理的数据量庞大且需匹配的规则数多的情况下,系统处理时间大大增加,内存和CPU等计算资源消耗很大,数据处理严重延迟,系统性能严重下降等问题。严重下降等问题。严重下降等问题。

【技术实现步骤摘要】
基于流计算框架和RETE算法的大数据实时决策引擎


[0001]本专利技术涉及大数据
,具体涉及一种基于流计算框架和RETE算法的大数据实时决策引擎。

技术介绍

[0002]决策引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件。规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策,接受数据输入,解释业务规则,并根据规则做出业务决策,即触发应用程序中相应的操作。
[0003]Flink是一个分布式流处理计算框架,用于对无界和有界数据流进行有状态计算。Flink在所有常见的分布式集群环境中运行,以高性能的内存执行速度和灵活的可伸缩集群规模来执行计算。
[0004]RETE算法是一种进行大量模式集合和大量对象集合间比较的高效方法,通过网络筛选的方法找出所有匹配各个模式的对象和规则。其核心思想是用分离的匹配项构造匹配网络,同时缓存中间结果,以空间换时间。其工作过程大致分为规则编译(rule compilation)和运行时执行(runtime execution)两个阶段。
[0005]目前基于RETE算法的决策引擎,主要的缺点是数据处理吞吐量偏小,当需要处理的数据量庞大且需匹配的规则数多的情况下,系统处理时间大大增加,内存和CPU等计算资源消耗很大,数据处理严重延迟,系统性能严重下降。

技术实现思路

[0006]针对上述问题,本专利技术提供一种基于流计算框架和RETE算法的大数据实时决策引擎,通过把分布式流计算处理框架FLINK和RETE模式匹配算法结合起来,形成一个实时分布式流计算决策引擎,极大提高了大数据量且业务规则复杂场景下决策处理的吞吐量、处理速度和系统的高可用性;本专利技术采用下述的技术方案:基于流计算框架和RETE算法的大数据实时决策引擎,包括以下步骤:S1、通过决策规则图形设计器的推送功能把存储在规则文件数据库中的XML规则文件提交到决策规则管理器中;S2、用户根据业务实际需求,发送决策请求到决策引擎服务接口上,RETE

FLINK规则编译器根据决策引擎服务接口转发的用户请求参数中的对应规则编码从规则管理器中提取相应的规则文件;RETE

FLINK规则编译器解析规则文件,从而获取用户定义的业务含义,并把这些业务含义映射到内存的JAVA对象中;S3、RETE

FLINK规则编译器根据RETE算法规范,把已经存储在内存中带有业务含义的JAVA对象再封装成符合RETE算法规范的JAVA对象,为生成RETE网络树做准备;S4、RETE

FLINK规则编译器构建RETE网络树:
RETE

FLINK规则编译器根据规则文件中具体的规则定义读取此规则的引用类、参数定义、规则条件以及如果满足规则条件需要执行的动作,并将引用类、参数定义、规则条件以及动作与封装成符合RETE算法规范的JAVA对象中的数据结构匹配,RETE

FLINK规则编译器从封装成符合RETE算法规范JAVA对象中的Root Node节点开始向下一直到Terminal Node节点,构建一个完整的规则RETE网络树;S5、RETE

FLINK规则编译器通过RETE网络树进行规则匹配,同步生成基于Flink 算子的JAVA代码:RETE网络树构建完成后,RETE

FLINK规则编译器从工作存储器里取Fact事实集来与规则文件数据库进行匹配,匹配过程是Fact事实集对象沿着RETE网络树遍历的过程,匹配过程中,RETE

FLINK规则编译器根据规则的RETE网络树、RETE算法规范、Flink框架规范同步进行编译操作,生成相应的基于Flink算子的JAVA程序代码;编译完成后的FLINK算子代码可以运行在FLINK环境中,这样就可以充分利用FLINK流计算框架的优势,极大提高了大数据量且业务规则复杂场景下决策处理的吞吐量、处理速度和系统的高可用性,从而提高了业务实时决策的能力;S6、RETE

FLINK规则编译器把编译好的基于Flink算子的JAVA代码提交到Flink流计算框架执行环境中,Flink流计算框架将编译好的基于Flink算子的JAVA代码映射成Stream Graph计算逻辑流图,然后提交Stream Graph计算逻辑流图到Flink Job Graph生成器中;S7、Flink Job Graph生成器将Stream Grap计算逻辑流图优化处理后生成对应的Job Graph任务图,然后再提交到Flink Job Manager中;S8、 Flink Job Manager向FLINK ResourceManager资源管理器申请执行分布式任务必要的资源,该资源主要包括有Flink Task Manager和其上的任务运行插槽Task slot;Flink Job Manager根据实际获取到的资源将Job Graph任务图再进行优化处理后生成可并行运行的Execution Graph执行图,然后根据Execution Graph执行图调度计算子任务到Flink Task Manager集群资源和其上的任务运行插槽Task slot中进行分布式并行处理;S9、Flink Job Manager协调资源集群中所有Flink Task Manager进行计算子任务的分布式并行处理,并取得最终的RETE规则计算结果,然后将最终结果异步写入到KAFKA队列和数据持久化系统中,用户通过KAFKA消息队列异步获取到决策规则的最终结果。
[0007]优选的,步骤S2中,所述决策引擎服务接口用于解析用户请求参数,校验用户访问权限,然后再转发用户请求和参数到RETE

FLINK规则编译器上。
[0008]优选的,步骤S3中,所述规范的JAVA对象包括:根节点Root Node、对象类型节点Object Type Node、连接节点Join Node、条件节点Condition Node、终点节点Terminal Node、动作Action。
[0009]优选的,步骤S4中,引用类、参数定义、规则条件以及动作与封装成符合RETE算法规范的JAVA对象中的数据结构匹配方法为:引用类对应对象类型节点Object Type Node;规则条件对应条件节点Condition Node;
连接节点Join Node节点在构建网络树时,根据不同对象类型节点Object Type Node是否有关联条件构建;动作对应规则条件完全匹配后,终点节点Terminal Node所要执行的规则动作Action。
[0010]优选的,步骤S5中,所述Flink框架包括7类JAVA程序算子,分别是:映射Map/FlatMap、过滤Filter、分区KeyBy、聚合Reduce/Aggregations、合并Union/Connect、拆分Split、标记Select。
[0011]优选本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于流计算框架和RETE算法的大数据实时决策引擎,其特征在于,包括以下步骤:S1、通过决策规则图形设计器的推送功能把存储在规则文件数据库中的XML规则文件提交到决策规则管理器中;S2、用户根据业务实际需求发送决策请求到决策引擎服务接口上,RETE

FLINK规则编译器根据决策引擎服务接口转发的用户请求参数中包含的规则编码,从决策规则管理器中获取相应的规则文件;RETE

FLINK规则编译器解析规则文件,从中获取用户定义的业务含义,并把这些业务含义映射到内存的JAVA对象中;S3、RETE

FLINK规则编译器根据RETE算法规范,把已经存储在内存中带有业务含义的JAVA对象再封装成符合RETE算法规范的JAVA对象,为生成RETE网络树做准备;S4、RETE

FLINK规则编译器构建RETE网络树:RETE

FLINK规则编译器根据规则文件中具体的规则定义读取此规则的引用类、参数定义、规则条件以及如果满足规则条件需要执行的动作,并将引用类、参数定义、规则条件以及动作与封装成符合RETE算法规范的JAVA对象中的数据结构进行匹配,RETE

FLINK规则编译器从封装成符合RETE算法规范的JAVA对象中的Root Node节点开始向下一直到Terminal Node节点,构建一个完整的规则RETE网络树;S5、RETE

FLINK规则编译器通过RETE网络树进行规则匹配,同步生成基于Flink算子的JAVA代码:RETE网络树构建完成后,RETE

FLINK规则编译器从工作存储器里取Fact事实集并与规则文件数据库进行匹配,匹配过程中,RETE

FLINK规则编译器根据相应规则的RETE网络树、RETE算法规范、Flink框架规范同步进行编译操作,生成相应的基于Flink算子的JAVA程序代码;S6、RETE

FLINK规则编译器把编译好的基于Flink算子的JAVA代码提交到Flink流计算框架执行环境中,Flink流计算框架将编译好的基于Flink算子的JAVA代码映射成Stream Graph计算逻辑流图,然后提交Stream Graph计算逻辑流图到Flink Job Graph生成器中;S7、Flink Job Graph生成器将Stream Grap计算逻辑流图生成对应的Job Graph任务图,然后再提交到Flink Job Manager中;S8、 Flink Job Manager向FLINK ResourceManager资源管理器申请执行分布式任务必要的资源,该资源包括Flink Task Manager集群资源和其上的任务运行插槽Task slot;Flink Job Manager根据实际获取到的资源将Job Graph任务图生成可并行运行的Execution Graph执行图,然后根据Execution Graph执行图调度计算子任务到Flink Task Manager集群资源和其上的任务运行插槽Task slot中进行分布式并行处理;S9、Flink Job Manager协调资源集群中所有Fl...

【专利技术属性】
技术研发人员:林少疆张珧江蒋韬蒋炜
申请(专利权)人:四川兴川贷数字科技有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1