CN115129736B - 基于规则引擎的规则事件动态加载与更新方法及相关设备 - Google Patents

基于规则引擎的规则事件动态加载与更新方法及相关设备 Download PDF

Info

Publication number
CN115129736B
CN115129736B CN202210779345.6A CN202210779345A CN115129736B CN 115129736 B CN115129736 B CN 115129736B CN 202210779345 A CN202210779345 A CN 202210779345A CN 115129736 B CN115129736 B CN 115129736B
Authority
CN
China
Prior art keywords
rule
data
event
tenant
conditions
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
Application number
CN202210779345.6A
Other languages
English (en)
Other versions
CN115129736A (zh
Inventor
王晓峰
邓秀东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dongfang Hezhi Data Technology Guangdong Co ltd
Original Assignee
Dongfang Hezhi Data Technology Guangdong Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dongfang Hezhi Data Technology Guangdong Co ltd filed Critical Dongfang Hezhi Data Technology Guangdong Co ltd
Priority to CN202210779345.6A priority Critical patent/CN115129736B/zh
Publication of CN115129736A publication Critical patent/CN115129736A/zh
Application granted granted Critical
Publication of CN115129736B publication Critical patent/CN115129736B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于规则引擎的规则事件动态加载与更新方法及相关设备,本发明引入了动态规则引擎模板和动态加载SQL模板,整合实时数据分析***处理规则事件与数据库查询命中匹配处理的形式,整体***运行实现动态加载的技术实现不停机***更新,通过加入规则引擎和实时数据分析改造后,租户可根据个人需求添加多种规则组合的行为查询条件,并可实时反馈和更新,观察数据状态。

Description

基于规则引擎的规则事件动态加载与更新方法及相关设备
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于规则引擎的规则事件动态加载与更新方法、***、终端及计算机可读存储介质。
背景技术
通过应用界面自定义规则,调用后端规则引擎与实时数据分析,多种大数据存储组件整合的方式,对多租户下采集的数据,如机器参数(用水、用墨量、湿度、温度等)形成租户标签化存储,实时分析多租户行为明细数据(主要是标签化数据组合),多租户行为统计如开关机,故障次数分析等,运用技术与设计将规则与实时分析剥离后(使用动态规则模板与动态SQL模板,并不注入实时分析***逻辑编码),实现租户可自定义事件查询,明细数据查询,自定义组合条件管理,让租户可实时查看工厂内多型机器的运转状况,可追溯历史故障与开关机状态等各类明细数据。
现有技术的缺陷是规则都是通过判断逻辑写在数据库或***中的,硬编码的情况非常普遍,对添加删除等操作非常不灵活,删除规则需在代码中大量加注释禁用,删除数据库记录需要一个标识去识别禁用,不灵活且不方便后续维护。
因此,现有技术还有待于改进和发展。
发明内容
本发明的主要目的在于提供一种基于规则引擎的规则事件动态加载与更新方法、***、终端及计算机可读存储介质,旨在解决现有技术中规则都是通过判断逻辑写在数据库或***中的,添加删除等操作不方便的问题。
为实现上述目的,本发明提供一种基于规则引擎的规则事件动态加载与更新方法,所述基于规则引擎的规则事件动态加载与更新方法包括如下步骤:
调用Flink在无边界和有边界数据流上进行有状态的计算,调用Kafka接收Canal的日志并以json格式写入Flink中,进行规则动态变化分析,对租户新增和更新的规则进行监控,并在Flink中进行实时数据处理;
调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策;
使用Canal将Mysql数据库中新增、删除或者更新的数据,通过消息中间件Kafka传输到实时分析***中,并保存为可解析的JSON数据格式;
实时分析***接收消息队列数据,创建Kafka规则事件流读取数据,保存JSON,创建广播流添加并广播规则状态信息给数据分析***共用;
当应用程序Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过元信息对象获知Class的结构信息。
可选地,所述的基于规则引擎的规则事件动态加载与更新方法,其中,所述Kafka还用于处理消费者在网站中的所有动作流数据。
可选地,所述的基于规则引擎的规则事件动态加载与更新方法,其中,所述规则引擎使用Rete算法对所编写的规则求值。
可选地,所述的基于规则引擎的规则事件动态加载与更新方法,其中,所述调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策,之后还包括:
加入规则引擎后,在界面进行自定义规则,根据用户需求制定规则和不同计算公式写入***后,规则事件配置成动态的DRL文件模板,并将DRL文件模板转为字符串形式写入Mysql数据库。
可选地,所述的基于规则引擎的规则事件动态加载与更新方法,其中,所述Mysql数据库用于定义规则事件表;
所述规则事件表包括:触发事件、触发人、所属规则、触发次数限制、用户实际已触发次数、事件次数阈值查询sql、事件次数阈值查询sql、规则状态、租户基本属性条件、租户画像标签条件、行为阈值条件、行为序列条件、规则判断结果和表定义。
可选地,所述的基于规则引擎的规则事件动态加载与更新方法,其中,所述Canal用于伪装成数据库从库,模拟从库的交互协议向数据库主库发送dump协议,数据库主库收到Canal发送过来的dump请求后,开始推送数据库增量日志给Canal,Canal解析据库增量日志,再发送到存储目的地。
可选地,所述的基于规则引擎的规则事件动态加载与更新方法,其中,所述Class的结构信息包括:构造函数,属性和方法。
此外,为实现上述目的,本发明还提供一种基于规则引擎的规则事件动态加载与更新***,其中,所述基于规则引擎的规则事件动态加载与更新***包括:
组件调用模块,用于调用Flink在无边界和有边界数据流上进行有状态的计算,调用Kafka接收Canal的日志并以json格式写入Flink中,进行规则动态变化分析,对租户新增和更新的规则进行监控,并在Flink中进行实时数据处理;
规则引擎调用模块,用于调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策;
数据变更模块,用于使用Canal将Mysql数据库中新增、删除或者更新的数据,通过消息中间件Kafka传输到实时分析***中,并保存为可解析的JSON数据格式;
数据分析模块,用于实时分析***接收消息队列数据,创建Kafka规则事件流读取数据,保存JSON,创建广播流添加并广播规则状态信息给数据分析***共用;
编译加载模块,用于当应用程序Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过元信息对象获知Class的结构信息。
此外,为实现上述目的,本发明还提供一种终端,其中,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于规则引擎的规则事件动态加载与更新程序,所述基于规则引擎的规则事件动态加载与更新程序被所述处理器执行时实现如上所述的基于规则引擎的规则事件动态加载与更新方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有基于规则引擎的规则事件动态加载与更新程序,所述基于规则引擎的规则事件动态加载与更新程序被处理器执行时实现如上所述的基于规则引擎的规则事件动态加载与更新方法的步骤。
本发明中,调用Flink在无边界和有边界数据流上进行有状态的计算,调用Kafka接收Canal的日志并以json格式写入Flink中,进行规则动态变化分析,对租户新增和更新的规则进行监控,并在Flink中进行实时数据处理;调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策;使用Canal将Mysql数据库中新增、删除或者更新的数据,通过消息中间件Kafka传输到实时分析***中,并保存为可解析的JSON数据格式;实时分析***接收消息队列数据,创建Kafka规则事件流读取数据,保存JSON,创建广播流添加并广播规则状态信息给数据分析***共用;当应用程序Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过元信息对象获知Class的结构信息。本发明通过加入规则引擎和实时数据分析改造后,租户可根据个人需求添加多种规则组合的行为查询条件,并可实时反馈和更新,观察数据状态。
附图说明
图1是本发明基于规则引擎的规则事件动态加载与更新方法的较佳实施例的流程图;
图2是本发明基于规则引擎的规则事件动态加载与更新***的较佳实施例的原理示意图;
图3为本发明终端的较佳实施例的运行环境示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明较佳实施例所述的基于规则引擎的规则事件动态加载与更新方法,如图1所示,所述基于规则引擎的规则事件动态加载与更新方法包括以下步骤:
步骤S10、调用Flink在无边界和有边界数据流上进行有状态的计算,调用Kafka接收Canal的日志并以json格式写入Flink中,进行规则动态变化分析,对租户新增和更新的规则进行监控,并在Flink中进行实时数据处理。
具体地,调用Flink与kafka组件,Flink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算,实时流计算会保持一个状态,以便识别流处理的转换和状态一致性,基于状态做容错,故障恢复。流状态主要有两类,第一类是OperatorState算子状态操作数据,过滤,合并,拆分等,算子可以多任务并行执行,同一任务内数据是共享状态访问的,跨任务则不行,多个算子可以组成一个任务链;第二类是Key State键控状态对数据值作分组,聚合,排序等,键控状态是根据输入数据流中定义的键key来维护和访问的,具有相同键的所有数据分区到同一个算子任务中,对键进行分区或分片之后的一个键值映射,其实质上是和算子绑定关联变成另一种流去操作。
状态后端会存储所有键控状态,并确保所有的访问都被正确地限定在当前键范围,会分为三种方式保存,一是存储在JVM内存中缺点是不稳定性只要故障必定丢失,优点是访问速度极快不崩溃的情况下非常好用,适合测试;二是存储为文件存放大数据目录,缺点是保存的容量不会大,超量数据不好处理恢复,优点是访问速度相对较快,适合一般吞吐量不大的场景;三是保存在RocksDB数据库,缺点是存储的状态速度会较慢,优点相对的增长量大过亿级别的状态保存和访问都没问题。检查点(checkpoint)和恢复机制,这保证了“精确一次”(exactly-once)的状态一致性,通过设置的检查点同一时间写入的状态保存,任务执行结束后通过将每个任务的状态复制到远程持久存储,来得到一个检查点,所有任务完成拷贝操作后,检查点就完成了。
恢复机制,基于Chandy-Lamport算法实现了分布式快照的检查点保存,检查点算法用到了一种称为“检查点分界线”(checkpoint barrier)的特殊数据形式,其恢复形式是分界线处理后的数据即恢复,分界线前未到数据就丢弃不可恢复,通过区分实现应用崩溃后数据恢复。主要特性包括:批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障,开发毫秒级响应的实时数据分析程序。Kafka是一种高吞吐量的分布式发布订阅消息***,可以处理消费者在网站中的所有动作流数据,用于接收Canal的日志并以json格式写入Flink中,作规则动态变化分析,对租户新增和更新的规则做监控,并在Flink中做实时数据处理。
进一步地,调用HBase组件:HBase是一个面向列式存储的分布式数据库。HBase底层存储基于HDFS实现,集群的管理基于ZooKeeper实现,HBase良好的分布式架构设计为海量数据的快速存储、随机访问提供了可能,基于数据副本机制和分区机制可以轻松实现在线扩容、缩容和数据容灾,是大数据领域中Key-Value数据结构存储最常用的数据库方案。标签***非常合适用HBase作存储,对应的一个表的记录列就是kv存储的列式存储,如租户ID为键,租户名为值;机器用电量为键,用电多少度为值,以此类推,一个属性一个标签定义保存,包括有基本标签,分析标签,统计标签,挖掘标签等。租户通过页面访问***查询每次都会触发一个事件(Event)并且通过输入或选定会带入对应的机器参数,假如租户选择了查看机器转速,电量,用墨量指标(多个标签组合条件即为查询原子条件,如租户行为属性条件最近一周内有查询50次机器故障行为,这就是一个原子查询;规则触发条件包括租户画像属性条件,行为次数类条件,行为次序类条件,都会在对应的数据库有记录,行为次数类条件就是记录租户的查询访问行为,例如某租户一周内查询了50次机器故障记录,一天内查询一台机器10次的关机记录,记录的是租户的行为次数构成了一个原子条件;行为次序类条件是以A到Z为排序的,如A事件租户查询了一个时间点在某厂的机器开工启动,这个每天是有多条记录的,B事件租户查询了这台机器的完工关机记录,就能通过获取的信息计算出一台机器运转的时长,C事件还查询了对应的模组产纸的记录,如果需更多事件增加到某租户下对应的事件表即可。多个规则条件与标签结合就形成了一组查询原子条件),且租户画像库里存在对应的客户信息且符合所有选择的条件标签都存在,即返回有效的查询结果并将查询行为条件(包括行为次数,行为序列)保存到实时数据分析(Flink)记录为行为状态(两小时内生效只能作为短时查询会失效,超过两小时使用ClickHouse数据库查询),不满足所有查询标签则***会处理给予提示,画像标签明细和查询行情条件结果SQL都会写入ClickHouse中记录为一条记录,为后续作实时数据分析准备。
进一步地,调用ClickHouse组件:ClickHouse是一个用于联机分析的列式数据库管理***,在ClickHouse中,数据始终是按列存储的,包括矢量(向量或列块)执行的过程。只要有可能,操作都是基于矢量进行分派的,而不是单个的值,这被称为《矢量化查询执行》,它有利于降低实际的数据处理开销。通过数据采集批量写入事件明细数据(租户画像标签***已处理好事件数据)并保存到行为事件表,租户需要查询两小时以上的行为条件就会使用此模块查找,多租户查找的条件非常多且不相同,例如租户A查询ACDX事件,B租户需查询DCE事件,并且每个租户对应的事件并不一致,固定的数据库查询操作已不可行,为解决问题使用SQL模版在程序中拼接字符串的方式对传入的租户事件参数进行拼接实现动态参数传入,并使用路径匹配函数实现精确查询(sequenceCount其作用是统计满足输入模式的事件链的数量,如用户已输入要查的ACDX,会根据顺序从A到X排列匹配每一种规则比对结果查找),将短时查询业务(实时分析临存2小时的行为状态数据)和长周期查询业务合并为整个规则业务查询服务,并且还实现了通过租户事件关联租户标签,租户行为明细数据的查询,让租户可以通过***直观查看机器的运转状况和数据指标,最终数据查询服务是包括各规则的查询SQL组合去为实时分析做调用的。
步骤S20、调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策。
具体地,调用规则引擎Drools:规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接收数据输入,解释业务规则,并根据业务规则做出业务决策。使用规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本。在大型商业***中,业务规则、商业逻辑等等都会比较复杂,并且不是一成不变的。如果一旦修改业务逻辑将引起代码的重新编译打包等问题,因此,如何考虑把一些可变的业务规则抽取到外面,使这些业务规则独立于程序代码,并最好是能够实时的修改业务规则,这样就可以做到不用打包编译发布等等。因此,规则引擎应运而生。
规则引擎使用Rete算法对所编写的规则求值,是一种前向规则快速匹配算法,其匹配速度与规则数目无关,通过形成一个Rete网络进行模式匹配,利用基于规则的***的两个特征,即时间冗余性和结构相似性,提高***模式匹配效率,用于判定的规则分为两个部分LHS和RHS,分别表示条件和结果(规则(rule):是由条件和结论构成的推理语句,一般表示为if…Then。一个规则条件的if部分称为LHS,then部分称为结果RHS)。RETE推理网络的生成过程,就是从规则集{规则1,规则2,…规则N}中拿出一条来,根据一定算法,变成RETE推理网络的节点。不断循环将所有规则都处理完,RETE推理网络就生成了。
步骤S10中已定义原子规则并写入数据查询层,缺陷就是只有固定的事件每次添加,更新只能通过采集***硬编码方式去写事件入库,效率非常低下且工作量巨大。加入规则引擎的意义:解决编码规则入库问题,将采集***剥离不再使用原有固定读取的查询规则(比如租户只有三个事件规则就永远都是三个,要通过***添加后采集到数据库才有新的多了变为四个规则),将规则管理升级为动态控制,在界面可以发布新的规则事件,修改已在线运行的规则事件,暂停,删除在线运行中的规则事件。加入规则引擎后,可以在界面进行自定义规则,例如某租户要查询某型机器下的A事件指标组合(如转速,温度,用电量等),B事件何时开工启动开机,C事件何时生产结束关机,D事件何时发生故障,E事件何时修复故障等,都可根据用户需求制定规则和不同计算公式(可随意制定事件组合,如租户在A事件中带的指标组合都可随机增减添加变化,B到E事件也可以改变和增减,一切皆动态没有规律,相比很多写死的规则指标***这是一个创新点)写入***后,规则事件可配置成动态的DRL文件模板,并将模板转为字符串形式写入Mysql,再进行下一步读取Mysql数据库动态添加的规则。
步骤S30、使用Canal将Mysql数据库中新增、删除或者更新的数据,通过消息中间件Kafka传输到实时分析***中,并保存为可解析的JSON数据格式。
具体地,从规则管理***保存更新,新增的规则数据,Mysql数据库定义规则事件表(Drl_rule),实体包括(主要是规则模型对应的事件操作的模型明细,租户,租户使用查询次序,查询次数,触发条件,规则sql等,写到数据表保存,界面和应用程序不写数据库都没法持久化,应用崩溃数据就清空,定义对应的表和实体对象存储是必要的)触发事件、触发人、所属规则、触发次数限制、用户实际已触发次数、事件次数阈值查询sql、事件次数阈值查询sql、规则状态(Rule_Status,这个最重要为下一步判断增加或删除规则的主要依据)、租户基本属性条件(大文本保存条件存储相当大)、租户画像标签条件、行为阈值条件、行为序列条件、规则判断结果、表定义完成。
进一步地,调用Canal组件:阿里开源的框架Canal,可以很方便地同步数据库的增量数据到其他的存储应用,工作原理就是把自己伪装成数据库从库,模拟从库的交互协议向数据库主库发送dump协议,数据库主库收到Canal发送过来的dump请求,开始推送数据库增量日志给Canal,然后Canal解析据库增量日志,再发送到存储目的地。使用Canal将Mysql数据库中新增,删除,更新的数据,通过消息中间件(Kafka)传输到实时分析***中,并保存为可解析的JSON数据格式。
步骤S40、实时分析***接收消息队列数据,创建Kafka规则事件流读取数据,保存JSON,创建广播流添加并广播规则状态信息给数据分析***共用。
具体地,实时分析***接收消息队列数据,创建Kafka规则事件流读取数据,此数据来源于Canal收集Mysql增量到消息队列的数据,***在界面定义后规则引擎保存到数据库的规则,通过消息队列与Flink专用的消息队列kafkaStream处理工具,可实现消息队列端到端数据一致性保证,并且可精准消费一次,错误恢复后数据不重复不丢失,(DateStreamSource<String>)保存JSON,创建广播流添加并广播规则状态信息给数据分析***共用(BroadcastStream<String>),双流合并连接(connect)规则事件流与广播规则状态流(BroadcastConnectStream<RuleKidStateBean,String>),双流合并目的是将规则事件与规则状态数据合并相绑定,实时***流数据分析需要依赖上一个计算结果变成新的合并数据,使用处理函数解析需要的数据判断规则是否存在,解析JSON的date内包含的数据,里面包含所有数据库的记录和查询SQL,判断Rule_Status记录是否为1(这个标识表示新增的规则记录就是想要的,0就是删除不想要的用其他方式处理),将解析后的查询规则SQL保存到规则参数对象中(RuleParam,保存的就是规则模板文件里写的查询SQL),规则模板代码保存到规则会话对象(kieSession,专门存储规则代码),然后将查询规则SQL和代码都封装到规则状态对象(RuleStateBean,封装前面两个对象拆开很麻烦不方便实时数据处理)并写成实时流状态(MapState),这步非常关键,***每新增一个规则,就有一个新的对象与规则名对应(互相绑定,通过规则名对应查找SQL和规则代码),此步骤只是完成了单条实时流的处理,第一条流保存SQL和规则对象并做了广播流与消息队列处理流的合并,实际做了两个数据集的双流合并,可对合流后的两条流数据进行独立处理逻辑,共享数据,保存算子状态。
第二条流的实时处理,在第一条流处理中取出实时流状态(MapState)中的规则会话对象kieSession和规则参数对象RuleParam(里面记录了每一条SQL语句),调用之前步骤S10中的数据查询服务获取租户行为条件SQL,行为条件SQL与规则参数SQL作匹配对比,kieSession与标签明细数据作对比,完全匹配保存到Mysql规则结果表输出到***展示,不匹配即为新增的一条规则,在流中将规则会话对象写入标签库(Hbase)新增,将规则SQL写入事件明细库(ClickHouse)添加,第二条流的实现主要是取数据状态,再从ClickHouse数据库与标签库中找出相匹配的规则数据,规则命中则查到每一个对应记录,规则与标签不存在,就往相关***数据库中添加,规则到数据分析主要流程整体构建完成。
步骤S50、当应用程序Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过元信息对象获知Class的结构信息。
具体地,动态编译和类加载,应用程序Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。简化点说,动态编译就是在运行期直接编译.java文件执行,能够获得相关的输入输出,甚至还能监听相关的事件,基于这个好处,只要编写固定模板代码和放到指定目录结构,即可实现***不停机捕获新添加的规则事件监听,完美实现动态加载与更新规则事件,提升租户体验效果。
通过加入规则引擎和实时数据分析改造后,租户可根据个人需求添加多种规则组合的行为查询条件,并可实时反馈和更新,观察数据状态。
本发明引入了动态规则引擎模板和动态加载SQL模板,整合实时数据分析***处理规则事件与数据库查询命中匹配处理的形式,整体***运行实现动态加载的技术实现不停机***更新,主要保护的关键点是动态规则模板和动态SQL整合实时数据分析后,实现的租户自定义规则实时查询展示的实现思路和技术组合方案。
进一步地,如图2所示,基于上述基于规则引擎的规则事件动态加载与更新方法,本发明还相应提供了一种基于规则引擎的规则事件动态加载与更新***,其中,所述基于规则引擎的规则事件动态加载与更新***包括:
组件调用模块51,用于调用Flink在无边界和有边界数据流上进行有状态的计算,调用Kafka接收Canal的日志并以json格式写入Flink中,进行规则动态变化分析,对租户新增和更新的规则进行监控,并在Flink中进行实时数据处理;
规则引擎调用模块52,用于调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策;
数据变更模块53,用于使用Canal将Mysql数据库中新增、删除或者更新的数据,通过消息中间件Kafka传输到实时分析***中,并保存为可解析的JSON数据格式;
数据分析模块54,用于实时分析***接收消息队列数据,创建Kafka规则事件流读取数据,保存JSON,创建广播流添加并广播规则状态信息给数据分析***共用;
编译加载模块55,用于当应用程序Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过元信息对象获知Class的结构信息。
进一步地,如图3所示,基于上述基于规则引擎的规则事件动态加载与更新方法和***,本发明还相应提供了一种终端,所述终端包括处理器10、存储器20及显示器30。图3仅示出了终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器20在一些实施例中可以是所述终端的内部存储单元,例如终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述终端的应用软件及各类数据,例如所述安装终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有基于规则引擎的规则事件动态加载与更新程序40,该基于规则引擎的规则事件动态加载与更新程序40可被处理器10所执行,从而实现本申请中基于规则引擎的规则事件动态加载与更新方法。
所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述基于规则引擎的规则事件动态加载与更新方法等。
所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述终端的信息以及用于显示可视化的用户界面。所述终端的部件10-30通过***总线相互通信。
在一实施例中,当处理器10执行所述存储器20中基于规则引擎的规则事件动态加载与更新程序40时实现以下步骤:
调用Flink在无边界和有边界数据流上进行有状态的计算,调用Kafka接收Canal的日志并以json格式写入Flink中,进行规则动态变化分析,对租户新增和更新的规则进行监控,并在Flink中进行实时数据处理;
调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策;
使用Canal将Mysql数据库中新增、删除或者更新的数据,通过消息中间件Kafka传输到实时分析***中,并保存为可解析的JSON数据格式;
实时分析***接收消息队列数据,创建Kafka规则事件流读取数据,保存JSON,创建广播流添加并广播规则状态信息给数据分析***共用;
当应用程序Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过元信息对象获知Class的结构信息。
其中,所述Kafka还用于处理消费者在网站中的所有动作流数据。
其中,所述规则引擎使用Rete算法对所编写的规则求值。
其中,所述调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策,之后还包括:
加入规则引擎后,在界面进行自定义规则,根据用户需求制定规则和不同计算公式写入***后,规则事件配置成动态的DRL文件模板,并将DRL文件模板转为字符串形式写入Mysql数据库。
其中,所述Mysql数据库用于定义规则事件表;
所述规则事件表包括:触发事件、触发人、所属规则、触发次数限制、用户实际已触发次数、事件次数阈值查询sql、事件次数阈值查询sql、规则状态、租户基本属性条件、租户画像标签条件、行为阈值条件、行为序列条件、规则判断结果和表定义。
其中,所述Canal用于伪装成数据库从库,模拟从库的交互协议向数据库主库发送dump协议,数据库主库收到Canal发送过来的dump请求后,开始推送数据库增量日志给Canal,Canal解析据库增量日志,再发送到存储目的地。
其中,所述Class的结构信息包括:构造函数,属性和方法。
本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有基于规则引擎的规则事件动态加载与更新程序,所述基于规则引擎的规则事件动态加载与更新程序被处理器执行时实现如上所述的基于规则引擎的规则事件动态加载与更新方法的步骤。
综上所述,本发明提供一种基于规则引擎的规则事件动态加载与更新方法及相关设备,所述方法包括:调用Flink在无边界和有边界数据流上进行有状态的计算,调用Kafka接收Canal的日志并以json格式写入Flink中,进行规则动态变化分析,对租户新增和更新的规则进行监控,并在Flink中进行实时数据处理;调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策;使用Canal将Mysql数据库中新增、删除或者更新的数据,通过消息中间件Kafka传输到实时分析***中,并保存为可解析的JSON数据格式;实时分析***接收消息队列数据,创建Kafka规则事件流读取数据,保存JSON,创建广播流添加并广播规则状态信息给数据分析***共用;当应用程序Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过元信息对象获知Class的结构信息。本发明通过加入规则引擎和实时数据分析改造后,租户可根据个人需求添加多种规则组合的行为查询条件,并可实时反馈和更新,观察数据状态。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者终端中还存在另外的相同要素。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的计算机可读存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的计算机可读存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (6)

1.一种基于规则引擎的规则事件动态加载与更新方法,其特征在于,所述基于规则引擎的规则事件动态加载与更新方法包括:
调用Flink在无边界和有边界数据流上进行有状态的计算,所述计算包括检查点和恢复机制,所述恢复机制基于Chandy-Lamport算法对分布式快照的检查点进行保存,所述检查点的算法采用检查点分界线数据形式,所述检查点分界线数据形式指对所述恢复机制的恢复形式进行分界线处理后的数据恢复,其中,所述分界线处理是指分界线前未到的数据进行丢弃且不进行恢复,通过所述分界线处理区分应用崩溃后的数据恢复;所述恢复机制的特性包括:批流一体化、精密的状态管理、事件时间支持、精确一次的状态一致性保障以及开发毫秒级响应的实时数据分析程序;调用Kafka接收Canal的日志并以json格式写入Flink中,进行规则动态变化分析,对租户新增和更新的规则进行监控,并在Flink中进行实时数据处理,其中,所述Kafka是一种高吞吐量的分布式发布订阅消息***,用于处理消费者在网站中的所有动作流数据;
调用HBase组件用于存储,所述HBase组件将用户属性与标签定义进行保存,所述用户属性包括租户ID、租户名、机器用电量以及用电度数;所述标签定义包括基本标签、分析标签、统计标签以及挖掘标签;
当租户通过页面访问***查询时触发规则事件,在触发规则事件时将对应的机器参数带入;获取所述租户的行为属性条件,所述行为属性包括:机器转速查阅、电量查阅以及用墨量指标查阅;所述触发规则事件的条件包括:租户画像属性条件、行为次数类条件及行为次序类条件;
将所述触发规则事件的条件在对应的数据库进行记录,所述触发规则事件的条件用于记录租户的查询访问行为以及行为查询次数,所述行为查询次数构成了一个原子条件;
将所述触发规则事件的条件进行排序,所述触发规则的条件与标签结合形成一组查询原子条件;
获取租户画像库里存在对应的客户信息,当所述客户信息和符合所有选择的条件标签都存在时,返回有效的查询结果并将查询行为条件保存到Flink中,并记录为行为状态;
当不满足所有查询标签时,***处理给予提示,所述租户画像库中的画像标签明细和查询行情条件的结果通过SQL写入ClickHouse中进行记录,其中,所述画像标签明细和所述查询行情条件结果用于实时数据分析准备;
调用ClickHouse组件,所述ClickHouse组件是一个用于联机分析的列式数据库管理***,在所述ClickHouse组件中,数据始终按列存储,包括矢量执行的过程;所述ClickHouse组件有利于降低实际的数据处理开销;
通过数据采集批量写入事件明细数据并保存到行为事件表,获取所述租户查询行为条件的时间,当所述时间超过预设时间时,通过所述行为事件表进行查询,其中,所述租户查找的条件以及所述查找的条件的对应事件不相同;
通过SQL模版在程序中以拼接字符串的方式对传入的租户事件参数进行拼接实现动态参数传入,并使用路径匹配函数实现精确查询,将短时查询业务和长周期查询业务合并为整个规则业务查询服务,并通过租户事件关联租户标签和租户行为明细数据的查询,使租户直观查看机器的运转状况和数据指标,其中,数据的查询服务用于实时分析调用;
调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策;
所述规则引擎使用Rete算法对所编写的规则求值,匹配速度与规则数目无关,通过形成一个Rete网络进行模式匹配,利用基于规则的***的时间冗余性和结构相似性提高***模式匹配效率,根据所述Rete算法不断循环将所有规则进行处理,生成RETE推理网络;
所述调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策,之后还包括:
加入规则引擎后,在界面进行自定义规则,任意制定事件组合,事件或事件中的指标组合皆为动态无规律,所述动态无规律是指租户具有控制事件随意改变和增删,以及控制所述事件中的指标组合随机增减添加变化的权限,根据用户需求制定规则和不同计算公式写入***后,规则事件配置成动态的DRL文件模板,并将DRL文件模板转为字符串形式写入Mysql数据库,再读取Mysql数据库动态添加的规则;
使用Canal将Mysql数据库中新增、删除或者更新的数据,通过消息中间件Kafka传输到实时分析***中,并保存为可解析的JSON数据格式;
所述Canal用于伪装成数据库从库,模拟从库的交互协议向数据库主库发送dump协议,数据库主库收到Canal发送过来的dump请求后,开始推送数据库增量日志给Canal,Canal解析据库增量日志,再发送到存储目的地;
所述Mysql数据库用于定义规则事件表;
所述规则事件表包括:触发事件、触发人、所属规则、触发次数限制、用户实际已触发次数、事件次数阈值查询sql、规则状态、租户基本属性条件、租户画像标签条件、行为阈值条件、行为序列条件、规则判断结果和表定义;
实时分析***接收消息队列数据,创建Kafka规则事件流读取数据,保存JSON,创建广播流添加并广播规则状态信息给数据分析***共用;
通过Canal收集Mysql增量到消息队列的数据,所述实时分析***在界面定义后将规则引擎保存到数据库的规则中,通过消息队列与Flink专用的消息队列处理工具实现消息队列端到端数据一致性和一次精准消费,错误恢复后数据不重复不丢失,并保存JSON;
创建广播流并添加广播规则状态信息给数据分析***共用,将事件流与广播规则状态流进行双流合并连接,所述双流合并连接的目的是将所述规则事件流与所述广播流的规则状态数据合并相绑定;
所述实时分析***的流数据分析需要依赖上一个计算结果来获得新的合并数据,并使用处理函数解析所述合并数据来判断规则是否存在;通过解析JSON里面包含所有数据库的记录和查询SQL,判断Rule_Status记录是否为需要的,将解析后的查询规则SQL保存到规则参数对象中,并将规则模板代码保存到规则会话对象;
将查询规则SQL和代码都封装到规则状态对象,并写成实时流状态,***每新增一个规则,就有一个新的对象与规则名对应,完成单条实时流的处理;
所述单条实时流保存SQL和规则对象并做了广播流与消息队列处理流的合并,完成两个数据集的双流合并,并对合流后的所述广播流与所述消息队列处理流进行独立处理逻辑,共享数据,并保存算子状态;
当所述单条实时流的处理完成后,在所述单条实时流的处理中取出实时流状态中的规则会话对象和规则参数对象,其中,所述规则参数对象中记录了每一条SQL语句;
调用所述数据查询服务获取租户行为条件SQL,将所述行为条件SQL与规则参数SQL进行匹配对比,当完全匹配时保存到Mysql规则结果表并输出到***展示,当显示结果为不匹配时即新增一条规则;
将规则会话对象写入标签库中进行新增,将规则SQL写入ClickHouse数据库进行添加;
获取数据状态,从所述ClickHouse数据库与标签库中找出相匹配的规则数据,对于规则命名中查到每一个对应记录,若规则与标签不存在,则往相关***数据库中进行添加,完成规则到数据分析主要流程整体的构建;
当应用程序Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过元信息对象获知Class的结构信息。
2.根据权利要求1所述的基于规则引擎的规则事件动态加载与更新方法,其特征在于,所述Kafka还用于处理消费者在网站中的所有动作流数据。
3.根据权利要求1所述的基于规则引擎的规则事件动态加载与更新方法,其特征在于,所述Class的结构信息包括:构造函数,属性和方法。
4.一种基于规则引擎的规则事件动态加载与更新***,其特征在于,所述基于规则引擎的规则事件动态加载与更新***包括:
组件调用模块,用于调用Flink在无边界和有边界数据流上进行有状态的计算,所述计算包括检查点和恢复机制,所述恢复机制基于Chandy-Lamport算法对分布式快照的检查点进行保存,所述检查点的算法采用检查点分界线数据形式,所述检查点分界线数据形式指对所述恢复机制的恢复形式进行分界线处理后的数据恢复,其中,所述分界线处理是指分界线前未到的数据进行丢弃且不进行恢复,通过所述分界线处理区分应用崩溃后的数据恢复;所述恢复机制的特性包括:批流一体化、精密的状态管理、事件时间支持、精确一次的状态一致性保障以及开发毫秒级响应的实时数据分析程序;调用Kafka接收Canal的日志并以json格式写入Flink中,进行规则动态变化分析,对租户新增和更新的规则进行监控,并在Flink中进行实时数据处理,其中,所述Kafka是一种高吞吐量的分布式发布订阅消息***,用于处理消费者在网站中的所有动作流数据;
调用HBase组件用于存储,所述HBase组件将用户属性与标签定义进行保存,所述用户属性包括租户ID、租户名、机器用电量以及用电度数;所述标签定义包括基本标签、分析标签、统计标签以及挖掘标签;
当租户通过页面访问***查询时触发规则事件,在触发规则事件将对应的机器参数带入;获取所述租户的行为属性条件,所述行为属性包括:机器转速查阅、电量查阅以及用墨量指标查阅;所述触发规则事件的条件包括:租户画像属性条件、行为次数类条件及行为次序类条件;
将所述触发规则事件的条件在对应的数据库进行记录,所述触发规则事件的条件用于记录租户的查询访问行为以及行为查询次数,所述行为查询次数构成了一个原子条件;
将所述触发规则事件的条件进行排序,所述触发规则的条件与标签结合形成一组查询原子条件;
获取租户画像库里存在对应的客户信息,当所述客户信息和符合所有选择的条件标签都存在时,返回有效的查询结果并将查询行为条件保存到Flink中,并记录为行为状态;
当不满足所有查询标签时,***处理给予提示,所述租户画像库中的画像标签明细和查询行情条件的结果通过SQL写入ClickHouse中进行记录,其中,所述画像标签明细和所述查询行情条件结果用于实时数据分析准备;
调用ClickHouse组件,所述ClickHouse组件是一个用于联机分析的列式数据库管理***,在所述ClickHouse组件中,数据始终按列存储,包括矢量执行的过程;所述ClickHouse组件有利于降低实际的数据处理开销;
通过数据采集批量写入事件明细数据并保存到行为事件表,获取所述租户查询行为条件的时间,当所述时间超过预设时间时,通过所述行为事件表进行查询,其中,所述租户查找的条件以及所述查找的条件的对应事件不相同;
通过SQL模版在程序中以拼接字符串的方式对传入的租户事件参数进行拼接实现动态参数传入,并使用路径匹配函数实现精确查询,将短时查询业务和长周期查询业务合并为整个规则业务查询服务,并通过租户事件关联租户标签和租户行为明细数据的查询,使租户直观查看机器的运转状况和数据指标,其中,数据的查询服务用于实时分析调用;
规则引擎调用模块,用于调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策;
所述规则引擎使用Rete算法对所编写的规则求值,匹配速度与规则数目无关,通过形成一个Rete网络进行模式匹配,利用基于规则的***的时间冗余性和结构相似性提高***模式匹配效率,根据所述Rete算法不断循环将所有规则进行处理,生成RETE推理网络;
所述调用规则引擎,将业务决策从应用程序代码中分离,并使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务规则做出业务决策,之后还包括:
加入规则引擎后,在界面进行自定义规则,任意制定事件组合,事件或事件中的指标组合皆为动态无规律,所述动态无规律是指租户具有控制事件随意改变和增删,以及控制所述事件中的指标组合随机增减添加变化的权限,根据用户需求制定规则和不同计算公式写入***后,规则事件配置成动态的DRL文件模板,并将DRL文件模板转为字符串形式写入Mysql数据库,再读取Mysql数据库动态添加的规则;
数据变更模块,用于使用Canal将Mysql数据库中新增、删除或者更新的数据,通过消息中间件Kafka传输到实时分析***中,并保存为可解析的JSON数据格式;
所述Canal用于伪装成数据库从库,模拟从库的交互协议向数据库主库发送dump协议,数据库主库收到Canal发送过来的dump请求后,开始推送数据库增量日志给Canal,Canal解析据库增量日志,再发送到存储目的地;
所述Mysql数据库用于定义规则事件表;
所述规则事件表包括:触发事件、触发人、所属规则、触发次数限制、用户实际已触发次数、事件次数阈值查询sql、规则状态、租户基本属性条件、租户画像标签条件、行为阈值条件、行为序列条件、规则判断结果和表定义;
数据分析模块,用于实时分析***接收消息队列数据,创建Kafka规则事件流读取数据,保存JSON,创建广播流添加并广播规则状态信息给数据分析***共用;
通过Canal收集Mysql增量到消息队列的数据,所述实时分析***在界面定义后将规则引擎保存到数据库的规则中,通过消息队列与Flink专用的消息队列处理工具实现消息队列端到端数据一致性和一次精准消费,错误恢复后数据不重复不丢失,并保存JSON;
创建广播流并添加广播规则状态信息给数据分析***共用,将事件流与广播规则状态流进行双流合并连接,所述双流合并连接的目的是将所述规则事件流与所述广播流的规则状态数据合并相绑定;
所述实时分析***的流数据分析需要依赖上一个计算结果来获得新的合并数据,并使用处理函数解析所述合并数据来判断规则是否存在;通过解析JSON里面包含所有数据库的记录和查询SQL,判断Rule_Status记录是否为需要的,将解析后的查询规则SQL保存到规则参数对象中,并将规则模板代码保存到规则会话对象;
将查询规则SQL和代码都封装到规则状态对象,并写成实时流状态,***每新增一个规则,就有一个新的对象与规则名对应,完成单条实时流的处理;
所述单条实时流保存SQL和规则对象并做了广播流与消息队列处理流的合并,完成两个数据集的双流合并,并对合流后的所述广播流与所述消息队列处理流进行独立处理逻辑,共享数据,并保存算子状态;
当所述单条实时流的处理完成后,在所述单条实时流的处理中取出实时流状态中的规则会话对象和规则参数对象,其中,所述规则参数对象中记录了每一条SQL语句;
调用所述数据查询服务获取租户行为条件SQL,将所述行为条件SQL与规则参数SQL进行匹配对比,当完全匹配时保存到Mysql规则结果表并输出到***展示,当显示结果为不匹配时即新增一条规则;
将规则会话对象写入标签库中进行新增,将规则SQL写入ClickHouse数据库进行添加;
获取数据状态,从所述ClickHouse数据库与标签库中找出相匹配的规则数据,对于规则命名中查到每一个对应记录,若规则与标签不存在,则往相关***数据库中进行添加,完成规则到数据分析主要流程整体的构建;
编译加载模块,用于当应用程序Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过元信息对象获知Class的结构信息。
5.一种终端,其特征在于,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于规则引擎的规则事件动态加载与更新程序,所述基于规则引擎的规则事件动态加载与更新程序被所述处理器执行时实现如权利要求1-3任一项所述的基于规则引擎的规则事件动态加载与更新方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有基于规则引擎的规则事件动态加载与更新程序,所述基于规则引擎的规则事件动态加载与更新程序被处理器执行时实现如权利要求1-3任一项所述的基于规则引擎的规则事件动态加载与更新方法的步骤。
CN202210779345.6A 2022-07-04 2022-07-04 基于规则引擎的规则事件动态加载与更新方法及相关设备 Active CN115129736B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210779345.6A CN115129736B (zh) 2022-07-04 2022-07-04 基于规则引擎的规则事件动态加载与更新方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210779345.6A CN115129736B (zh) 2022-07-04 2022-07-04 基于规则引擎的规则事件动态加载与更新方法及相关设备

Publications (2)

Publication Number Publication Date
CN115129736A CN115129736A (zh) 2022-09-30
CN115129736B true CN115129736B (zh) 2023-08-18

Family

ID=83382060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210779345.6A Active CN115129736B (zh) 2022-07-04 2022-07-04 基于规则引擎的规则事件动态加载与更新方法及相关设备

Country Status (1)

Country Link
CN (1) CN115129736B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116048866B (zh) * 2023-03-07 2023-06-09 浙江鹏信信息科技股份有限公司 基于实时流计算引擎的数据故障检测方法、***及介质
CN115994190B (zh) * 2023-03-23 2023-05-19 中国科学院空间应用工程与技术中心 一种航天海量数据的分布式实时处理方法及***
CN116861455B (zh) * 2023-06-25 2024-04-26 上海数禾信息科技有限公司 事件数据处理方法、***、电子设备及存储介质
CN116719876B (zh) * 2023-08-11 2023-10-20 国网信息通信产业集团有限公司 一种基于规则引擎的时序数据处理方法及终端
CN116775041B (zh) * 2023-08-21 2023-12-05 四川兴川贷数字科技有限公司 基于流计算和rete算法的实时决策引擎实现方法
CN116955427B (zh) * 2023-09-18 2023-12-15 北京长亭科技有限公司 一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置
CN116974876B (zh) * 2023-09-20 2024-02-23 云筑信息科技(成都)有限公司 一种基于实时流框架实现毫秒级监控告警的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444291A (zh) * 2020-03-27 2020-07-24 上海爱数信息技术股份有限公司 一种基于流处理引擎和规则引擎的实时数据告警方法
CN114372084A (zh) * 2020-10-14 2022-04-19 北方工业大学 面向传感流数据的实时处理***
CN114444957A (zh) * 2022-02-08 2022-05-06 易信(厦门)信用服务技术有限公司 一种基于规则引擎的风险预警方法及***
CN114443178A (zh) * 2021-12-01 2022-05-06 天翼电子商务有限公司 一种基于flink cep的规则引擎
CN114595126A (zh) * 2022-03-24 2022-06-07 山西合力创新科技股份有限公司 一种基于规则引擎的告警方法、***、存储设备及终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444291A (zh) * 2020-03-27 2020-07-24 上海爱数信息技术股份有限公司 一种基于流处理引擎和规则引擎的实时数据告警方法
CN114372084A (zh) * 2020-10-14 2022-04-19 北方工业大学 面向传感流数据的实时处理***
CN114443178A (zh) * 2021-12-01 2022-05-06 天翼电子商务有限公司 一种基于flink cep的规则引擎
CN114444957A (zh) * 2022-02-08 2022-05-06 易信(厦门)信用服务技术有限公司 一种基于规则引擎的风险预警方法及***
CN114595126A (zh) * 2022-03-24 2022-06-07 山西合力创新科技股份有限公司 一种基于规则引擎的告警方法、***、存储设备及终端

Also Published As

Publication number Publication date
CN115129736A (zh) 2022-09-30

Similar Documents

Publication Publication Date Title
CN115129736B (zh) 基于规则引擎的规则事件动态加载与更新方法及相关设备
US11755628B2 (en) Data relationships storage platform
US9787706B1 (en) Modular architecture for analysis database
US10810074B2 (en) Unified error monitoring, alerting, and debugging of distributed systems
CN105122243B (zh) 用于半结构化数据的可扩展分析平台
CN112905595A (zh) 一种数据查询方法、装置及计算机可读存储介质
Wu et al. A multilevel index model to expedite web service discovery and composition in large-scale service repositories
CN108681556B (zh) 分布式指令域数据的访问方法及其***
CN107103064B (zh) 数据统计方法及装置
Basin et al. Scalable offline monitoring of temporal specifications
Montplaisir et al. Efficient model to query and visualize the system states extracted from trace data
CN112148578A (zh) 基于机器学习的it故障缺陷预测方法
CN116010452A (zh) 基于流式计算引擎的工业数据处理***和方法、介质
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
CN113886111B (zh) 一种基于工作流的数据分析模型计算引擎***及运行方法
US10671411B2 (en) Cloning for object-oriented environment
CN110750582A (zh) 数据处理方法、装置和***
Meng et al. IT troubleshooting with drift analysis in the DevOps era
CN111680036B (zh) 一种基于图存储的配置管理数据库
Lissandrini et al. An evaluation methodology and experimental comparison of graph databases
Liu Corpus‐Based Japanese Reading Teaching Database Cloud Service Model
Ren et al. Application massive data processing platform for smart manufacturing based on optimization of data storage
CN113553320B (zh) 数据质量监控方法及装置
Castillo-García et al. Design of a Dynamic Horizontal Fragmentation Method for Multimedia Databases
Prathyusha Reduction of Traffic on Roads Using Big Data Applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant