一种基于时间窗口可移动的动态数据快速处理方法.pdf

上传人:1*** 文档编号:20856 上传时间:2018-01-12 格式:PDF 页数:8 大小:446.31KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510082930.0

申请日:

2015.02.15

公开号:

CN104765765A

公开日:

2015.07.08

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更IPC(主分类):G06F 17/30变更事项:申请人变更前:杭州邦盛金融信息技术有限公司变更后:浙江邦盛科技有限公司变更事项:地址变更前:310012 浙江省杭州市西湖区世贸丽晶城欧美中心C区607、609室变更后:310012 浙江省杭州市西湖区世贸丽晶城欧美中心C区607、609室|||实质审查的生效IPC(主分类):G06F 17/30申请日:20150215|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

杭州邦盛金融信息技术有限公司

发明人:

王新根; 黄滔; 胡时豪

地址:

310012浙江省杭州市西湖区世贸丽晶城欧美中心C区607、609室

优先权:

专利代理机构:

杭州求是专利事务所有限公司33200

代理人:

邱启旺

PDF下载: PDF下载
内容摘要

本发明公开了一种基于时间窗口可移动的动态数据快速处理方法,通过原数据库中待处理数据中的时间戳字段构建一个时间戳序列,并对这部分数据进行一个原始加工,最终通过增量的形式存储到分布式缓存中,供后续的营销或者风控采用。本发明中时间戳序列的构建依托于时间戳字段,在原数据表中的数据过大时,可以通过该时间戳字段进行增量处理;因为中间变量的计算是可增量、可合并计算的,这种数据处理方式具备非常强大的水平扩展能力,可以通过简单的添加新的计算设备即可线性增加计算能力。

权利要求书

1.  一种基于时间窗口可移动的动态数据快速处理方法,其特征在于,包括以下步骤:
(1)数据采集,获取批量数据:判断数据源中的数据是否具备增量字段,若有则从数据源中增量获取一批数据;若无,则全量获取数据;
(2)数据预处理,包括以下子步骤:
(2.1)生成可增量计算的最小数据处理单元:根据每条流水数据需要处理的逻辑生成最小的可增量计算的数据处理单元,所述逻辑包括计数、求和、平均、最大、最小、方差、标准差、采集、去重采集等中的一种或多种,所述最小的可增量计算的数据处理单元附带时间戳;
(2.2)生成时间戳序列:将所有流水数据生成的最小的可增量计算的数据处理单元根据不同数据维度中的每一个主键进行归组,生成一系列时间戳序列;所述数据维度包括账号、手机号、身份证号、业务号等;任意数据维度中,每个主键中的每个计算逻辑分别对应一时间戳序列,所述时间戳序列对应计算变量;
(2.3)时间戳序列合并:对于时间戳序列过于庞大的情况,可以按照不同的时间单元进行时间戳序列合并,从而节约内存;所述时间单元为年、季度、月、周、日、时、分、秒;
(2.4)保存时间戳序列:将合并后的时间戳序列合并到原缓存或其他数据源中已经存在的当前数据维度、当前数据主键和当前计算变量中,以满足增量计算、增量保存的能力;
(3)数据输出:指定时间戳、时间窗口、数据维度、数据主键和计算变量,在缓存或其他数据源中提取对应的时间戳序列,对时间戳序列中的最小的可增量计算的数据处理单元进行合并,得到动态时间窗口对应的计算结果。

说明书

