一种积分权益实时确定方法、装置、介质、设备和系统制造方法及图纸

技术编号:29677408 阅读:13 留言:0更新日期:2021-08-13 22:00
本发明专利技术提供一种积分权益实时确定方法、装置、介质、设备和系统,方法包括:读取数据库中的事件表和任务表,并且存入Flink表中;监听Redis消息队列,发现最新事件和任务,实时更新Flink表中的事件和任务表;监听Kafka配置的主题,从主题中获取Kafka消息;将Kafka消息存入各自对应的Hbase中的表;根据主题从Redis中查询事件过滤表达式,根据过滤条件过滤数据,并且查询出相关联的活动;查询活动下的所有任务,复制为多条任务数据流;对生成的多条任务数据流,分别进行相应的任务达标规则计算;进行任务组达标规则计算,当任务组中的多个任务都全部已经完成时确定本次活动已经达标,将达标结果发送到kafka上。采用Flink新一代大数据计算平台解决了低延迟的问题。

【技术实现步骤摘要】
一种积分权益实时确定方法、装置、介质、设备和系统
本专利技术涉及大数据实时计算领域,具体涉及一种积分权益实时确定方法、装置、介质、设备和系统。
技术介绍
积分权益系统目前已经成为了电商平台、营销系统的主要支撑子系统。金融机构通过发布一个活动,可以对现存用户进行二次营销,用户在进行完成活动任务后,系统会生成积分和权益领取的通知,可以有效的粘合用户。由于现在客户群体规模的庞大,活动礼品力度的增大,经常会带来大量用户人群的在线抢购,从而对系统提出了高并发、低延迟和高吞吐的要求。但是现有技术主要采用spark大数据计算平台和redis进行开发,在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:高延迟,低吞吐等性能问题。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提供一种积分权益实时确定方法、装置、介质、设备和系统,以解决现有技术中高延迟,低吞吐等性能问题。第一方面,本专利技术实施例提供了一种积分权益实时确定方法,其包括:读取数据库中的事件表和任务表;将读取到的所述事件表和所述任务表存入Flink表中;监听Redis中的消息队列,发现最新发布的事件和任务,实时更新所述Flink表中的事件表和任务表;监听Kafka配置的主题,根据所述主题从所述Kafka中获取用户交易数据;将所述用户交易数据存入到Hbase中,其中,每个主题对应Hbase中的一张表;根据所述主题从所述事件表中查询事件过滤表达式,根据所述事件过滤表达式过滤Kafka中发送过来的用户交易数据,获得过滤后的用户交易数据,根据所述事件的主键信息从Redis中查询出与所述过滤后的用户交易数据关联的活动;根据所述过滤后的用户交易数据关联的活动和所述Flink表中的任务表中查询所述活动下的所有任务,将查询到的所述活动下的所有任务复制为多条任务数据流;对生成的多条任务数据流分别进行相应的任务达标规则计算,以确定每个任务是否处于完成状态;进行任务组达标规则计算,当任务组中的多个任务都已经完成时确定本次活动已经达标,将达标结果发送到Kafka上。在一些可能的实施方式中,所述的根据所述过滤后的用户交易数据关联的活动和所述Flink表中的任务表中查询所述活动下的所有任务,将查询到的所述活动下的所有任务复制为多条任务数据流,具体包括:根据所述活动是否配置了白名单并且客户是否属于白名单客户来执行数据拆分;如果所述活动配置了白名单且所述客户属于白名单客户,则从kafka上接收用户交易数据中获取活动ID,再根据所述活动ID从所述Flink表中的任务表中查询所述活动下的所有任务,将查询到的所述活动下的所有任务复制为多条任务数据流;如果所述活动未配置白名单,则先判断客户接受服务的单位与活动发布的单位是否匹配;如果所述客户接受服务的单位与所述活动发布的单位匹配时,则从kafka上接收的用户交易数据中获取活动ID,再根据所述活动ID从所述Flink表的任务表中查询所述活动下的所有任务,将查询到的所述活动下的所有任务复制为多条任务数据流。在一些可能的实施方式中,在所述的对生成的多条任务数据流,分别进行相应的任务达标规则计算,以确定每个任务是否处于完成状态之后,还包括:如果所述任务涉及到累计金额和任务达标次数的规则,则保存中间结果至所述Redis中;如果所述任务已经达标,则将达标的任务信息保存所述Redis中。在一些可能的实施方式中,在所述的对生成的多条任务数据流,分别进行相应的任务达标规则计算,以确定每个任务是否处于完成状态之后,还包括:在所述每个任务达标后,将所述每个任务对应的达标任务信息保存至Hbase对应的表中。在一些可能的实施方式中,在所述的进行任务组达标规则计算,当任务组中的多个任务都已经完成时确定本次活动已经达标,将达标结果发送到kafka上之后,还包括:在任务组达标后,将达标的任务组信息存入所述Kafka和所述Hbase,同时清理所述任务组下达标的客户对应的任务信息。在一些可能的实施方式中,所述进行任务组达标规则计算,当任务组中的多个任务都已经完成时确定本次活动已经达标,具体包括:根据预先配置的达标规则表达式,将所述任务组中的多个任务转换成逻辑表达式;根据所述逻辑表达式中的多个字段名称,从Kafka中和Redis中分别获取对应的交易信息,根据所述交易信息确定每个字段对应的值;将所述每个字段的值代入到所述达标规则表达式中进行计算,得到真或者假的结果,其中,结果为真代表本次活动达标,结果为假代表本次活动未达标。第二方面,本专利技术实施例提供了一种积分权益实时确定装置,其包括:读取模块,用于读取数据库中的事件表和任务表;第一存入模块,用于将读取到的所述事件表和所述任务表存入Flink表中;第一监听模块,用于监听Redis中的消息队列,发现最新发布的事件和任务,实时更新所述Flink表中的事件表和任务表;第二监听模块,监听Kafka配置的主题,根据所述主题从所述Kafka中获取用户交易数据;第二存入模块,用于将所述用户交易数据存入到Hbase中,其中,每个主题对应Hbase中的一张表;活动查询模块,用于根据所述主题从Redis中查询事件过滤表达式,根据所述事件过滤表达式对应的过滤条件过滤Kafka中发送过来的用户交易数据,获得过滤后的用户交易数据,根据所述事件的主键信息从Redis中查询出与所述过滤后的用户交易数据关联的活动;任务复制模块,用于根据所述与有效用户数据关联的活动和所述Flink表中的任务表中查询所述活动下的所有任务,将查询到的所述活动下的所有任务复制为多条任务数据流;第一计算模块,用于对生成的多条任务数据流,分别进行相应的任务达标规则计算,以确定每个任务是否处于完成状态;第二计算模块,用于进行任务组达标规则计算,当任务组中的多个任务都已经完成时确定本次活动已经达标,将达标结果发送到kafka上。第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上所述的任意一种积分权益实时确定方法。第四方面,提供一种计算机设备,其包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的任意一种积分权益实时确定方法。第五方面,提供一种积分权益实时确定系统,其包括:执行上述任意一种积分权益实时确定方法的Flink实时计算平台,用于从第一分布式发布订阅消息系统Kafka接入数据源,通过API调用规则引擎,以及将处理完的数据保存到第二分布式发布订阅消息系统Kafka;第一分布式发布订阅消息系统Kafka,与所述Flink实时计算平台连接,用于向所述Flink实时计算平台接入数据源;第二分布式发布订阅消息系统Kafka,与所述Fli本文档来自技高网...

