一种基于数据表分区的数据采集方法及系统与流程

文档序号:15686887发布日期:2018-10-16 21:09阅读:153来源:国知局
本发明涉及数据采集
技术领域
,尤其涉及一种基于数据表分区的数据采集方法及系统。
背景技术
:在目前的批量数据采集方式中,采用的均为每个采集作业每天运行时,对数据表中固定的分区进行数据采集。这种方式应用于大部分的表,但是对于数据分布不均匀并且按时间维度来变换存储分区的表,现有的数据采集方式存在着效率低下、耗时较长的弊端。因此,如何提高对数据分布不均且按照时间维度变化的数据表的数据采集效率是亟待解决的的技术问题。技术实现要素:为了解决现有技术中的缺陷,本发明提供了一种基于数据表分区的数据采集方法及系统,在对分区的数据分布不均且按照时间维度变化的数据表进行数据采集时,通过引用了滑动窗及动态调整采集参数表,具有提高资源利用率、采集作业的利用率以及采集效率的有益效果。为了实现上述目的,本发明提供了一种基于数据表分区的数据采集方法,该方法包括:获取待采集的数据表信息及滑动窗;所述数据表信息包括:各分区的编号以及各分区对应的月份;所述滑动窗的长度代表包括当前采集月份在内的月份的个数;根据所述滑动窗及当前采集月份确定有数据的月份及无数据的月份;所述有数据的月份为所述滑动窗之内的月份;所述无数据的月份为所述滑动窗之外的月份;根据各采集作业的编号、各所述分区的编号以及各所述分区对应的月份生成采集参数表;所述采集作业为对数据表中的各分区的数据进行采集的操作;根据所述采集参数表对各所述分区执行对应编号的采集作业。本发明还提供了一种基于数据表分区的数据采集系统,该系统包括:获取单元,用于获取待采集的数据表信息及滑动窗;所述数据表信息包括:各分区的编号以及各分区对应的月份;所述滑动窗的长度代表包括当前采集月份在内的月份的个数;有数据的月份及无数据的月份确定单元,用于根据所述滑动窗及当前采集月份确定有数据的月份及无数据的月份;所述有数据的月份为所述滑动窗之内的月份;所述无数据的月份为所述滑动窗之外的月份;采集参数表生成单元,用于根据各采集作业的编号、各所述分区的编号以及各所述分区对应的月份生成采集参数表;所述采集作业为对数据表中的各分区的数据进行采集的操作;采集作业执行单元,用于根据所述采集参数表对各所述分区执行对应编号的采集作业。本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取待采集的数据表信息及滑动窗;所述数据表信息包括:各分区的编号以及各分区对应的月份;所述滑动窗的长度代表包括当前采集月份在内的月份的个数;根据所述滑动窗及当前采集月份确定有数据的月份及无数据的月份;所述有数据的月份为所述滑动窗之内的月份;所述无数据的月份为所述滑动窗之外的月份;根据各采集作业的编号、各所述分区的编号以及各所述分区对应的月份生成采集参数表;所述采集作业为对数据表中的各分区的数据进行采集的操作;根据所述采集参数表对各所述分区执行对应编号的采集作业。本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取待采集的数据表信息及滑动窗;所述数据表信息包括:各分区的编号以及各分区对应的月份;所述滑动窗的长度代表包括当前采集月份在内的月份的个数;根据所述滑动窗及当前采集月份确定有数据的月份及无数据的月份;所述有数据的月份为所述滑动窗之内的月份;所述无数据的月份为所述滑动窗之外的月份;根据各采集作业的编号、各所述分区的编号以及各所述分区对应的月份生成采集参数表;所述采集作业为对数据表中的各分区的数据进行采集的操作;根据所述采集参数表对各所述分区执行对应编号的采集作业。本发明提供了一种基于数据表分区的数据采集方法及系统,包括:获取待采集的数据表信息及滑动窗;所述数据表信息包括:各分区的编号以及各分区对应的月份;所述滑动窗的长度代表包括当前采集月份在内的月份的个数;根据所述滑动窗及当前采集月份确定有数据的月份及无数据的月份;所述有数据的月份为所述滑动窗之内的月份;所述无数据的月份为所述滑动窗之外的月份;根据各采集作业的编号、各所述分区的编号以及各所述分区对应的月份生成采集参数表;所述采集作业为对数据表中的各分区的数据进行采集的操作;根据所述采集参数表对各所述分区执行对应编号的采集作业。本发明具有提高资源利用率、采集作业的利用率以及采集效率的有益效果。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明提供的一种基于数据表分区的数据采集方法流程图;图2是本发明一实施例中的基于数据表分区的数据采集方法流程图;图3是本发明一实施例中的一种有数据的月份及无数据的月份与分区的对应结构图;图4是本发明一实施例中的另一种有数据的月份及无数据的月份与分区的对应结构图;图5是是本发明提供的一种基于数据表分区的数据采集系统的结构示意图;图6是本发明一实施例中的采集参数表生成单元103的结构示意图;图7是本发明一实施例中的采集作业执行单元104的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。关于本文中所使用的“第一”、“第二”、……等,并非特别指称次序或顺位的意思,亦非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。关于本文中所使用的“电性耦接”,可指二或多个元件相互直接作实体或电性接触,或是相互间接作实体或电性接触,而“电性耦接”还可指两个或多个元件相互操作或动作。关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。关于本文中所使用的方向用语,例如:上、下、左、右、前或后等,仅是参考附加图式的方向。因此,使用的方向用语是用来说明并非用来限制本案。针对现有技术中存在的缺陷,本发明提供了一种方法,其流程图如图1所示,该方法包括:为了解决现有技术中的缺陷,本发明提供了一种基于数据表分区的数据采集方法及系统,本发明通过为有数据的分区分配较多的采集作业,为无数据部分分配较少的采集作业,具有提高资源利用率、采集作业的利用率以及数据的采集效率的有益效果。为了实现上述目的,本发明提供的基于数据表分区的数据采集方法,其流程图如图1所示,该方法包括:s101:获取待采集的数据表信息及滑动窗;数据表信息包括:各分区的编号以及各分区对应的月份;滑动窗的长度代表包括当前采集月份在内的月份的个数。s102:根据滑动窗及当前采集月份确定有数据的月份及无数据的月份;有数据的月份为滑动窗之内的月份;无数据的月份为滑动窗之外的月份。s103:根据各采集作业的编号、各分区的编号以及各分区对应的月份生成采集参数表;采集作业为对数据表中的各分区的数据进行采集的操作。s104:根据采集参数表对各分区执行对应编号的采集作业。由图1的流程图可知,本发明首先根据获取待采集的数据表信息及滑动窗,然后根据滑动窗及当前采集月份确定有数据的月份及无数据的月份,再根据各采集作业的编号、各分区的编号以及各分区对应的月份生成采集参数表,最后根据采集参数表对各分区执行对应编号的采集作业。本发明具有提高资源利用率、采集作业的利用率以及数据的采集效率的有益效果。为了使本领域的技术人员更好的了解本发明,下面列举一个更为详细的实施例,如图2所示,本发明实施例提供了一种基于数据表分区的数据采集方法,该方法包括:s201:获取待采集的数据表信息及滑动窗。其中,数据表信息包括:各分区的编号以及各分区对应的月份等信息,滑动窗的长度代表包括当前采集月份在内的月份的个数。滑动窗随着当前采集月份的变化而变化,当前采集月份为滑动窗中的最后一个月份。具体实施时,如图3所示,以数据表jnal为例,jnal为按月分区的数据表(即按照时间维度的存储数据的分区),每个月包含200个分区,12个月共计包括2400个分区,各分区的编号为1,2,3,……,2400,滑动窗1随着选择的当前采集月份而滑动,滑动窗的长度代表包括当前采集月份在内的月份的个数,假设滑动窗的长度为5。采集月份包括年份及月份信息,例如当前采集月份为2017年8月,当前采集月份2017年8月为滑动窗1中的最后一个月份。本实施例中通过滑动窗删除过期数据,使本发明具有提高资源利用率、数据表的存储率的有益效果。s202:根据滑动窗及当前采集月份确定有数据的月份及无数据的月份;有数据的月份为滑动窗之内的月份;无数据的月份为滑动窗之外的月份。其中,有数据的月份的个数与无数据的月份的个数之和为12,本发明不以此为限。当有数据的月份为同年内的连续月份时,对应的无数据的月份为同年内滑动窗之外的各月份。如图3所示,设定当前采集月份为2017年8月,滑动窗1的长度为5,则有数据的月份为包括2017年8月在内的5个月之内的各月份,即有数据的月份为2017年4月、2017年5月、2017年6月、2017年7月及2017年8月。由于有数据的月份个数与无数据的月份个数之和为12个月,因此无数据的月份的个数为12-5=7个月,且为当前采集月份对应的年份2017年的月份,因此将2017年中有数据的月份(2017年4月、2017年5月、2017年6月、2017年7月及2017年8月)之外的剩余不连续7个月份(2017年1月、2017年2月、2017年3月、2017年9月、2017年10月、2017年11月及2017年12月)作为对应的无数据的月份,对应的无数据的月份为:2017年1月、2017年2月、2017年3月、2017年9月、2017年10月、2017年11月及2017年12月,共计为2017年中的7个不连续月份,其中2017年1月、2017年2月、2017年3月连续位于有效数的月份之前,2017年9月、2017年10月、2017年11月及2017年12月连续位于有效数的月份之后。当有数据的月份为跨年的连续月份时,对应的无数据的月份为滑动窗之前的指定个数的连续月份。如图4所示,设定当前采集月份为2018年3月,滑动窗1的长度为5,则有数据的月份为包括2018年3月在内的5个月之内的各月份,则有数据的月份为:2018年3月、2018年2月、2018年1月、2017年12月及2017年11月,可见有数据的月份为当前采集月份2018年3月对应的2018年份及2018年3月对应的前一年2017年内的跨年连续的5个月份。由于有数据的月份个数与无数据的月份个数之和为12个月,因此无数据的月份的个数为12-5=7个月,则对应的无数据的月份为滑动窗1之前的7个数的连续月份,对应的无数据的月份为:2017年4月、2017年5月、2017年6月、2017年7月、2017年8月、2017年9月、2017年10月,共计7个2017年的连续月份。s203:将任选的两个采集作业的编号分配到无数据的月份对应的分区。具体实施时,为了保证各分区的数据的完整性,从总数为n的采集作业中,任选2个采集作业的编号分配到无数据的月份对应的分区。以数据表jnal为例,jnal为按月分区的数据表(即按照时间维度的存储数据的分区),则m=2400,设定n=80,则80个采集作业的编号为01,02,03,……,79,80。其中,将采集作业的编号79和80分配到无数据的月份对应的分区。其中,如图3所示,当无数据的月份分布于有数据的月份的两侧时,将两个采集作业的编号中的一个编号分配到一侧无数据的月份对应的分区,另一个编号分配到另一侧无数据的月份对应的分区。将采集作业的编号79分配到2017年1月、2017年2月、2017年3月对应的各分区,将采集作业的编号80分配到2017年9月、2017年10月、2017年11月、2017年12月对应的各分区,本发明不以此为限。s204:将除了两个采集作业的编号之外的采集作业的编号全部分配到有数据的月份对应的分区。具体实施时,将全部n个采集作业中剩余的n-2个采集作业的编号分配到有数据的月份对应的各分区。将采集作业的编号为01,02,03,……,77,78全部分配到有数据的月份对应的分区。其中,如图4所示,当有数据的月份为跨年的连续月份时,将除了两个采集作业的编号之外的一部分采集作业的编号分配到一年份内的有数据的月份对应的分区,另一部分采集作业的编号分配到另一年份内有数据的月份对应的分区。将采集作业的编号01~采集作业的编号16分配到2017年11月份对应的各分区,采集作业的编号17~采集作业的编号32分配到2017年12月份对应的各分区本发明不以此为限,采集作业的编号33~采集作业的编号47分配到2018年1月份对应的各分区,采集作业的编号48~采集作业的编号63分配到2018年2月份对应的各分区,采集作业的编号64~采集作业的编号78分配到2018年3月份对应的各分区。s205:根据各采集作业的编号、各分区的编号以及各采集作业的编号对应的无数据的月份及有数据的月份,生成采集参数表。具体实施时,设定当前采集月份为2017年8月,有数据的月份为2017年4月、2017年5月、2017年6月、2017年7月及2017年8月,2017年1月、2017年2月、2017年3月、2017年9月、2017年10月、2017年11月及2017年12月,根据80个采集作业的编号、2400个分区的编号及各采集作业的编号对应的无数据的月份及有数据的月份,生成采集参数表,如表1所示,本发明不以此为限。表1采集月份分区的编号采集作业的编号2017年1月1~200792017年2月201~400792017年3月401~600792017年4月601~61501~162017年5月801~100017~322017年6月1001~120033~482017年7月1201~140049~642017年8月1401~160065~782017年9月1601~1800802017年10月1801~2000802017年11月2001~2200802017年12月2201~240080设定当前采集月份为2018年3月时,有数据的月份为2018年3月、2018年2月、2018年1月、2017年12月及2017年11月,无数据的月份为2017年10月、2017年9月、2017年8月、2017年7月、2017年6月、2017年5月、2017年4月,根据80个采集作业的编号、2400个分区的编号及各采集作业的编号对应的无数据的月份及有数据的月份,生成采集参数表,如表2所示,本发明不以此为限。表2采集月份分区的编号采集作业的编号2017年4月601~800792017年5月801~1000792017年6月1001~1200792017年7月1201~1400802017年8月1401~1600802017年9月1601~1800802017年10月1801~2000802017年11月2001~220001~162017年12月2201~240017~322018年1月01~20033~482018年2月201~40049~642018年3月401~60065~78本实施例中通过根据各采集作业的编号、各分区的编号以及各采集作业的编号对应的无数据的月份及有数据的月份动态生成采集参数表,使本发明具有动态更新采集参数表的有益效果。s206:根据采集参数表,获取各采集作业的编号对应的分区。具体实施时,如表1所示,以采集作业01~16为例,根据采集作业的编号01~16,获得对应的待采集的数据表的各分区,各分区为分区601、分区602、分区603、……、分区800,共计200个分区,以采集作业79为例,根据采集作业的编号79获取对应的各分区,各分区的编号为分区1、分区2、分区3、……、分区200、分区201、分区202、……、分区400、分区401、……、分区600,共计3各月份的600个分区。s207:根据分区对应的采集作业的编号对各分区并行执行数据采集。具体实施时,由于每个月份对应200个分区,由16个采集作业并行进行采集操作。在本实施例中各采集作业的编号与各分区的编号之间的对应关系如表3所示,本发明不以此为限。将78个采集作业分为5组,每组采集作业对应一个有数据的月份。由于每个月份设有200个分区。因此由该月份对应的16个并行度的采集作业对该月份的200个分区执行数据采集操作,其中,每个采集作业对至多15个分区执行数据采集操作,各采集作业根据表3所示的对应关系,并行执行对各分区的采集操作,本发明不以此为限。表3本实施例具有提高资源利用率、采集作业的利用率以及各分区数据的采集效率的有益效果。基于与上述基于数据表分区的数据采集方法相同的申请构思,本发明还提供了一种基于数据表分区的数据采集系统,如下面实施例所述。由于该基于数据表分区的数据采集系统解决问题的原理与基于数据表分区的数据采集方法相似,因此该基于数据表分区的数据采集系统的实施可以参见基于数据表分区的数据采集方法的实施,重复之处不再赘述。图5为本发明提供的基于数据表分区的数据采集系统的结构示意图,如图5所示,该基于数据表分区的数据采集系统包括:获取单元101、有数据及无数据月份确定单元102、采集参数表生成单元103及采集作业执行单元104。获取单元101,用于获取待采集的数据表信息及滑动窗;数据表信息包括:各分区的编号以及各分区对应的月份;滑动窗的长度代表包括当前采集月份在内的月份的个数。有数据及无数据月份确定单元102,用于根据滑动窗及当前采集月份确定有数据的月份及无数据的月份;有数据的月份为滑动窗之内的月份;无数据的月份为滑动窗之外的月份。采集参数表生成单元103,用于根据各采集作业的编号、各分区的编号以及各分区对应的月份生成采集参数表;采集作业为对数据表中的各分区的数据进行采集的操作。采集作业执行单元104,用于根据采集参数表对各分区执行对应编号的采集作业。在一个实施例中,如图6所示,采集参数表生成单元103包括:第一分配模块201、第二分配模块202及采集参数表生成模块203。第一分配模块201,用于将任选的两个采集作业的编号分配到无数据的月份对应的分区;第二分配模块202,用于将除了两个采集作业的编号之外的采集作业的编号全部分配到有数据的月份对应的分区;采集参数表生成模块203,用于根据各采集作业的编号、各分区的编号以及各采集作业的编号对应的无数据的月份及有数据的月份,生成采集参数表。在一个实施例中,第一分配模块201具体用于:当无数据的月份分布于有数据的月份的两侧时,将两个采集作业的编号中的一个编号分配到一侧无数据的月份对应的分区,另一个编号分配到另一侧无数据的月份对应的分区。在一个实施例中,第二分配模块202具体用于:当有数据的月份为跨年的连续月份时,将除了两个采集作业的编号之外的一部分采集作业的编号分配到一年份内的有数据的月份对应的分区,另一部分采集作业的编号分配到另一年份内有数据的月份对应的分区。在一个实施例中,如图7所示,采集作业执行单元104包括:分区获取模块301及采集作业执行模块302。分区获取模块301,用于根据采集参数表,获取各采集作业的编号对应的分区;采集作业执行模块302,用于根据分区对应的采集作业的编号对各分区并行执行数据采集。本发明提供的基于数据表分区的数据采集方法及系统,包括:获取待采集的数据表信息及滑动窗;数据表信息包括:各分区的编号以及各分区对应的月份;滑动窗的长度代表包括当前采集月份在内的月份的个数;根据滑动窗及当前采集月份确定有数据的月份及无数据的月份;有数据的月份为滑动窗之内的月份;无数据的月份为滑动窗之外的月份;根据各采集作业的编号、各分区的编号以及各分区对应的月份生成采集参数表;采集作业为对数据表中的各分区的数据进行采集的操作;根据采集参数表对各分区执行对应编号的采集作业。本发明具有提高资源利用率、各采集作业的利用率以及各分区数据的采集效率的有益效果。基于与上述基于数据表分区的数据采集方法相同的申请构思,本申请提供一种计算机设备,如下面实施例所述。由于该计算机设备解决问题的原理与基于数据表分区的数据采集方法相似,因此该计算机设备的实施可以参见基于数据表分区的数据采集方法的实施,重复之处不再赘述。在一个实施例中,计算机设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,如图1所示,所述处理器执行所述计算机程序时实现以下步骤:s101:获取待采集的数据表信息及滑动窗;数据表信息包括:各分区的编号以及各分区对应的月份;滑动窗的长度代表包括当前采集月份在内的月份的个数。s102:根据滑动窗及当前采集月份确定有数据的月份及无数据的月份;有数据的月份为滑动窗之内的月份;无数据的月份为滑动窗之外的月份。s103:根据各采集作业的编号、各分区的编号以及各分区对应的月份生成采集参数表;采集作业为对数据表中的各分区的数据进行采集的操作。s104:根据采集参数表对各分区执行对应编号的采集作业。基于与上述基于数据表分区的数据采集方法相同的申请构思,本申请提供一种计算机可读存储介质,如下面实施例所述。由于该计算机可读存储介质解决问题的原理与基于数据表分区的数据采集方法相似,因此该计算机可读存储介质的实施可以参见基于数据表分区的数据采集方法的实施,重复之处不再赘述。在一个实施例中,计算机可读存储介质上存储有计算机程序,如图1所示,该计算机程序被处理器执行时实现以下步骤:s101:获取待采集的数据表信息及滑动窗;数据表信息包括:各分区的编号以及各分区对应的月份;滑动窗的长度代表包括当前采集月份在内的月份的个数。s102:根据滑动窗及当前采集月份确定有数据的月份及无数据的月份;有数据的月份为滑动窗之内的月份;无数据的月份为滑动窗之外的月份。s103:根据各采集作业的编号、各分区的编号以及各分区对应的月份生成采集参数表;采集作业为对数据表中的各分区的数据进行采集的操作。s104:根据采集参数表对各分区执行对应编号的采集作业。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1