一种增量式数据处理的方法和装置的制造方法

文档序号:9750988阅读:504来源:国知局
一种增量式数据处理的方法和装置的制造方法【
技术领域
】[0001]本发明涉及计算机
技术领域
,特别地涉及一种增量式数据处理的方法和装置。【
背景技术
】[0002]随着互联网及电商的快速发展、业务形式的多样化以及人们对互联网依赖程度的增加,企业数据仓库所承载的数据量呈现爆发式的增长,海量数据的存储与加工也对集群资源带来了非常大的挑战。另外,某个业务流程,可能经查出现各种"意外",导致某个环节重新进行或者长时间锁定,需要跨天甚至跨多天才能完成。但是有些事实表往往不需要保留流程细节,尤其不需要保留错误的细节,只需要保留某个业务单号最终的现象。因此,高效地针对跨业务线、跨多天、常反复进行的业务进行加工和存储,不仅能够极大地节省集群资源,也能使后续业务系统更清晰地了解数据的组织结构以及使用方法。[0003]以仓储系统中订单在库房的生产过程为例,用户下单,订单下传到库房,会经历仓库管理系统WMS(WarehouseManagementSystem的缩写)接收一定位一分配一打印一拣货一复核一打包一派工等一系列流程,每一个流程都有可能而且很容易出现问题,导致整个流程或个别流程需要重新进行。甚至由于断电、机器故障、网络、以及订单取消、锁定等原因,某些订单甚至需要几个月的时间才能生产完毕,为了保证事实表中数据的正确性与完整性,现在的方法为每天全量加工所有订单在库房的生产过程。所谓全量加工,指的是对所有的历史数据进行加工。[0004]以仓储系统的订单生产事实表T-Tab(Target_table的简称)为例进行说明。T-Tab以时间日期dt为分区,订单生产表涉及的底层拉链表(用于记录一个事物从开始一直到当前状态的所有变化信息的表)有出货单表(Tab1),订单预分拣表(Tab2),订单取消表(TabN)等N个表。Tab1、Tab2、…、TabN等N个表均为拉链表,创建时间(createdate)即是业务时间。同一订单,从下传到WMS,到派工,可能跨越不同的日期,即跨天,甚至由于订单锁定、取消等原因,会跨越多天,因此,无法进行准确的增量加工,即:按照一定的条件为标准,只加工符合该条件的数据,不符合该条件的数据不进行加工。目前的方案就是每天全量加工N个表中的所有数据,放入目标表的dt分区。[0005]即:该事实表每天的加工过程如下,假设数据是在2015-09-21号进行加工,数据的加工过程如图1所示。T-Tab以dt为数据分区,其存储方式如下面的表1所示。[0006]表1现有技术中数据的存储方式[0007]~按照如表1所示的存储方式进行全量加工后数据的存储,在后续使用这些数据时/只需要取最新的分区,再找到所需要的业务时间(即:创建时间),就可得到想要的结果。[0009]然而,在使用过程中发现,现有的数据全量加工的处理方式存在很多缺陷,主要如下:[0010]1、加工效率低:因无法控制订单生产过程中可能经历的各种"意外"以及无法把控流程完成所需时间,无法进行每天增量加工。只能进行每天全量加工,虽然能够保证数据的准确性,但是对于已经完成生产的订单来说,属于重复加工,极大地降低了数据加工的效率;[0011]2、存储资源浪费:每天全量加工,伴随着的就是每天全量存储,即任何一天的分区中,都保存该日期之前的所有当前数据,对于一些已经完成库房生产的订单,造成了重复存储情况,浪费了集群资源;[0012]3、使用效率低下:对于事实表的使用,由于数据是全量存储,即使只取一天的数据也需要在全部库房订单中扫描,大大降低了使用效率。【
发明内容】[0013]有鉴于此,本发明提供一种增量式数据处理的方法和装置,能够在保证数据完整及准确的前提下,提高业务数据的加工效率,降低存储空间,提高使用效率,进而极大地节省了集群资源。[0014]为实现上述目的,根据本发明的一个方面,提供了一种增量式数据处理的方法。[0015]一种增量式数据处理的方法,用于对业务数据进行处理,每个业务具有预定的完成期限且每个业务的数据集包括一个或多个数据元素,每个数据元素设有创建日期,所述方法包括:获得该业务的完成期限M,M是正整数,表示完成该业务的单位时间数目;读取该业务对应的业务数据集中创建日期为最近前M+N个单位时间的所有数据元素,并按照预定的业务逻辑加工所述数据元素,其中,N为正数;当所读取的数据元素的创建时间中最早的创建时间是第前M+N个单位时间时,则建立当前时间单位的增量数据分区并且把加工后的数据元素插入到该增量数据分区。[0016]可选地,还包括:当所读取的数据元素的创建时间中最早的创建时间不是第前M+N个单位时间时,把加工后的数据元素插入到预设的暂存数据分区。[0017]可选地,所述单位时间是日,且N=l。[0018]可选地,利用当前日期前一日的日期表示来作为所述增量数据分区的标识。[0019]可选地,所述日期表示的形式为yyyy-mm-dd。[0020]可选地,所述数据元素是关系数据库的表,所述业务数据集是表的集合。[0021]根据本发明的另一方面,提供了一种增量式数据处理的装置。[0022]一种增量式数据处理的装置,用于对业务数据进行处理,每个业务具有预定的完成期限且每个业务的数据集包括一个或多个数据元素,每个数据元素设有创建日期,所述装置包括:业务期限获取模块,用于获得该业务的完成期限M,M是正整数,表示完成该业务的单位时间数目;数据加工模块,用于读取该业务对应的业务数据集中创建日期为最近前Μ+Ν个单位时间的所有数据元素,并按照预定的业务逻辑加工所述数据元素,其中,Ν为正数;数据存储模块,用于当所读取的数据元素的创建时间中最早的创建时间是第前Μ+Ν个单位时间时,则建立当前时间单位的增量数据分区并且把加工后的数据元素插入到该增量数据分区。[0023]可选地,所述数据存储模块还用于:当所读取的数据元素的创建时间中最早的创建时间不是第前M+N个单位时间时,把加工后的数据元素插入到预设的暂存数据分区。[0024]可选地,所述单位时间是日,且N=l。[0025]可选地,利用当前日期前一日的日期表示来作为所述增量数据分区的标识。[0026]可选地,所述日期表示的形式为yyyy-mm-dd。[0027]可选地,所述数据元素是关系数据库的表,所述业务数据集是表的集合。[0028]根据本发明的技术方案,通过确定业务数据集涉及的数据元素处理完成所需要的最长时间,可以确定数据分区存储的数据范围;并根据各个数据元素的创建时间(即:业务时间)获取固定时间区间的数据进行处理及归档,从而实现了部分数据增量加工和存储。采用本发明的技术方案,无需每天全量加工所有历史数据,仅进行合理的增量加工,每天归档不再变化的数据,提高了加工效率;暂存数据分区dt='4712-12-31'存储了可能会发生变化的数据,其他数据分区分别存储部分不再变化数据,且相互之间不重不漏,节省了存储空间;使用该业务的数据表时,只需要了解该表的存储结构,就能够根当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1