CN114020762A - 一种用户评价规则引擎系统及其方法和装置 - Google Patents

一种用户评价规则引擎系统及其方法和装置 Download PDF

Info

Publication number
CN114020762A
CN114020762A CN202111317595.XA CN202111317595A CN114020762A CN 114020762 A CN114020762 A CN 114020762A CN 202111317595 A CN202111317595 A CN 202111317595A CN 114020762 A CN114020762 A CN 114020762A
Authority
CN
China
Prior art keywords
rule
contribution value
user evaluation
user
data object
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.)
Pending
Application number
CN202111317595.XA
Other languages
English (en)
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.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
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 China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202111317595.XA priority Critical patent/CN114020762A/zh
Publication of CN114020762A publication Critical patent/CN114020762A/zh
Pending legal-status Critical Current

Links

Images

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/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2322Optimistic concurrency control using timestamps
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • 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/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种用户评价规则引擎系统及其方法和装置。该系统基于spark流计算实现,包括:规则库构建单元、规则加载单元、规则引擎单元。规则库构建单元用于从数据库中加载用户评价规则并进行编译,将编译得到的可执行用户评价规则存储到所述规则引擎单元的共享内存;规则加载单元用于在规则引擎单元进行用户评价之前,从广播变量中获取更新的用户评价规则,对更新的用户规则进行编译,更新所述共享内存中已存在的可执行用户评价规则;规则引擎单元,用于根据用户数据,利用该共享内存中的可执行用户评价规则进行用户评价。采用本申请可实现用户评价规则的实时更新。

Description