一种基于时间窗口可移动的动态数据快速处理方法
技术领域
本发明涉及基于时间窗口移动的动态数据处理技术,提供对随时间窗口移动而变动的动态数据处理及存储方法,主要适用于风控、营销、行为习惯挖掘等技术领域
背景技术
在风控、营销等领域,经常会涉及如“过去24小时的交易量”、“过去5天的交易最大额”等相关变量等的计算问题。因为当前时间是一直向前推进的,因而“过去24小时”这种变量的计算需要考虑时间窗口一直在移动这个事实。
传统的处理方式主要是直接通过数据库查询方式进行,一般通过对数据库中的时间字段构建基于指定时间窗口的查询条件,然后针对查询出来的这部分数据进行相应的计算即可。考虑到时间窗口是移动的,这部分计算出来的结果仅对当前或者指定时间戳有效,随着时间窗口的移动,这个查询结果只能使用一次,使用后即过期,相当于每次用到这个计算结果都需要重新进行查询。由于此原因,导致这部分计算结果处理缓慢,延时基本需要几百毫秒到几秒之间,且会导致数据库的查询压力过大;在需要频繁密集使用这部分计算结果的场景下(如超低延时、超高并发实时风控场景),这种简单粗暴的数据处理方式基本不可使用。
另外一种基于数据库缓存的技术可以在一定程度上提升这部分动态数据的处理速度。大体做法有两种:一种是通过采用内存数据库、或者类似Oracle TimesTen这种CAC(Content Aware Cache)数据库缓存技术;另外一种是采用MemCached或者Redis等CBC(Content Blind Cache)缓存技术用于缓存上次执行的查询结果。因为数据多在内存中,即使频繁执行这种查询也会大大缓解传统的基于磁盘的数据库的IO压力,大部分情况下这样的查询能够在几毫秒内返回。在一定程度上,这种动态数据处理技术能够实现TPS在几百~几千左右的处理性能,延时一般可以控制在几毫秒到几十毫秒之间。
然而,通过直接查询数据库的形式(上述两种方法)有几个缺陷一直无法克服,具体如下:
1.查询结果集过大的情况下,处理效率低下,甚至无法处理。在真实场景下,很多时候需要处理“某业务过去30天交易额波动情况”,因为业务是一个非常大的数据维度,一般大企业某业务过去30天的交易流水会达到几十亿甚至几百亿这个规模,该情况下,计算该变量所在宿主机需要的内存是巨大的,在内存不足的情况会导致无法计算的最坏结果。
2.待计算变量线性增长时,计算延时不可控,吞吐量骤降。在实时风控或者营销等场景, 完成一个决策需要用到的计算变量往往不是一个或者几个,而是需要很多变量进行统筹并构建决策树的,一般至少有几十、上百、甚至上千个变量同时参与该决策。该情况下,这种数据处理方式延时以及处理吞吐量基本呈现线性增长的特性,这种处理方式往往难以满足企业后续业务发展的需求。
3.需要较大规模的计算设备。由于处理方式需要进行密集的数据库查询,从而导致对数据库的IOPS要求,以及计算设备的CPU要求等过高,一般需采购上百万人民币的中间件加硬件设备才能满足一般的业务需求。
发明内容
针对传统动态数据处理方式的问题,本发明提供一种基于时间窗口可移动的动态数据快速处理方法,实现在海量数据模式下对动态数据的快速处理。
本发明的目的是通过以下技术方案来实现的:一种基于时间窗口可移动的动态数据快速处理方法,包括以下步骤:
(1)数据采集,获取批量数据:判断数据源中的数据是否具备增量字段,若有则从数据源中增量获取一批数据;若无,则全量获取数据;
(2)数据预处理,包括以下子步骤:
(2.1)生成可增量计算的最小数据处理单元:根据每条流水数据需要处理的逻辑生成最小的可增量计算的数据处理单元,所述逻辑包括计数、求和、平均、最大、最小、方差、标准差、采集、去重采集等中的一种或多种,所述最小的可增量计算的数据处理单元附带时间戳;
(2.2)生成时间戳序列:将所有流水数据生成的最小的可增量计算的数据处理单元根据不同数据维度中的每一个主键进行归组,生成一系列时间戳序列;所述数据维度包括账号、手机号、身份证号、业务号等;任意数据维度中,每个主键中的每个计算逻辑分别对应一时间戳序列,所述时间戳序列对应计算变量;
(2.3)时间戳序列合并:对于时间戳序列过于庞大的情况,可以按照不同的时间单元进行时间戳序列合并,从而节约内存;所述时间单元为年、季度、月、周、日、时、分、秒;
(2.4)保存时间戳序列:将合并后的时间戳序列合并到原缓存或其他数据源中已经存在的当前数据维度、当前数据主键和当前计算变量中,以满足增量计算、增量保存的能力;
(3)数据输出:指定时间戳、时间窗口、数据维度、数据主键和计算变量,在缓存或其他数据源中提取对应的时间戳序列,对时间戳序列中的最小的可增量计算的数据处理单元进行合并,得到动态时间窗口对应的计算结果。
本发明的有益效果是:本发明基于时间窗口可移动的动态数据快速处理方法,在设计之初就考虑了传统计算方式所不具备的高速、海量数据处理能力,非常适用于基于海量数据挖掘的营销、实时风控等领域,其带来的优势是不言而喻的,概括起来,主要包括:
1.超低延时,超高吞吐量。一般对于单个计算变量的计算,其延时可以控制在微秒级,及时考虑分布式缓存的存储,其延时也可以控制在10毫秒以内。单个计算设备,一般可以达到单变量每秒处理几百万流水的能力;即使考虑这部分中间变量的存储问题,基本上也能达到几万、甚至几十万的TPS。
2.良好的时效性控制。计算本身的低延时确保了对于数据源数据的快速处理,从而保障流水数据处理的时效性,数据处理延时可以控制在几十毫秒(包括变量存储)。真实环境中,数据时效性的延时主要来自数据库同步等其他因素。
3.可处理超大数据维度。因为数据可以被拆分处理,因而即使对“某业务渠道”进行统计计算可以获得跟其他小数据维度一样的处理效率,而且计算设备硬件没有更高要求。
4.高度可扩展能力。在计算变量、业务规模等提升的情况下,通过简单的增加计算设备以及分布式存储内存即可提升计算能力,从而确保应对复杂逻辑计算的延时可控。
5.低成本的硬件设备。因为该数据处理技术,只在初始计算过程中会访问数据库,因为只需投入很低的数据库硬件成本;后续的计算单元合并及计算都直接在内存中进行,而且可以避免90%以上的重复计算问题。经过统计,一般几十万人民币的计算设备就能胜任中大型企业的计算业务需求。
附图说明
图1为本发明基于时间窗口可移动的动态数据快速处理方法流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
如图1所示,本发明一种基于时间窗口可移动的动态数据快速处理方法,包括以下步骤:
(1)数据采集,获取批量数据:判断数据源中的数据是否具备增量字段,若有则从数据源中增量获取一批数据;若无,则全量获取数据;
(2)数据预处理,包括以下子步骤:
(2.1)生成可增量计算的最小数据处理单元:根据每条流水数据需要处理的逻辑生成最小的可增量计算的数据处理单元,所述逻辑包括计数、求和、平均、最大、最小、方差、标准差、采集、去重采集等中的一种或多种,所述最小的可增量计算的数据处理单元附带时间戳;
(2.2)生成时间戳序列:将所有流水数据生成的最小的可增量计算的数据处理单元根据不同数据维度中的每一个主键进行归组,生成一系列时间戳序列;所述数据维度包括账号、手机号、身份证号、业务号等;任意数据维度中,每个主键中的每个计算逻辑分别对应一时间戳序列,所述时间戳序列对应计算变量;
(2.3)时间戳序列合并:对于时间戳序列过于庞大的情况,可以按照不同的时间单元进行时间戳序列合并,从而节约内存;所述时间单元为年、季度、月、周、日、时、分、秒;
(2.4)保存时间戳序列:将合并后的时间戳序列合并到原缓存或其他数据源中已经存在的当前数据维度、当前数据主键和当前计算变量中,以满足增量计算、增量保存的能力;
(3)数据输出:指定时间戳、时间窗口、数据维度、数据主键和计算变量,在缓存或其他数据源中提取对应的时间戳序列,对时间戳序列中的最小的可增量计算的数据处理单元进行合并,得到动态时间窗口对应的计算结果。
实施例
本发明方法主要通过原数据库中待处理数据中的时间戳字段构建一个时间戳序列,并对这部分数据进行一个原始加工,最终通过增量的形式存储到分布式缓存中,供后续的营销或者风控采用。如数据库数据表中包含如下信息:

