基于分布式集群的风险指标计算方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于分布式集群的风险指标计算方法及装置。
背景技术
指标计算在电商风控领域属于基础技术能力,通常应用于关键业务的防刷场景,实践表明,电商风控领域中对指标计算的要求有稳定性、窗口多样性以及快速响应性。并且根据风控领域技术架构的基本要求,指标计算框架要与风控策略引擎有很好的融合性。
现有的指标计算框架storm,虽能初步满足上述要求,但在某些特定业务场景上,如计算本月1-15号某个设备领券次数、或者统计最近一个月内某一IP的登录次数时,现有的指标计算框架storm会存在以下问题:1、因窗口过长带来的大量内存消耗问题,甚至出现OOM情况;2、不支持周期性窗口的指标计算方式。
发明内容
本发明的目的在于提供一种基于分布式集群的风险指标计算方法及装置,能够在保证稳定性、窗口多样性、快速响应性的基础上,解决大窗口内存消耗过大以及不支持周期性窗口指标计算的问题。
为了实现上述目的,本发明的一方面提供一种基于分布式集群的风险指标计算方法,包括:
获取窗口数据并配置窗口类型,选择对应的指标计算语句;
将所述指标计算语句注册到计算集群中,再由计算集群分发给指定的应用节点运行;
将窗口数据以队列形式分发至对应的应用节点执行指标计算,得到计算结果后输出至分布式缓存存储。
优选地,配置窗口类型,选择对应的指标计算语句的方法包括:
通过策略管理平台配置窗口类型,同时从预设的指标计算语句中选取待注册的指标计算语句;
其中,配置的窗口类型包括周期性窗口和滑动性窗口。
较佳地,选取的待注册指标计算语句与需计算的指标个数一一对应。
优选地,将所述指标计算语句注册到计算集群中,再由计算集群分发给指定的应用节点运行的方法包括:
通过策略管理平台将选取的指标计算语句动态注册入计算集群,然后由计算集群将所述指标计算语句一一对应的分配至应用节点运行。
较佳地,将窗口数据以队列形式分发至对应的应用节点执行指标计算,得到计算结果后输出至分布式缓存存储的方法包括:
当配置的窗口类型为周期性窗口时,依次提取周期时段内产生的窗口数据,并基于数据key值将所述窗口数据以队列形式分发至对应的应用节点执行指标计算,之后将计算结果输出至与应用节点对应的缓存中存储;和/或,
当配置的窗口类型为滑动性窗口时,基于窗口长度和窗口精度对滑动性的窗口数据分片,并根据分片后的数据key值将所述窗口数据以队列形式分发至对应的应用节点执行指标计算,之后将计算结果输出至与应用节点对应的缓存中存储。
较佳地,所述计算集群为storm集群,所述分布式缓存为redis集群。
与现有技术相比,本发明提供的基于分布式集群的风险指标计算方法具有以下有益效果:
本发明提供的基于分布式集群的风险指标计算方法中,首先基于窗口数据配置对应的窗口类型,然后根据需计算的指标选择匹配的指标计算语句,由于一种指标计算语句只能计算一种指标结果,因此若要实现对多种指标结果的计算则需对应选择多种指标计算语句,然后将所选择的指标计算语句注册到计算集群中,并由计算集群分发给一一对应的应用节点运行,当各应用节点处于运行状态后,持续将获取的窗口数据以队列形式分发至相应的应用节点执行指标计算,得到计算结果后输出至分布式缓存存储。
可见,本发明通过配置选项能够支持多种窗口类型的指标计算,而且通过计算集群的设置能够较佳的实现高并发场景下的数据分发,最终将指标计算结果在分布式缓存中存储,做到指标计算结果与应用节点的物理隔离,降低了内存占用过大对应用本身的影响,有效解决了内存消耗过大以及不支持周期性窗口指标计算的问题。
本发明的另一方面提供一种基于分布式集群的风险指标计算装置,应用有上述技术方案提到的基于分布式集群的风险指标计算方法,该装置包括:
配置单元,用于获取窗口数据并配置窗口类型,选择对应的指标计算语句;
注册单元,用于将所述指标计算语句注册到计算集群中,再由计算集群分发给指定的应用节点运行;
缓存计算单元,用于将窗口数据以队列形式分发至对应的应用节点执行指标计算,得到计算结果后输出至分布式缓存存储。
优选地,还包括:
风险输出单元,用于由策略管理平台聚合每个缓存中的计算结果,输出风险结果。
与现有技术相比,本发明提供的基于分布式集群的风险指标计算装置的有益效果与上述技术方案提供的基于分布式集群的风险指标计算方法的有益效果相同,在此不做赘述。
本发明的第三方面提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述基于分布式集群的风险指标计算方法的步骤。
与现有技术相比,本发明提供的计算机可读存储介质的有益效果与上述技术方案提供的基于分布式集群的风险指标计算方法的有益效果相同,在此不做赘述。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例一中基于分布式集群的风险指标计算方法的流程示意图;
图2为图1中周期性窗口数据的示意图;
图3为图1中滑动性窗口数据的示意图;
图4为应用基于分布式集群的风险指标计算方法产生的数据流向示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
实施例一
请参阅图1和图4,本实施例提供一种基于分布式集群的风险指标计算方法,包括:
获取窗口数据并配置窗口类型,选择对应的指标计算语句;将指标计算语句注册到计算集群中,再由计算集群分发给指定的应用节点运行;将窗口数据以队列形式分发至对应的应用节点执行指标计算,得到计算结果后输出至分布式缓存存储。
本实施例提供的基于分布式集群的风险指标计算方法中,首先基于窗口数据配置对应的窗口类型,然后根据需计算的指标选择匹配的指标计算语句,由于一种指标计算语句只能计算一种指标结果,因此若要实现对多种指标结果的计算则需对应选择多种指标计算语句,然后将所选择的指标计算语句注册到计算集群中,并由计算集群分发给一一对应的应用节点运行,当各应用节点处于运行状态后,持续将获取的窗口数据以队列形式分发至相应的应用节点执行指标计算,得到计算结果后输出至分布式缓存存储。
可见,本实施例通过配置选项能够支持多种窗口类型的指标计算,而且通过计算集群的设置能够较佳的实现高并发场景下的数据分发,最终将指标计算结果在分布式缓存中存储,做到指标计算结果与应用节点的物理隔离,降低了内存占用过大对应用本身的影响,有效解决了内存消耗过大以及不支持周期性窗口指标计算的问题。
具体地,上述实施例中选择对应的指标计算语句的方法包括:
通过策略管理平台配置窗口类型,同时从预设的指标计算语句中选取待注册的指标计算语句;其中,配置的窗口类型包括周期性窗口和滑动性窗口。
具体实施时,上述策略管理平台为现有的应用管理平台,配置窗口类型的过程为,首先打开业务窗口数据,然后在相关页面中选择配置的窗口类型,同时从预设的指标计算语句中选取待注册的指标计算语句,其中,指标计算语句是基于指标计算纬度预设编写而成,本实施例对此不做赘述,示例性的,可配置的窗口类型包括周期性窗口和滑动性窗口,其中,周期性窗口是指需定期循环计算的指标数据,如计算每月1-15号中某个设备的领券次数,滑动性窗口是针对大窗口采取分片方式计算指标的一种技术手段,如计算近7天某一用户的订单数量。
可以理解的是,一个指标计算语句仅能支持一个指标结果的计算,因此选取的待注册指标计算语句与计算的指标个数需保持一一对应,如若有新的指标计算需求,则需要在策略管理平台中重新编写或者在线改写对应的指标计算语句。
请参阅图4,上述实施例中将所述指标计算语句注册到计算集群中,再由计算集群分发给指定的应用节点运行的方法包括:
通过策略管理平台将选取的指标计算语句动态注册入计算集群,然后由计算集群将所述指标计算语句一一对应的分配至应用节点运行。优选地,上述动态注册入采用RPC注册方式。通过在多个应用节点对应注册不同的指标计算语句,可以将同一窗口数据分发至对应的多个应用节点中,然后分别由每个应用节点运行各自的指标计算语句执行指标运算,最终每个应用节点均可输出一种指标计算结果,进而实现对多个指标计算结果的同时计算,以提高指标结果计算的效率。
示例性地,上述计算集群为storm集群,分布式缓存为redis集群。通过storm集群拓扑的分发特性解决了redis指标计算的分发问题。
上述实施例中将窗口数据以队列形式分发至对应的应用节点执行指标计算,得到计算结果后输出至分布式缓存存储的方法包括:
如图2所示,当配置的窗口类型为周期性窗口时,依次提取周期时段内产生的窗口数据,并基于数据key值将窗口数据以队列形式分发至对应的应用节点执行指标计算,之后将计算结果输出至与应用节点对应的缓存中存储;通过对时间维度计算实现了对周期性窗口的指标计算。
如图3所示,当配置的窗口类型为滑动性窗口时,基于窗口长度和窗口精度对滑动性的窗口数据分片,并根据分片后的数据key值将窗口数据以队列形式分发至对应的应用节点执行指标计算,之后将计算结果输出至与应用节点对应的缓存中存储。可见,对于大窗口的内存问题,本实施例利用分片概念的时间滑动窗口来实现,通过对窗口长度、精度划分后计算出窗口内每个分片的长度,再根据命名规则,实现对多分片(多key)的滑动指标计算。
优选地,上述实施例中在计算结果输出至分布式缓存存储之后还包括:
由策略管理平台聚合每个缓存中的计算结果,输出风险结果。具体实施的过程中,由策略管理平台从各缓存中分别调取计算结果,聚合分析后输出风险结果,聚合分析的具体过程为本领域技术人员所熟知的,本实施例在此不做赘述。如同一设备在1-15号中的领券下单次数超过阈值,则判定该设备可能为刷单设备。
实施例二
本实施例提供一种基于分布式集群的风险指标计算装置,包括:
配置单元,用于获取窗口数据并配置窗口类型,选择对应的指标计算语句;
注册单元,用于将所述指标计算语句注册到计算集群中,再由计算集群分发给指定的应用节点运行;
缓存计算单元,用于将窗口数据以队列形式分发至对应的应用节点执行指标计算,得到计算结果后输出至分布式缓存存储。
优选地,还包括:
风险输出单元,用于由策略管理平台聚合每个缓存中的计算结果,输出风险结果。
与现有技术相比,本发明实施例提供的基于分布式集群的风险指标计算装置的有益效果与上述实施例一提供的基于分布式集群的风险指标计算方法的有益效果相同,在此不做赘述。
实施例三
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述基于分布式集群的风险指标计算方法的步骤。
与现有技术相比,本实施例提供的计算机可读存储介质的有益效果与上述技术方案提供的基于分布式集群的风险指标计算方法的有益效果相同,在此不做赘述。
本领域普通技术人员可以理解,实现上述发明方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,上述程序可以存储于计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。