一种用户评价规则引擎系统及其方法和装置
技术领域
本申请涉及计算机数据处理技术领域,尤其涉及一种用户评价规则引擎系统及其方法和装置。
背景技术
在大数据环境下,需要对数亿用户进行实时评价,对于每个用户需要从多个维度进行用户行为的评价和分析,对于这些维度需要处理数十甚至上百类数据,每类数据的评价规则可能不同,如果对不同维度进行单独处理则需要开发上百个流处理程序,管理起来比较困难。有些数据每日的数据量比较小,有些数据每日的数据量较大,很难合理的分配资源,因此需要把所有数据集中起来处理以减少系统负载。
将数据集中起来处理,需要数量多且较复杂的用户评价规则。因此,如何实现基于用户评价规则的规则引擎系统,是目前需要解决的技术问题。
发明内容
本申请提供了一种用户评价规则引擎系统及其方法和装置,用以实现基于用户评价规则的引擎系统。
第一方面,提供一种用户评价规则引擎系统,该用户评价规则引擎系统基于spark流计算实现,该系统可包括:规则库构建单元、规则加载单元、规则引擎单元;
所述规则库构建单元,用于从数据库中加载用户评价规则,将所述用户评价规则与规则模板进行编译,将编译得到的可执行用户评价规则存储到所述规则引擎单元的共享内存;
所述规则加载单元,用于在所述规则引擎单元进行用户评价之前,判断是否更新用户评价规则,若需要更新用户评价规则,则从广播变量中获取更新的用户评价规则,对所述更新的用户规则与所述规则模板进行编译,使用当前编译得到的可执行用户评价规则更新所述共享内存中已存在的可执行用户评价规则;
所述规则引擎单元,用于根据用户数据,利用所述共享内存中的可执行用户评价规则进行用户评价。
在一种可能的实现方式中,所述规则库构建单元,还用于:监测到更新的用户评价规则时,将所述更新的用户评价规则与所述数据库中的用户评价规则构建为新的用户评价规则库;将所述新的用户评价规则库进行序列化;将序列化后的用户评价规则库存储到所述广播变量中。
在一种可能的实现方式中,所述规则加载单元,具体用于:若所述共享内存中不包括可执行用户评价规则,或者所述共享内存中的可执行用户评价规则的时间戳晚于所述广播变量中的用户评价规则的时间戳,则确定需要更新用户评价规则。
在一种可能的实现方式中,所述用户评价规则,包括:基础贡献值规则,所述基础贡献值规则是用于计算贡献值的基本规则。
在一种可能的实现方式中,所述用户评价规则,还包括以下中的至少一项:
贡献值上限规则,所述贡献值上限规则用于限制用户数据在周期内计算贡献值的上限;
贡献值下限规则,所述贡献值下限规则用于判断用户数据是否达到计算贡献值的门限要求;
贡献值系数规则,所述贡献值系数规则用于指定在用户数据满足设定要求时的贡献值计算系数;
不计贡献值规则,所述不计贡献值规则用于指示在满足设定条件时不计算贡献值。
在一种可能的实现方式中,所述规则引擎单元,具体用于:
将用户数据实例化为数据对象;
若所述数据对象不满足所述不计贡献值规则,则判断所述数据对象是否满足所述贡献值下限规则,否则结束流程;
若所述数据对象满足所述贡献值下限规则,则根据基础贡献值规则确定所述数据对象对应的贡献值,否则结束流程;
若所述用户规则中包括贡献值系数规则,则判断所述数据对象是否满足所述贡献值系数规则,若所述数据对象满足所述贡献值系数规则,则根据所述贡献值系数规则对所述数据对象对应的贡献值进行更新;
判断所述数据对象当前对应的贡献值是否超过所述贡献值上限规则所限制的贡献值上限,若超过所述贡献值上限,则减去所述数据对象当前对应的贡献值中超出所述贡献值上限的部分,得到所述数据对象对应的贡献值,否则将所述数据对象当前对应的贡献值作为所述数据对象对应的贡献值。
第二方面,提供一种基于用户评价规则的用户评价方法,所述方法包括:
根据用户数据的类型加载对应的用户评价规则;
判断是否更新用户评价规则,若需要更新用户评价规则,则从广播变量中获取更新的用户评价规则,对所述更新的用户规则与所述规则模板进行编译,使用当前编译得到的可执行用户评价规则更新所述共享内存中已存在的可执行用户评价规则;
根据用户数据,利用所述共享内存中的可执行用户评价规则进行用户评价。
在一种可能的实现方式中,所述方法还包括:
监测到更新的用户评价规则时,将所述更新的用户评价规则与所述数据库中的用户评价规则构建为新的用户评价规则库;
将所述新的用户评价规则库进行序列化;
将序列化后的用户评价规则库存储到所述广播变量中。
在一种可能的实现方式中,所述判断是否更新用户评价规则,包括:若所述共享内存中不包括可执行用户评价规则,或者所述共享内存中的可执行用户评价规则的时间戳晚于所述广播变量中的用户评价规则的时间戳,则确定需要更新用户评价规则。
在一种可能的实现方式中,所述用户评价规则,包括:基础贡献值规则,所述基础贡献值规则是用于计算贡献值的基本规则。
在一种可能的实现方式中,所述用户评价规则,还包括以下中的至少一项:
贡献值上限规则,所述贡献值上限规则用于限制用户数据在周期内计算贡献值的上限;
贡献值下限规则,所述贡献值下限规则用于判断用户数据是否达到计算贡献值的门限要求;
贡献值系数规则,所述贡献值系数规则用于指定在用户数据满足设定要求时的贡献值计算系数;
不计贡献值规则,所述不计贡献值规则用于指示在满足设定条件时不计算贡献值。
在一种可能的实现方式中,所述根据用户数据,利用所述共享内存中的可执行用户评价规则进行用户评价,包括:
将用户数据实例化为数据对象;
若所述数据对象不满足所述不计贡献值规则,则判断所述数据对象是否满足所述贡献值下限规则,否则结束流程;
若所述数据对象满足所述贡献值下限规则,则根据基础贡献值规则确定所述数据对象对应的贡献值,否则结束流程;
若所述用户规则中包括贡献值系数规则,则判断所述数据对象是否满足所述贡献值系数规则,若所述数据对象满足所述贡献值系数规则,则根据所述贡献值系数规则对所述数据对象对应的贡献值进行更新;
判断所述数据对象当前对应的贡献值是否超过所述贡献值上限规则所限制的贡献值上限,若超过所述贡献值上限,则减去所述数据对象当前对应的贡献值中超出所述贡献值上限的部分,得到所述数据对象对应的贡献值,否则将所述数据对象当前对应的贡献值作为所述数据对象对应的贡献值。
第三方面,提供一种通信装置,包括:处理器、存储器;所述存储器,存储计算机指令;所述处理器,用于读取所述计算机指令,执行如上述第二方面中任一项所述的方法。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上述第二方面中任一项所述的方法。
第五方面,提供一种计算机程序产品,所述计算机程序产品在被计算机调用时,使得所述计算机执行如上述第二方面中任一项所述的方法。
本申请的上述实施例,在进行用户评价之前,判断是否更新用户评价规则,若需要更新用户评价规则,则从广播变量中获取更新的用户评价规则,对更新的用户规则与所述规则模板进行编译,使用当前编译得到的可执行用户评价规则更新所述共享内存中已存在的可执行用户评价规则,从而可以使得利用共享内存中的已经更新的可执行用户评价规则进行用户评价,实现了用户评价规则的热更新。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种用户评价规则的数据模型示意图;
图2为本申请实施例提供的一种用户评价规则引擎系统的结构示意图;
图3为本申请实施例中一种基于用户评价规则引擎系统实现的用户评价流程示意图;
图4为本申请实施例中一种基于用户评价规则引擎系统实现的规则构建和规则加载的示意图;
图5为本申请实施例中的一种基于用户评价规则确定贡献值的流程示意图;
图6为本申请实施例提供的一种通信装置的结构示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例提供了一种用户评价规则引擎系统,基于用户评价规则的用户评价方法以及相关装置。本申请实施例提供的用户评价规则引擎系统,可以对用户评价贡献值(比如用户积分)进行计算,并可以处理复杂的用户评价规则,降低用户评价规则的维护难度,当用户评价规则发生变化时,只需添加新的规则或修改已有规则,进行重新编译即可,基本不需要修改规则代码。
可选的,本申请实施例可利用Spark结构化流媒体(spark structuredstreaming)提供的强大的事实性和计算性能,并对用户评价规则进行高度抽象,将用户评价规则拆分为几类规则,比如包括:基础贡献值规则、贡献值系数规则、不计贡献值规则、贡献值上下限规则等规则,然后利用drools作为规则执行器,集中计算多数据源的数据,最终得到评价结果。本申请实施例还可以实现用户评价规则的动态更新。
下面首先对本申请实施例中的一些技术术语进行说明。
Spark:Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类HadoopMapReduce的通用并行框架,Spark拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写Hadoop分布式文件系统(HDFS),因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark流计算:本申请实施例中的用户评价规则引擎系统可基于Spark流计算引擎实现。Spark流计算引擎为Spark结构化流媒体(spark structured streaming),该引擎属于分布式准实时流计算引擎。
Drools规则引擎:Drools是一款基于Java的优秀的规则引擎,将复杂多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得修改规则不需要改动代码重启业务服务就能生效。
Drools议程组(agenda):Drools的规则是可以通过指定议程组名,将规则归到指定的议程组(本申请实施例中,议程组也可称为规则组)中,通过指定议程组名直接找到规则,可以提高规则的执行效率。
Drools规则模板:数据库中的规则只是规则的抽象,Drools并不能够识别这些规则,只有将数据中的规则与Drools规则模板组合起来才是Drools能够识别的规则。
Spark广播变量:Spark中因为算子中的真正逻辑是发送到执行器(Executor)中去运行的,所以当Executor中需要引用外部变量时,需要使用广播变量。
Executor:Executor是Spark任务(task)的执行单元,运行在worker上,但是不等同于worker,实际上executor是一组计算资源(比如包括CPU核心、memory等)的集合。一个worker上的内存(memory)、CPU由多个executor共同分摊。
本申请实施例中,将用户评价规则(也称贡献值规则)抽象为五类,分别为:基础贡献值规则、贡献值下限规则、贡献值上限规则、不计贡献值规则、贡献值系数规则。当然,还可以包括其他类型的规则,本申请实施例对此不作限制。
下面对这五类规则进行介绍:
基础贡献值规则:基础贡献值规则用来计算贡献值的基本规则,每个规则组中包括一个基础贡献值规则。示例性的,一个基础贡献值规则的描述举例为:使用XXX信用消费300元计5贡献值,其中“XXX”表示一种信用支付方式,比如信用卡或小额消费借贷等。
贡献值下限规则:贡献值下限规则用来指定用户数据是否达到计算贡献值的门限要求。贡献值下限规则一般是根据周期来做限制,示例性的,周期的类型可包括:次、日、周、月、年等。示例性的,一个贡献值下限规则的描述举例为:单笔消费达到10元才能计算贡献值,每周签到5次才能计10贡献值。
贡献值上限规则:贡献值上限规则用于限制用户数据在周期内能够计算贡献值的上限。贡献值上限规则一般是根据周期来做限制,示例性的,周期的类型可包括:次、日、周、月、年等。示例性的,一个贡献值上限规则的描述举例:每条文章转发计2贡献值,每日最多计10贡献值。
不计贡献值规则:不计贡献值规则用于指示在满足设定条件时不计算贡献值。在同类数据中,有些用户数据是不计贡献值的。示例性的,一个不计贡献值规则的描述举例为:使用XXX信用消费300元计5贡献值,但消费商户类型为房地产商的消费不计贡献值。
贡献值系数规则:贡献值系数规则用于指定在用户数据满足设定要求时的贡献值计算系数。有时为了鼓励用户消费,在某些情况下对用户进行加倍积分,而有些情况下,为了不提倡某些消费,进行减倍积分。示例性的,一个贡献值系数规则的描述举例为:在用户生日时,鼓励用户消费,对用户进行加倍积分。
上述不计贡献值规则和贡献值系数规则,需要数据满足一定条件才能执行。比如,不计贡献值规则为:如果信用卡的消费商户为房地产商,则不计积分。其中,消费商户的类型是否为房地产商是该不计贡献值规则的执行条件,消费商户类型则为该不计贡献值规则的要素。再例如,贡献值系数规则为:消费当天如果是用户的生日,则给该用户双倍积分。其中,消费当天是否是用户的生日是该贡献值系数规则的执行条件,生日则为该贡献值系数规则的要素。
本申请实施例中,为了提高用户评价规则的使用灵活性,可根据需要,将一个或多个规则配置到一个规则组(也称贡献值规则关系组)中。根据不同的需要,可配置一个或多个规则组。为每个规则组分配一个规则组标识(比如编号),用以区分不同的规则组。
每个规则组中包括唯一一个基础贡献值规则。可选的,一个规则组中还可包括除基础贡献值规则以外的一个或多个规则。本申请实施例中,对一个规则组中包含的规则的数量不做限制,考虑到规则数量越多复杂度越高,所需的计算资源开销越大,因此在具体实施时,可限制一个规则组中规则的最大数量,比如除基础贡献值规则以外,最多可包括5个规则。
一个规则组中,除基础贡献值规则以外,如果包括多个其他规则,则该多个其他规则可能属于同一类型的规则,比如属于贡献值上限规则,或贡献值下限规则,或不计贡献值规则,或贡献值系数规则;该多个其他规则也可能属于不同类型,比如包括2个贡献值上限规则、2个贡献值下限规则、1个不计贡献值规则和1个贡献值系数规则。
如果一个规则组中包括多个贡献值上限规则,则每个贡献值上限规则的周期不同。比如一个规则组中包括第一贡献值上限规则和第二贡献值上限规则,第一贡献值上限规则为:每条文章转发计2贡献值,每日最多计10贡献值,其周期为日;第二贡献值上限规则为:每条文章转发计2贡献值,每周最多计50贡献值,其周期为周。可选的,如果一个规则组中包括多个不同周期限制的贡献值上限规则,则以最小的周期限制为准,比如上述包含第一贡献值上限规则和第二贡献值上限规则的例子中,以第一贡献值上限规则为准,也就是说,在执行该规则组中的贡献值上限规则时,只执行第一贡献值上限规则。
如果一个规则组中包括多个贡献值下限规则,则每个贡献值下限规则的周期不同。可选的,如果一个规则组中包括多个不同周期限制的贡献值下限规则,则以最大的周期限制为准。
示例性的,图1示出了一种用户评价规则的数据模型。
如图1所示,基础贡献值规则表中包括基础贡献值规则的相关信息。其中,每个基础贡献值规则分配有一个唯一标识,一个基础贡献值规则的描述信息可包括:基础贡献值规则名称,贡献值计分依据代码,计分标准,计分单位,贡献值分值等。
贡献值系数规则表中包括贡献值系数规则的相关信息。其中,每个贡献值系数规则分配有一个标识,关联至少一个要素编号。一个贡献值系数规则的描述信息可包括:比较符,被比较值,系数,优先级等。
不计贡献值规则表中包括不计贡献值规则的相关信息。其中,每个不计贡献值规则分配有规则编号,一个不计贡献值规则的描述信息可包括:该不计贡献值规则关联的要素编号,比较符,被比较值等。
贡献值上下限规则表中包括贡献值上限规则的相关信息和贡献值下限规则的相关信息。以贡献值上限规则为例,每个贡献值上限规则分配有一个规则编号,一个贡献值上限规则的描述信息可包括:统计周期类型,上限类型,限制值,限制单位,限制方式等。
要素表中包括要素的相关信息。其中,每个要素分配有一个编号,一个要素的描述信息可包括:要素名称,要素描述等。
贡献值XX规则表中包括贡献值规则编号。
贡献值规则关系表用于描述规则组(也称贡献值规则关系组)。其中,一个规则组分配有一个编号,一个规则组中包含一个或多个规则序号,一个规则组的描述信息可包括:贡献值规则类型代码,贡献值规则编号,生效日期,失效日期等。
采用上述用户评价规则的数据模型,各规则之间没有耦合在一起,可以使得上述用户评价规则的数据模型进行扩展。在增加新的类型的用户评价规则时,无需修改太多的代码,可以更加专注到这类规则的加载逻辑开发,无需处理具体的业务。
基于上述用户评价规则的数据模型,本申请实施例中可根据业务需要,将不同用户评价规则进行自由组合,每类用户数据可以使用若干个规则组合(比如一个或多个规则组)来完成该类数据对用户评价贡献值的计算,使得本申请实施例能够很好的应对复杂的评价规则。
示例性的,图2示出了本申请实施例提供的一种用户评价规则引擎系统的结构示意图,如图所示,该系统可包括:规则库构建单元210、规则加载单元220、规则引擎单元230。
规则库构建单元210,用于从数据库中加载用户评价规则,将该用户评价规则与规则模板进行编译,将编译得到的可执行用户评价规则存储到规则引擎单元230的共享内存。
可选的,规则库构建单元210,还可用于:当监测到更新的用户评价规则时,将该更新的用户评价规则与数据库中的用户评价规则构建为新的用户评价规则库;将新的用户评价规则库进行序列化,将序列化后的用户评价规则库存储到广播变量中。
其中,序列化(Serialization)是指将对象(比如本申请实施例中的用户评价规则库)的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
规则加载单元220,用于在规则引擎单元230执行用户评价规则之前,判断是否更新用户评价规则,如需要更新用户评价规则,则从广播变量中获取更新的用户评价规则,对更新的用户规则与规则模板进行编译,使用当前编译得到的可执行用户评价规则更新共享内存中已存在的可执行用户评价规则。
可选的,规则加载单元220可具体用于:若共享内存中不包括可执行用户评价规则,或者共享内存中的可执行用户评价规则的时间戳晚于所述广播变量中的用户评价规则的时间戳,则确定需要更新用户评价规则。
规则引擎单元230,用于根据用户数据,利用所述共享内存中的可执行用户评价规则进行用户评价。
可选的,本申请实施例中,用户评价规则为贡献值评价规则。规则引擎单元230对用户数据进行评价,可理解为:规则引擎单元230根据用户数据对应的用户行为,确定该用户的贡献值(比如积分)。
示例性的,图3示出了一种基于本申请实施例的用户评价规则引擎系统实现的用户评价流程示意图。
如图3所示,在规则构建过程中,获取实时的用户评价规则,将该用户评价规则与规则模板一起进行动态编译,得到Drools能够识别的规则库,并将该规则库序列化后存放到spark广播变量。在规则加载过程中,从spark广播变量获取用户评价规则库并进行反序列化,得到贡献值议程组(即规则组)。将kafka数据(比如包括用户数据)存入工作内存。在规则执行过程中,规则引擎对规则库和工程内存中的数据进行规则匹配,再根据匹配到的用户评价规则进行用户评价,得到评价结果并输出。
本申请上述实施例提供的用户评价规则引擎系统,在规则引擎单元进行用户评价之前,判断是否更新用户评价规则,若需要更新用户评价规则,则从广播变量中获取更新的用户评价规则,对更新的用户规则与所述规则模板进行编译,使用当前编译得到的可执行用户评价规则更新所述共享内存中已存在的可执行用户评价规则,从而可以使得利用共享内存中的已经更新的可执行用户评价规则进行用户评价,实现了用户评价规则的热更新,提高了该系统的灵活性。
可选的,本申请实施例提供的用户评价引擎系统,可使用Spark结构化流媒体(spark structured streaming)作为规则引擎的载体,在规则引擎中通过structuredstreaming作业监听器StreamingQueryListener来作为规则更新的触发点及更新执行器,将Spark广播作为规则库的存贮点,然后在执行器(Executor)中实例化drools执行器,并加载规则库,最后使用drools执行器计算评价积分(贡献值)。
基于上述的基于spark流计算的用户评价规则引擎系统,规则库构建单元210实现的规则构建过程可分为规则初始化和实时构建。规则初始化是指在流程序启动的时候,Spark的驱动程序(driver)会从数据库中加载存量的用户评价规则,并将存量的用户评价规则与Drools规则模板一起编译生成产品规则,这些产品规则构成了drools的规则库。规则实时构建是指业务人员实时添加的规则会实时被加载到规则引擎单元中,这类规则在业务人员提交后会被实时写入到kafka中,作业监听器(StreamingQueryListener)会实时从kafka中获取新添加的用户评价规则,并将该新添加的用户评价规则重新构建并与数据库中的库存用户评价规则一起重新构建新的用户评价规则库,然后将该用户评价规则库序列化,再将序列化后的用户评价规则库存放在广播变量中。
其中,kafka是一种分布式、分区的、多副本的、多订阅者,并基于zookeeper协调的分布式日志系统,常见可以用于web/nginx日志、访问日志,消息服务等。
基于上述的基于spark流计算的用户评价规则引擎系统,规则加载单元220每次在executor执行程序的时候会监测本地的规则库是否最新,比如可根据广播标量中的时间戳(该时间戳为用户评价规则的更新时间)来判断本地的规则库是否是最新的,如果本地规则库未初始化或者更新时间不是最新的,则将广播变量的规则取到本地,进行反序列化,并实例化为规则库,使用此规则库来构建执行器。
示例性的,图4示出了一种基于本申请实施例的用户评价规则引擎系统实现的规则构建和规则加载的示意图。
如图4所示,在规则构建阶段,获取各类用户评价规则(比如包括贡献值基础规则,上下限规则,贡献值不计规则,贡献值系数规则等),并获取各类规则对应的规则模板(比如包括基础规则模板,上限规则模板,下限规则模板等),将获取到的各类用户评价规则与相应的规则模板进行编译,得到产品规则,根据该产品规则构建规则库,将该规则库序列化,并将序列化的规则库存放到广播变量中。
在规则加载阶段,从广播变量中获取规则库,并进行反序列化,使用返序列化后的规则库更新executor使用的规则,从而使得executor使用更新的用户评价规则计算贡献值。
基于上述的基于spark流计算的用户评价规则引擎系统,规则引擎单元230使用规则引擎对进行用户评价的实际执行过程,其处理过程是structured streaming流处理程序从kafka中消费数据后,将数据实例化为标准对象,将数据实例放入到drool的工作内存中,直接调用drool的执行函数即可得到评价结果。
本申请实施例中,可根据各类用户评价规则的优先级来执行,该优先级执行顺序是由drools来保证。示例性的,一种默认的用户评价规则的优先级顺序从高到低为:不计贡献值规则、贡献值下限规则、基础贡献值规则、贡献值系数规则、贡献值上限规则。当然,根据业务需求,也可以设置其他优先级顺序,本申请实施例对此不作限制。
示例性的,以上述默认优先级顺序为例,图5示出了本申请实施例中的一种基于用户评价规则确定贡献值的流程,该流程可由本申请实施例提供的用户评价规则引擎系统中的规则引擎单元执行。该流程以用户评价规则中按照优先级从高到低的顺序,包括:不计贡献值规则、贡献值下限规则、基础贡献值规则、贡献值系数规则、贡献值上限规则为例描述。
如图5所示,该流程可包括:
S501:将用户数据实例化为数据对象。
示例性的,当需要进行贡献值计算的用户数据输入到本申请实施例提供的用户评价规则引擎系统时,将该用户数据实例化为标准对象A,然后将标准对象A放入到drools的工作内存中。
S502:判断数据对象是否满足不计贡献值规则,若满足,则转入S510,否则转入S503。
该步骤中,可调用drools执行器来执行用户评价规则。
若数据对象满足不计贡献值规则的执行条件,则转入S510以结束该流程,否则转入S503进行后续处理。
S503:判断数据对象是否满足贡献值下限规则,若满足,则转入S504,否则转入S510以结束该流程。
该步骤中,示例性的,如果贡献值下限规则中包括用于规定单次消费的最低门限的规则,比如,单笔消费达到10元才能计算贡献值,则根据该规则判断该数据对象中的单笔消费是否满足该规则规定的最低门限要求。
该步骤中,示例性的,如果贡献值下限规则中包括用于规定周期内计算贡献值的最低门限的规则,比如,每周签到5次才能计算贡献值,则根据该规则判断该数据对象中该周期内的用户数据是否满足该规则规定的最低门限要求。
该步骤中,示例性的,如果贡献值下限规则中既包括用于规定单次消费的最低门限的规则,又包括用于规定周期内计算贡献值的最低门限的规则,则可在判断该用户数据对象满足这两类规则的情况下,才确定该数据对象满足贡献值下限规则。
可选的,若判断该数据对象满足下限规则,则可以用当次用户数据或者累计用户数据作为本次计算的用户数据,进入S504进行后续处理。
S504:根据基础贡献值规则,计算该数据对象对应的贡献值。
S505:判断该数据对象是否满足贡献值系数规则,若满足,则转入S506,否则转入S507。
S506:根据贡献值系数规则,对该数据对象对应的贡献值进行更新,并转入S507。
S507:判断该数据对象当前对应的贡献值,是否超过贡献值上限规则所限制的贡献值上限,若是,则转入S508,否则转入S509。
该步骤中,示例性的,计算得到当次贡献值后,判断是否达到贡献值上限规则中规定的周期内累计贡献值的上限,若达到上限,则转入S508,舍弃高出该上限的贡献值,否则转入S509,将计算得到的贡献值全部计入。
S508:减去该数据对象当前对应的贡献值中超出贡献值上限的部分,得到该数据对象对应的最终贡献值,并输出该最终贡献值。
S509:将该数据对象当前对应的贡献值作为该数据对象对应的贡献值,并输出该贡献值。
S510:结束流程,将0作为该数据对象对应的贡献值,并输出该贡献值。
基于优先级的规则执行顺序,可以提供更加灵活的规则处理。上述默认优先级顺序的用户评价规则的处理流程能满足大多数的规则处理需求。当然,根据业务需求,也可以设置其他的优先级顺序,本申请实施例对此不做限制。
基于相同的技术构思,本申请实施例还提供了一种通信装置,能够实现前述实施例中的基于用户评价规则的用户评价方法。
参见图6,为本申请实施例提供的通信装置的结构示意图。如图所示,该装置可包括:处理器601、存储器602以及总线接口603。
处理器601负责管理总线架构和通常的处理,存储器602可以存储处理器601在执行操作时所使用的数据。
总线架构可以包括任意数量的互联的总线和桥,具体由处理器601代表的一个或多个处理器和存储器602代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器601负责管理总线架构和通常的处理,存储器602可以存储处理器601在执行操作时所使用的数据。
本申请实施例揭示的流程,可以应用于处理器601中,或者由处理器601实现。在实现过程中,处理流程的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。处理器601可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成本申请实施例中的方法流程的步骤。
具体地,处理器601,用于读取存储器602中的计算机指令并执行本申请实施例中的用户评价方法。
在此需要说明的是,本申请实施例提供的上述通信装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行上述实施例中的用户评价方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在被计算机调用时,使得所述计算机执行上述实施例中的用户评价方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (15)