订单号 客户ID 商户ID 交易额(元) 交易时间 1 C1 M1 120 2013-11-03 11:45:12.123 2 C2 M1 170 2013-11-04 13:45:12.123 3 C3 M2 150 2013-11-05 05:45:12.123 4 C3 M2 290 2013-11-05 14:12:34.378 5 C4 M2 165 2013-11-05 16:34:45.178 6 C3 M3 198 2013-11-05 17:18:54.874 7 C3 M1 276 2013-11-05 19:07:35.934

在上述表中,客户以及商户被定义为数据维度,每个数据维度包含ID等信息用以表述同一商户、同一客户等概念,数据维度可以下挂很多计算变量,每个计算变量用以表述该数据维度对应的计算中间结果。本发明方法中,数据维度以Key-Value形式通过HashMap存在于分布式缓存中,其中Key对应计算变量名,Value保存数据处理过程中的时间戳序列结果。如果需要计算C3这个客户当天的平均交易额,仅需完成以下简单操作:
1)将C3这个客户的数据进行提取和过滤,保留计算过程中需要的基本信息。得到:
客户ID 交易额(元) 交易时间 C3 150 2013-11-05 05:45:12.123 C3 290 2013-11-05 14:12:34.378 C3 198 2013-11-05 17:18:54.874 C3 276 2013-11-05 19:07:35.934