【技术保护点】
1.一种积分权益实时确定方法,其特征在于,包括:/n读取数据库中的事件表和任务表;/n将读取到的所述事件表和所述任务表存入Flink表中;/n监听Redis中的消息队列,发现最新发布的事件和任务,实时更新所述Flink 表中的事件表和任务表;/n监听Kafka 配置的主题,根据所述主题从所述Kafka中获取用户交易数据;/n将所述用户交易数据存入到Hbase中,其中,每个主题对应Hbase中的一张表;/n根据所述主题从所述事件表中查询事件过滤表达式,根据所述事件过滤表达式过滤Kafka中发送过来的用户交易数据,获得过滤后的用户交易数据,根据所述事件的主键信息从Redis中查询出与所述过滤后的用户交易数据关联的活动;/n根据所述过滤后的用户交易数据关联的活动和所述Flink 表中的任务表中查询所述活动下的所有任务,将查询到的所述活动下的所有任务复制为多条任务数据流;/n对生成的多条任务数据流分别进行相应的任务达标规则计算,以确定每个任务是否处于完成状态;/n进行任务组达标规则计算,当任务组中的多个任务都已经完成时确定本次活动已经达标,将达标结果发送到Kafka上。/n

【技术特征摘要】
1.一种积分权益实时确定方法,其特征在于,包括:
读取数据库中的事件表和任务表;
将读取到的所述事件表和所述任务表存入Flink表中;
监听Redis中的消息队列,发现最新发布的事件和任务,实时更新所述Flink表中的事件表和任务表;
监听Kafka配置的主题,根据所述主题从所述Kafka中获取用户交易数据;
将所述用户交易数据存入到Hbase中,其中,每个主题对应Hbase中的一张表;
根据所述主题从所述事件表中查询事件过滤表达式,根据所述事件过滤表达式过滤Kafka中发送过来的用户交易数据,获得过滤后的用户交易数据,根据所述事件的主键信息从Redis中查询出与所述过滤后的用户交易数据关联的活动;
根据所述过滤后的用户交易数据关联的活动和所述Flink表中的任务表中查询所述活动下的所有任务,将查询到的所述活动下的所有任务复制为多条任务数据流;
对生成的多条任务数据流分别进行相应的任务达标规则计算,以确定每个任务是否处于完成状态;
进行任务组达标规则计算,当任务组中的多个任务都已经完成时确定本次活动已经达标,将达标结果发送到Kafka上。