1.一种用户评价规则引擎系统,所述用户评价规则引擎系统基于spark流计算实现,其特征在于,包括:规则库构建单元、规则加载单元、规则引擎单元;
所述规则库构建单元,用于从数据库中加载用户评价规则,将所述用户评价规则与规则模板进行编译,将编译得到的可执行用户评价规则存储到所述规则引擎单元的共享内存;
所述规则加载单元,用于在所述规则引擎单元进行用户评价之前,判断是否更新用户评价规则,若需要更新用户评价规则,则从广播变量中获取更新的用户评价规则,对所述更新的用户规则与所述规则模板进行编译,使用当前编译得到的可执行用户评价规则更新所述共享内存中已存在的可执行用户评价规则;
所述规则引擎单元,用于根据用户数据,利用所述共享内存中的可执行用户评价规则进行用户评价。
2.如权利要求1所述的用户评价规则引擎系统,其特征在于,所述规则库构建单元,还用于:
监测到更新的用户评价规则时,将所述更新的用户评价规则与所述数据库中的用户评价规则构建为新的用户评价规则库;
将所述新的用户评价规则库进行序列化;
将序列化后的用户评价规则库存储到所述广播变量中。
3.如权利要求1所述的用户评价规则引擎系统,其特征在于,所述规则加载单元,具体用于:
若所述共享内存中不包括可执行用户评价规则,或者所述共享内存中的可执行用户评价规则的时间戳晚于所述广播变量中的用户评价规则的时间戳,则确定需要更新用户评价规则。
4.如权利要求1所述的用户评价规则引擎系统,其特征在于,所述用户评价规则,包括:
基础贡献值规则,所述基础贡献值规则是用于计算贡献值的基本规则。
5.如权利要求4所述的用户评价规则引擎系统,其特征在于,所述用户评价规则,还包括以下中的至少一项:
贡献值上限规则,所述贡献值上限规则用于限制用户数据在周期内计算贡献值的上限;
贡献值下限规则,所述贡献值下限规则用于判断用户数据是否达到计算贡献值的门限要求;
贡献值系数规则,所述贡献值系数规则用于指定在用户数据满足设定要求时的贡献值计算系数;
不计贡献值规则,所述不计贡献值规则用于指示在满足设定条件时不计算贡献值。
6.如权利要求5所述的用户评价规则引擎系统,其特征在于,所述规则引擎单元,具体用于:
将用户数据实例化为数据对象;
若所述数据对象不满足所述不计贡献值规则,则判断所述数据对象是否满足所述贡献值下限规则,否则结束流程;
若所述数据对象满足所述贡献值下限规则,则根据基础贡献值规则确定所述数据对象对应的贡献值,否则结束流程;
若所述用户规则中包括贡献值系数规则,则判断所述数据对象是否满足所述贡献值系数规则,若所述数据对象满足所述贡献值系数规则,则根据所述贡献值系数规则对所述数据对象对应的贡献值进行更新;
判断所述数据对象当前对应的贡献值是否超过所述贡献值上限规则所限制的贡献值上限,若超过所述贡献值上限,则减去所述数据对象当前对应的贡献值中超出所述贡献值上限的部分,得到所述数据对象对应的贡献值,否则将所述数据对象当前对应的贡献值作为所述数据对象对应的贡献值。
7.一种基于用户评价规则的用户评价方法,其特征在于,所述方法包括:
根据用户数据的类型加载对应的用户评价规则;
判断是否更新用户评价规则,若需要更新用户评价规则,则从广播变量中获取更新的用户评价规则,对所述更新的用户规则与所述规则模板进行编译,使用当前编译得到的可执行用户评价规则更新所述共享内存中已存在的可执行用户评价规则;
根据用户数据,利用所述共享内存中的可执行用户评价规则进行用户评价。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
监测到更新的用户评价规则时,将所述更新的用户评价规则与所述数据库中的用户评价规则构建为新的用户评价规则库;
将所述新的用户评价规则库进行序列化;
将序列化后的用户评价规则库存储到所述广播变量中。
9.如权利要求7所述的方法,其特征在于,所述判断是否更新用户评价规则,包括:
若所述共享内存中不包括可执行用户评价规则,或者所述共享内存中的可执行用户评价规则的时间戳晚于所述广播变量中的用户评价规则的时间戳,则确定需要更新用户评价规则。
10.如权利要求7所述的方法,其特征在于,所述用户评价规则,包括:
基础贡献值规则,所述基础贡献值规则是用于计算贡献值的基本规则。
11.如权利要求10所述的方法,其特征在于,所述用户评价规则,还包括以下中的至少一项:
贡献值上限规则,所述贡献值上限规则用于限制用户数据在周期内计算贡献值的上限;
贡献值下限规则,所述贡献值下限规则用于判断用户数据是否达到计算贡献值的门限要求;
贡献值系数规则,所述贡献值系数规则用于指定在用户数据满足设定要求时的贡献值计算系数;
不计贡献值规则,所述不计贡献值规则用于指示在满足设定条件时不计算贡献值。
12.如权利要求11所述的方法,其特征在于,所述根据用户数据,利用所述共享内存中的可执行用户评价规则进行用户评价,包括:
将用户数据实例化为数据对象;
若所述数据对象不满足所述不计贡献值规则,则判断所述数据对象是否满足所述贡献值下限规则,否则结束流程;
若所述数据对象满足所述贡献值下限规则,则根据基础贡献值规则确定所述数据对象对应的贡献值,否则结束流程;
若所述用户规则中包括贡献值系数规则,则判断所述数据对象是否满足所述贡献值系数规则,若所述数据对象满足所述贡献值系数规则,则根据所述贡献值系数规则对所述数据对象对应的贡献值进行更新;
判断所述数据对象当前对应的贡献值是否超过所述贡献值上限规则所限制的贡献值上限,若超过所述贡献值上限,则减去所述数据对象当前对应的贡献值中超出所述贡献值上限的部分,得到所述数据对象对应的贡献值,否则将所述数据对象当前对应的贡献值作为所述数据对象对应的贡献值。
13.一种通信装置,其特征在于,包括:处理器、存储器;
所述存储器,存储计算机指令;
所述处理器,用于读取所述计算机指令,执行如权利要求7-12任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利7-12任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品在被计算机调用时,使得所述计算机执行如权利要求7-12任一项所述的方法。
CN202111317595.XA 2021-11-09 2021-11-09 一种用户评价规则引擎系统及其方法和装置 Pending CN114020762A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111317595.XA CN114020762A (zh) 2021-11-09 2021-11-09 一种用户评价规则引擎系统及其方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111317595.XA CN114020762A (zh) 2021-11-09 2021-11-09 一种用户评价规则引擎系统及其方法和装置

