时间窗口累计的实现方法技术

技术编号:14186311 阅读:30 留言:0更新日期:2016-12-14 21:31
本发明专利技术公开一种时间窗口累计的实现方法,首先通过滑动时间窗口累计算法对交易数据信息进行统计分析,然后判断时间窗口的位置变换范围、窗体或步长的大小来选择适用加法引擎算法算法或减法引擎算法算法,最后在Redis Cluster数据库或Hbase数据库中完成交易数据累计值和获取值的统计分析与快速查询。本发明专利技术解决了多维度多场景组合下,SQL查询算法不灵活、查询吞吐量不高、查询粒度不够精确的问题,实现了获取时间窗口累计值的快速响应,提高了准确性。

Method for realizing accumulative time window

This invention discloses a realization method of cumulative time window, first through the sliding window algorithm to carry on the statistical analysis of the cumulative transaction data information, and then determine the time window position change range, form or step size to select appropriate addition or subtraction algorithm engine engine algorithm, finally complete the statistical analysis of transaction data and obtain the cumulative value the value and query in Redis Cluster database or Hbase database. The invention solves the problem of multi scene combination, SQL query algorithm is not flexible, query throughput is not high and the query size is not precise enough, to achieve a rapid response to obtain the time window cumulative value, improve the accuracy of.

【技术实现步骤摘要】

本专利技术涉及互联网信息监测
,尤其涉及一种时间窗口累计的实现方法
技术介绍
在支付业务中,随着业务发展,风险控制愈加依赖于通过多维度、多场景在指定时间段内交易发生的次数、量等各种累计值来做相关的逻辑运算,以及通过建模、同比、环比的方式判断具体的交易风险。累计值以时间窗口维度计算,包括定时区间和滑动式扫描区间;在滑动窗口中,时间窗口不是向前跳,而是每过一个单位时间向前滑动一次,滑动的时间长度是自定义设置的,主要涉及三个参数:位置交换范围、窗体大小和步长,这三个参数关系到算法的效率和有效性,主要通过对算法的复杂度进行评估和分析。算法复杂度的分析主要进行时间复杂度的分析,插入的订单数据经过MQ队列排队等待,插入时间点也可能不是时间窗口上最大的时间点,因此需要对冲突数据进行修补。现有方案是通过Oracle关系数据库,根据业务的不同,按照年、月、日等各种指定时间形式通过where子句,累计不同条件场景下的统计值。通过SQL拼接的形式查询,但是:1)由于各种场景的统计值存储以对应的月、日来创建,导致需求变更不可避免地要去改动表结构和查询条件,通过SUM函数实现的SQL需要开发和二次拼接,也不支持滑动时间窗口自定义的累计值统计业务;2)大量的SQL查询消耗DB的资源,数据库不支持分布式部署,随着业务的发展,在高并发、大容量的情况下,数据库的查询瓶颈越来越明显;3)由于关系数据库的局限性,所有对接的时间窗口都必须事先按照常用的年、月、日等固定步长确定,不能自定义不同粒度步长的时间窗口;4)在多维度、多场景下做累计业务统计,会造成额外的人员支出。
技术实现思路
本专利技术的主要目的在于提供一种时间窗口累计的实现方法,旨在解决多维度、多场景组合下,SQL查询算法不灵活、查询吞吐量不高、查询粒度不够精确的问题。为实现上述目的,本专利技术提出一种时间窗口累计的实现方法,包括以下步骤:S1:实时获取交易数据信息并加以存储;S2:通过滑动时间窗口累计算法对所述交易数据信息进行统计分析;S3:判断时间窗口的位置交换范围、窗体或步长的大小,如果是大则执行步骤S4,否则执行步骤S5;S4:选择减法引擎算法计算Redis Cluster数据库中的数据累计值和获取值,如果Redis Cluster数据库异常则执行步骤S6,若否,则结束;S5:选择加法引擎算法计算Redis Cluster数据库中的数据累计值和获取值,如果Redis Cluster数据库异常则执行步骤S7,若否,则结束;S6:选择减法引擎算法计算Hbase数据库中的数据累计值和获取值;S7:选择加法引擎算法计算Hbase数据库中的数据累计值和获取值。进一步地,所述步骤S4中计算数据累计值的步骤包括:S41:查看需要插入的分数列上是否有值;S42:删除同分数维度下的数据并返回最大成员;S43:修复插入时间后面的数据;S44:插入累计数据;S45:删除无效时间数据;S46:设置Map的过期时间。进一步地,所述步骤S4中计算数据获取值的步骤包括:S47:获取有效时间范围内的最大值;S48:获取无效时间范围内的最小值;S49:用最大值减去最小值获取时间窗口之间有效的累计数据。进一步地,所述步骤S6中计算数据累计值的步骤包括:S61:查询需要插入的时间列,并返回当前列上的值;S62:修复有效时间数;S63:存储滑动时间窗口累计值;S64:删除无效时间数据。进一步地,所述步骤S6中计算数据获取值的步骤包括:S65:获取有效时间范围内的最大值;S66:获取无效时间范围内的最小值;S67:用最大值减去最小值获取时间窗口有效时间的值。进一步地,所述步骤S5中计算数据累计值的步骤包括:S51:转换存储的field;S52:增加increment累计数据;S53:删除无效时间数据;S54:设置Map的过期时间。进一步地,所述步骤S5中计算数据获取值的步骤包括:S55:判断需要查询时间段;S56:获取Map中的所有数据;S57:判断有效时间范围内的部分累计数据,逐个统计。进一步地,所述步骤S43,包括以下子步骤:S431:增加当前冲正量到冲正累计总量的increment累计数据,并返回累加当前冲正量后的总量;S432:查询有限时间段内,key值小于等于累加当前冲正量后的总量减去当前冲正量后的数值的成员;S433:在每个成员值的基础上累加当前冲正量,放入集合中;S434:删除S432中查询到的成员。进一步地,所述窗体以年、月、日、时、分、秒为单位,年、月窗体单位选择减法引擎算法计算数据累计值和获取值,日、时、分、秒窗体单位选择加法引擎算法计算数据累计值和获取值。进一步地,计算数据获取值的最长时间为5ms。本专利技术的时间窗口累计的实现方法,首先通过滑动时间窗口累计算法对所述交易数据信息进行统计分析,然后判断时间窗口的位置变换范围、窗体或步长的大小来选择适用加法或减法,最后在Redis Cluster数据库或Hbase数据库中完成交易数据累计值和获取值的统计分析与快速查询,解决了多维度、多场景组合下,SQL查询算法不灵活、查询吞吐量不高、查询粒度不够精确的问题,实现了获取时间窗口累计值的快速响应,提高了准确性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。图1为本专利技术时间窗口累计的实现方法一实施例的流程图;图2为图1中步骤S4中数据累计值获取的流程图;图3为图1中步骤S4中数据获取值获取的流程图;图4为图1中步骤S6中数据累计值获取的流程图;图5为图1中步骤S6中数据获取值获取的流程图;图6为图1中步骤S5中数据累计值获取的流程图;图7为图1中步骤S5中数据获取值获取的流程图。图8为图3中步骤S43的流程图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明,本专利技术实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。另外,在本专利技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本专利技术要求的保护范围之内。Redis Cluster数据库主要利用其哈希(Hash)特性,一个Map中可以放多对值,理论上可存2键值对,key表示时间维度,v本文档来自技高网...
时间窗口累计的实现方法