2)将每个交易对应的时间戳抽取出来成为一个时间戳序列,并将每个交易额信息转为可增量计算的计算单元。此处平均值将保留计数以及额度信息,用以后续进行增量计算及合并。当前的计算单元,已经能够支持包括计数、求和、平均、最大、最小、方差以及标准差的增量计算。得到:

3)计算完毕后,将当前这部分原始数据的计算结果合并到原来分布式缓存中已经存在的当前数据维度、当前数据主键当前计算变量中去,以满足增量计算、增量保存的能力。
4)使用该计算变量时,通过传入时间戳以及时间窗口来进行动态计算。如传入时间戳为2013-11-0519:07:36,计算窗口为当天,直接从原始时间戳序列中获取对应的时间戳列表,然后进行对应的合并计算即可。此处的计算方式是:(150+290+198+276)/4=228.5,从而我们可以得到C3用户当天的平均交易额为228.5元。
5)另外,为了节省内存,这些时间戳序列是可以合并的,上述场景就可以将4个时间戳合并为1个时间戳,因为涉及的计算是以天作为单位,合并后的时间戳可以设置为2013-11-0600:00:00.000,用于表示到这个时间戳前的平均交易额。合并后,表格为:
客户ID 变量名 交易时间 交易额(元) 计数 C3 交易平均额 2013-11-06 00:00:00.000 228.5 4

本发明基于时间窗口可移动的动态数据快速处理方法具有以下几个技术特点:
1)时间戳序列的构建依托于时间戳字段。时间窗口可移动的一个重要原理就是基于这个时间戳,如果业务数据中没有此时间戳字段,整个计算过程将会不可用。
2)可进行增量处理。在原数据表中的数据过大时,可以通过该时间戳字段进行增量处理,例如每次数据处理都是1个小时的数据量,然后处理下1个小时的数据量。具体每个时间段该取多大,可考虑当前业务以及数据量。
3)计算单元可合并。对于原数据流水的原始处理是比较简单的,仅需将其转为可合并计算的计算单元,主要包括计数、求和、求平均、求最大、求最小、求方差、求标准差、唯一数据采集列表等计算单元。
4)可进行分布式计算。因为中间变量的计算是可增量、可合并计算的,这种数据处理方式具备非常强大的水平扩展能力,可以通过简单的添加新的计算设备即可线性增加计算能力。
5)计算变量(挂在数据维度上)存储是可插拔的。一般需要将这部分数据存储于内存中,可以是分布式缓存,或者闪存等;对于营销等实时性要求不高的场景,也可以将这部分数据存储于磁盘中。

一种基于时间窗口可移动的动态数据快速处理方法.pdf_第1页
第1页 / 共8页
一种基于时间窗口可移动的动态数据快速处理方法.pdf_第2页
第2页 / 共8页
一种基于时间窗口可移动的动态数据快速处理方法.pdf_第3页
第3页 / 共8页
点击查看更多>>
资源描述

《一种基于时间窗口可移动的动态数据快速处理方法.pdf》由会员分享,可在线阅读,更多相关《一种基于时间窗口可移动的动态数据快速处理方法.pdf(8页珍藏版)》请在专利查询网上搜索。

本发明公开了一种基于时间窗口可移动的动态数据快速处理方法,通过原数据库中待处理数据中的时间戳字段构建一个时间戳序列,并对这部分数据进行一个原始加工,最终通过增量的形式存储到分布式缓存中,供后续的营销或者风控采用。本发明中时间戳序列的构建依托于时间戳字段,在原数据表中的数据过大时,可以通过该时间戳字段进行增量处理;因为中间变量的计算是可增量、可合并计算的,这种数据处理方式具备非常强大的水平扩展能力,。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1