Publications (1)

Publication Number Publication Date
CN114020762A true CN114020762A (zh) 2022-02-08

Family

ID=80062318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111317595.XA Pending CN114020762A (zh) 2021-11-09 2021-11-09 一种用户评价规则引擎系统及其方法和装置

Country Status (1)

Country Link
CN (1) CN114020762A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020433A (zh) * 2012-11-30 2013-04-03 北京中恒博瑞数字电力科技有限公司 一种电力设备状态的评价模型引擎
CN104732450A (zh) * 2015-03-06 2015-06-24 国家电网公司 一种基于规则引擎的供电质量评价系统
CN111198863A (zh) * 2019-12-27 2020-05-26 天阳宏业科技股份有限公司 一种规则引擎及其实现方法
CN111221550A (zh) * 2019-10-24 2020-06-02 支付宝(杭州)信息技术有限公司 用于流式计算的规则更新方法、装置及流式计算系统
CN111930366A (zh) * 2020-10-12 2020-11-13 北京江融信科技有限公司 一种基于jit实时编译的规则引擎实现方法及系统
CN112988215A (zh) * 2021-02-07 2021-06-18 中国建设银行股份有限公司 评价规则的实现与用户数据的评价方法、装置及电子设备
CN113344604A (zh) * 2021-04-16 2021-09-03 广州迅捷微风信息科技有限公司 一种基于用户行为数据及流计算的用户细分方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020433A (zh) * 2012-11-30 2013-04-03 北京中恒博瑞数字电力科技有限公司 一种电力设备状态的评价模型引擎
CN104732450A (zh) * 2015-03-06 2015-06-24 国家电网公司 一种基于规则引擎的供电质量评价系统
CN111221550A (zh) * 2019-10-24 2020-06-02 支付宝(杭州)信息技术有限公司 用于流式计算的规则更新方法、装置及流式计算系统
CN111198863A (zh) * 2019-12-27 2020-05-26 天阳宏业科技股份有限公司 一种规则引擎及其实现方法
CN111930366A (zh) * 2020-10-12 2020-11-13 北京江融信科技有限公司 一种基于jit实时编译的规则引擎实现方法及系统
CN112988215A (zh) * 2021-02-07 2021-06-18 中国建设银行股份有限公司 评价规则的实现与用户数据的评价方法、装置及电子设备
CN113344604A (zh) * 2021-04-16 2021-09-03 广州迅捷微风信息科技有限公司 一种基于用户行为数据及流计算的用户细分方法