【技术保护点】
一种时间窗口累计的实现方法,其特征在于,包括以下步骤:S1:实时获取交易数据信息并加以存储;S2:通过滑动时间窗口累计算法对所述交易数据信息进行统计分析;S3:判断时间窗口的位置交换范围、窗体或步长的大小,如果是大则执行步骤S4,否则执行步骤S5;S4:选择减法引擎算法计算Redis Cluster数据库中的数据累计值和获取值,如果Redis Cluster数据库异常则执行步骤S6,若否,则结束;S5:选择加法引擎算法计算Redis Cluster数据库中的数据累计值和获取值,如果Redis Cluster数据库异常则执行步骤S7,若否,则结束;S6:选择减法引擎算法计算Hbase数据库中的数据累计值和获取值;S7:选择加法引擎算法计算Hbase数据库中的数据累计值和获取值。

【技术特征摘要】
1.一种时间窗口累计的实现方法,其特征在于,包括以下步骤:S1:实时获取交易数据信息并加以存储;S2:通过滑动时间窗口累计算法对所述交易数据信息进行统计分析;S3:判断时间窗口的位置交换范围、窗体或步长的大小,如果是大则执行步骤S4,否则执行步骤S5;S4:选择减法引擎算法计算Redis Cluster数据库中的数据累计值和获取值,如果Redis Cluster数据库异常则执行步骤S6,若否,则结束;S5:选择加法引擎算法计算Redis Cluster数据库中的数据累计值和获取值,如果Redis Cluster数据库异常则执行步骤S7,若否,则结束;S6:选择减法引擎算法计算Hbase数据库中的数据累计值和获取值;S7:选择加法引擎算法计算Hbase数据库中的数据累计值和获取值。2.根据权利要求1所述的时间窗口累计的实现方法,其特征在于,所述步骤S4中计算数据累计值的步骤包括:S41:查看需要插入的分数列上是否有值;S42:删除同分数维度下的数据并返回最大成员;S43:修复插入时间后面的数据;S44:插入累计数据;S45:删除无效时间数据;S46:设置Map的过期时间。3.根据权利要求1所述的时间窗口累计的实现方法,其特征在于,所述步骤S4中计算数据获取值的步骤包括:S47:获取有效时间范围内的最大值;S48:获取无效时间范围内的最小值;S49:用最大值减去最小值获取时间窗口之间有效的累计数据。4.根据权利要求1所述的时间窗口累计的实现方法,其特征在于,所述步骤S6中计算数据累计值的步骤包括:S61:查询需要插入的时间列,并返回当前列上的值;S62:修复有效时间数;S63:存储...

【专利技术属性】
技术研发人员:周伟杨文武吴文坚赵明露
申请(专利权)人:广州唯品会网络技术有限公司
类型:发明
国别省市:广东;44

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

1