2.根据权利要求1所述的积分权益实时确定方法,其特征在于,所述的根据所述过滤后的用户交易数据关联的活动和所述Flink表中的任务表中查询所述活动下的所有任务,将查询到的所述活动下的所有任务复制为多条任务数据流,具体包括:
根据所述活动是否配置了白名单并且客户是否属于白名单客户来执行数据拆分;
如果所述活动配置了白名单且所述客户属于白名单客户,则从kafka上接收的用户交易数据中获取活动ID,再根据所述活动ID从所述Flink表中的任务表中查询所述活动下的所有任务,将查询到的所述活动下的所有任务复制为多条任务数据流;
如果所述活动未配置白名单,则先判断客户接受服务的单位与活动发布的单位是否匹配;
如果所述客户接受服务的单位与所述活动发布的单位匹配时,则从kafka上接收的用户交易数据中获取活动ID,再根据所述活动ID从所述Flink表的任务表中查询所述活动下的所有任务,将查询到的所述活动下的所有任务复制为多条任务数据流。


3.根据权利要求1所述的积分权益实时确定方法,其特征在于,在所述的对生成的多条任务数据流分别进行相应的任务达标规则计算,以确定每个任务是否处于完成状态之后,还包括:
如果所述任务涉及到累计金额和任务达标次数的规则,则保存中间结果至所述Redis中;如果所述任务已经达标,则将达标的任务信息保存所述Redis中。


4.根据权利要求1所述的积分权益实时确定方法,其特征在于,在所述的对生成的多条任务数据流分别进行相应的任务达标规则计算,以确定每个任务是否处于完成状态之后,还包括:
在所述每个任务达标后,将所述每个任务对应的达标任务信息保存至Hbase对应的表中。


5.根据权利要求1所述的积分权益实时确定方法,其特征在于,在所述的进行任务组达标规则计算,当任务组中的多个任务都已经完成时确定本次活动已经达标,将达标结果发送到kafka上之后,还包括:
在任务组达标后,将达标的任务组信息存入所述Kafka和所述Hbase,同时清理所述任务组下达标的任务对应的任务信息。


6.根据权利要求1所述的积分权益实时...

【专利技术属性】
技术研发人员:赵鑫邢鹏
申请(专利权)人:北京宇信科技集团股份有限公司
类型:发明
国别省市:北京;11

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

1