Similar Documents

Publication Publication Date Title
CN111625331B (zh) 任务调度方法、装置、平台、服务器及存储介质
CN110069334A (zh) 一种基于包管理的分布式数据作业调度的方法和系统
CN108171528B (zh) 一种归因方法及归因系统
CN113296905B (zh) 调度方法、装置、电子设备、存储介质及软件产品
CN113254174A (zh) 一种rpa机器人流程自动化实现系统和方法
CN115373835A (zh) Flink集群的任务资源调整方法、装置及电子设备
CN110780870A (zh) 一种业务执行方法、装置、设备及存储介质
CN116069300A (zh) 工作流控制代码生成方法、装置、电子设备及存储介质
CN111415129A (zh) 工作流平台及具有该工作流平台的终端设备
CN113515369B (zh) 一种数据处理方法、系统、终端和存储介质
CN113742036B (zh) 指标处理方法、装置及电子设备
CN106843822B (zh) 一种执行代码生成方法及设备
CN114020762A (zh) 一种用户评价规则引擎系统及其方法和装置
Amit et al. Situation-Aware eXplainability for Business Processes Enabled by Complex Events
CN116820714A (zh) 一种算力设备的调度方法、装置、设备和存储介质
CN115617480A (zh) 一种任务调度方法、装置、系统及存储介质
US7562061B2 (en) Context-based failure reporting for a constraint satisfaction problem
Nooraei Abadeh et al. DiffPageRank: an efficient differential PageRank approach in MapReduce
CN111078449B (zh) 信息处理方法、信息处理装置及终端设备
Eichelberger et al. From resource monitoring to requirements-based adaptation: An integrated approach
CN114004505A (zh) 基于bpm平台进行业务流程推荐的方法及bpm平台
CN113656369A (zh) 一种大数据场景下的日志分布式流式采集及计算方法
CN113806225A (zh) 一种业务异常节点识别方法、装置和电子设备
CN113011984A (zh) 金融产品的业务数据处理方法及装置
CN113867714A (zh) 一种适配多语言的自动代码生成方法

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