一种数据扫描的方法及装置制造方法

文档序号:6524220阅读:173来源:国知局
一种数据扫描的方法及装置制造方法
【专利摘要】本发明实施例公开了数据扫描的方法及装置,所述方法包括:分析接收到的数据扫描请求中携带的数据扫描条件,确定至少一个用于存储数据的目标数据分区;获取所述目标数据分区的扫描代价,其中,所述扫描代价包括数据扫描的等待时间;根据所述扫描代价,将所述目标数据分区分配给处理资源以执行并行数据扫描,并获取所述处理资源返回的扫描结果。采用本发明,通过收集数据分区的统计信息,获取扫描代价,合理分配目标数据分区的作业组给处理资源,缩短了整个数据扫描的等待时间。
【专利说明】一种数据扫描的方法及装置
【技术领域】
[0001]本发明涉及数据存储与检索【技术领域】,尤其涉及一种数据扫描的方法及装置。
【背景技术】
[0002]在计算机系统中,各种字母、数字符号的组合、语音、图形、图像等统称为数据,随着社交网络、物联网等技术的发展,数据以指数的速率在不断的增长。数据规模的增大对数据的检索也提出了更高的要求。
[0003]根据一定策略将大规模的数据表中的数据划分成多个物理上或逻辑上的小表,存储在不同的存储单元中,每个存储单元就是一个分区,将需要扫描的分区分配给空闲的工作者即处理资源,如CPU、线程、进程和主机等处理资源,由这些工作者完成对应分区的扫描。
[0004]然而,上述检索技术虽然可以找到对应的所需的数据,但当各个分区的数据规模差距较大时,易使一个或多个工作者扫描时间过长,从而导致整个检索过程的等待时间过长。

【发明内容】

[0005]本发明实施例所要解决的技术问题在于,提供一种数据扫描的方法及装置,可使得整个检索扫描过程等待的时间缩短。
[0006]为了解决上述技术问题,本发明第一方面提供了一种数据扫描的方法,包括:
[0007]分析接收到的数据扫描请求中携带的数据扫描条件,确定至少一个用于存储数据的目标数据分区;
[0008]获取所述目标数据分区的扫描代价,其中,所述扫描代价包括数据扫描的等待时间;
[0009]根据所述扫描代价,将所述目标数据分区分配给处理资源以执行并行数据扫描,并获取所述处理资源返回的扫描结果。
[0010]在第一种可能的实现方式中,在所述分析接收到的数据扫描请求中携带的数据扫描条件之前,还包括:
[0011]收集数据分区的统计信息,其中,所述统计信息包括所述数据分区的数据量和存储介质的访问性能;
[0012]根据所述统计信息中所述数据分区的数据量和存储介质的访问性能,获取并配置所述数据分区对应的扫描代价。
[0013]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述收集数据分区的统计信息,包括:
[0014]扫描每个数据分区的所有数据,计算所述数据分区的数据量,或对所述数据分区的数据进行抽样以估算所述数据分区的数据量,或根据所述数据分区上次统计数据量之后该数据分区进行的数据操作估算当前的数据量;[0015]预先配置所述数据分区存储介质访问的性能,或对所述数据分区执行至少一次的数据采样以确定所述数据分区存储介质访问的性能。
[0016]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述收集数据分区的统计信息之前,还包括:
[0017]根据事件触发或定时触发收集数据分区统计信息的操作。
[0018]结合第一方面的实现方式,在第四种可能的实现方式中,所述根据所述扫描代价,将所述目标数据分区分配给处理资源执行并行扫描,包括:
[0019]根据每个目标数据分区的扫描代价,计算合理的目标数据分区作业组使得每组的扫描代价与所有作业组扫描代价的平均值之差在预定的范围内,
[0020]其中,所述作业组包含一个或多个所述目标数据分区的扫描;
[0021]将所述作业组分配给处理资源以执行并行扫描。
[0022]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述根据所述扫描代价,将所述目标数据分区分配给处理资源以执行并行数据扫描,并获取所述处理资源返回的扫描结果之后,还包括:
[0023]将获取的所述处理资源的扫描结果发送给所述数据扫描请求的发起者。
[0024]相应地,本发明第二方面提供了一种数据扫描的装置,包括:
[0025]确定模块,用于分析接收到的数据扫描请求中携带的数据扫描条件,确定至少一个用于存储数据的目标数据分区;
[0026]第一获取模块,用于获取所述目标数据分区的扫描代价,其中,所述扫描代价包括数据扫描的等待时间;
[0027]扫描配置模块,用于根据所述扫描代价,将所述目标数据分区分配给处理资源以执行并行数据扫描,并获取所述处理资源返回的扫描结果。
[0028]在第一种可能的实现方式中,还包括:
[0029]收集模块,用于收集数据分区的统计信息,其中,所述统计信息包括所述数据分区的数据量和存储介质的访问性能;
[0030]第二获取模块,用于根据所述统计信息中所述数据分区的数据量和存储介质的访问性能,获取并配置所述数据分区对应的扫描代价。
[0031]结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述收集模块包括:
[0032]第一统计单元,用于扫描每个数据分区的所有数据,计算所述数据分区的数据量,或对所述数据分区的数据进行抽样以估算所述数据分区的数据量,或根据所述数据分区上次统计数据量之后该数据分区进行的数据操作估算当前的数据量;
[0033]第二统计单元,用于预先配置所述数据分区存储介质访问的性能,或对所述数据分区执行至少一次的数据采样以确定所述数据分区存储介质访问的性能。
[0034]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
[0035]触发模块,用于根据事件触发或定时触发收集模块收集统计信息的操作。
[0036]结合第二方面,在第四种可能的实现方式中,所述扫描配置模块包括:
[0037]计算单元,用于根据每个目标数据分区的扫描代价,计算合理的目标数据分区作业组使得每组的扫描代价与所有作业组扫描代价的平均值之差在预定的范围内,其中,所述作业组包含一个或多个所述目标数据分区的扫描;
[0038]配置单元,用于将所述作业组分配给处理资源以执行并行数据扫描;
[0039]获取单元,用于获取所述处理资源返回的扫描结果。
[0040]结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:
[0041]发送模块,用于将获取的所述处理资源的扫描结果发送给所述数据扫描请求的发起者。
[0042]由上可见,本发明的一些可行的实施方式中,通过确定待扫描的目标数据分区,并根据获取的所述目标数据分区的扫描代价,合理的将所述目标数据分区分配给处理资源来执行并行扫描,从而缩短获取所述处理资源的扫描结果的等待时间。
【专利附图】

【附图说明】
[0043]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044]图1为本发明实施例的一种数据扫描的方法的流程示意图;
[0045]图2为本发明实施例的一种获取数据分区扫描代价方法的流程示意图;
[0046]图3为本发明实施例的另一种数据扫描的方法的流程示意图;
[0047]图4为本发明实施例的一种数据扫描的装置的结构示意图;
[0048]图5为本发明实施例的一种获取数据分区扫描代价装置的结构示意图;
[0049]图6为图5中收集模块的具体结构示意图;
[0050]图7为本发明实施例的另一种数据扫描的装置的结构示意图;
[0051]图8为图7中扫描配置模块的具体结构示意图;
[0052]图9为本发明实施例的一种具体的数据扫描装置的原理示意图;
[0053]图10本发明实施例的一种数据处理设备的结构示意图。
【具体实施方式】
[0054]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0055]图1为本发明实施例的一种数据扫描的方法,本发明实施例所述方法可以应用在手机、电脑、移动设备、服务器等终端中,具体的,所述方法包括:
[0056]S101:分析接收到的数据扫描请求中携带的数据扫描条件,确定至少一个用于存储数据的目标数据分区。
[0057]其中,数据分区是指将一份规模较大的数据按照一定的策略,如时间、内容、格式等分割成多个较小的数据部分,每个数据部分就是一个数据分区。
[0058]当接收到请求者发送的数据扫描请求时,分析所述数据扫描请求中的数据扫描条件,如所需扫描的数据分区,扫描的目标信息,根据所述扫描条件过滤部分不满足条件的数据分组,将所述需扫描的数据分区称为目标数据分区,所述目标数据分区为1-K。
[0059]S102:获取所述目标数据分区的扫描代价。
[0060]其中,所述扫描代价包括数据扫描的等待时间,等待时间越长,扫描代价越高,反之亦然。
[0061]获取所述目标数据分区的扫描代价,可以通过系统预先设置的每个数据分区的扫描代价表中获取,即由本端的数据分区统计信息计算装置,收集各个数据分区的统计信息,所述统计信息主要包括各个数据分区的数据规模(数据规模即分区中数据量的多少),以及各个数据分区所在存储介质的访问性能(单位数据扫描的时间来描述)。所述收集过程可以由需扫描的发起者事件触发或由本端定时触发。所述数据规模可以根据数据分区上的数据或用户对数据分区的历史操作等估算获得,所述访问性能可以根据所述统计信息中数据规模和访问性能估算每个数据分区的扫描代价。
[0062]S103:根据所述扫描代价,将所述目标数据分区分配给处理资源以执行并行数据扫描,并获取所述处理资源返回的扫描结果。
[0063]可选地,根据S102获取的每个目标数据分区的扫描代价以及工作者池中的空闲处理资源(也称为空闲工作者,如CPU、线程、进程、主机等处理资源),首先计算所有目标数据分区所需分配的作业组个数,其中所述作业组包含一个或多个目标数据分区的扫描任务;其次,根据所述作业组个数,计算所述作业组的平均扫描代价;然后,将将所述目标数据分区分配给所述作业组,使得每组的扫描代价与所述平均扫描代价之差在预定的范围内;最后,由本端的扫描结果汇聚装置收集所述扫描结果,并发送给所述数据扫描请求的发起者。
[0064]由上可见,本发明实施例通过获取待扫描的目标数据分区及其扫描代价经过相应的计算处理,将目标数据分区分组后分配给处理资源执行扫描,避免了处理资源任务不平衡导致的总扫描时间过长的问题,即缩短了数据扫描等待时间。
[0065]图2为本发明实施例的一种获取数据分区扫描代价方法的流程示意图,本发明实施例所述的方法可以应用在上述图1对应的实施例中的步骤S101之前执行,本发明实施例的具体方法为:
[0066]S201:根据事件触发或定时触发收集数据分区统计信息的操作。
[0067]其中,所述事件包括鼠标点击事件、键盘事件、操作系统事件、以及应用程序根据软硬件运行状态触发事件等;定时触发包括本端通过设置计时器以有规律的时间间隔执行收集统计信息等操作。
[0068]其中,所述统计信息包括数据分区的数据规模即数据量,以及所述数据分区所在存储介质的访问性能。
[0069]S202:收集数据分区的统计信息。
[0070]在S201触发收集操作之后,由本端收集数据分区的统计信息,具体的收集方式为:
[0071](1)收集所述数据分区的数据规模
[0072]通过扫描每个数据分区的所有数据,计算所述数据分区的数据量;
[0073]或对所述数据分区的数据进行抽样以估算所述数据分区的数据量;
[0074]或根据所述数据分区上次在收集时统计的数据量以来,该数据分区所做的数据操作,如删除、添加等估算当前的数据量。
[0075](2)收集所述数据分区的存储介质的访问性能
[0076]通过预先设置所述数据分区的存储介质的访问性能(单位数据扫描的时间),即人
工配置;
[0077]通过多次访问所述数据分区的扫描时间求平均值来获得存储介质的访问性能。
[0078]S203:根据所述统计信息中所述数据分区的数据量和存储介质的访问性能,获取并配置所述数据分区对应的扫描代价。
[0079]具体的,根据所述数据分区的数据量和存储介质的访问性能,计算所述数据分区对应的扫描代价的方式有多种,例如:
[0080]数据分区扫描代价=数据分区的数据规模X存储介质的访问性能
[0081]根据本发明实施例,下表1举例给出了数据分区1-K与扫描代价之间的对应关系:
[0082]
【权利要求】
1.一种数据扫描的方法,其特征在于,包括:分析接收到的数据扫描请求中携带的数据扫描条件,确定至少一个用于存储数据的目标数据分区;获取所述目标数据分区的扫描代价,其中,所述扫描代价包括数据扫描的等待时间;根据所述扫描代价,将所述目标数据分区分配给处理资源以执行并行数据扫描,并获取所述处理资源返回的扫描结果。
2.如权利要求1所述的方法,其特征在于,所述分析接收到的数据扫描请求中携带的数据扫描条件之前,还包括:收集数据分区的统计信息,其中,所述统计信息包括所述数据分区的数据量和存储介质的访问性能;根据所述统计信息中所述数据分区的数据量和存储介质的访问性能,获取并配置所述数据分区对应的扫描代价。
3.如权利要求2所 述的方法,其特征在于,所述收集数据分区的统计信息,包括:扫描每个数据分区的所有数据,计算所述数据分区的数据量,或对所述数据分区的数据进行抽样以估算所述数据分区的数据量,或根据所述数据分区上次统计数据量之后该数据分区进行的数据操作估算当前的数据量;预先配置所述数据分区存储介质访问的性能,或对所述数据分区执行至少一次的数据采样以确定所述数据分区存储介质访问的性能。
4.如权利要求2所述的方法,其特征在于,所述收集数据分区的统计信息之前,还包括:根据事件触发或定时触发收集数据分区统计信息的操作。
5.如权利要求1所述的方法,其特征在于,根据所述扫描代价,将所述目标数据分区分配给处理资源执行并行扫描,包括:根据每个目标数据分区的扫描代价,计算合理的目标数据分区作业组使得每组的扫描代价与所有作业组扫描代价的平均值之差在预定的范围内,其中,所述作业组包含一个或多个所述目标数据分区的扫描;将所述作业组分配给处理资源以执行并行扫描。
6.如权利要求1或5所述的方法,其特征在于,还包括:将获取的所述处理资源的扫描结果发送给所述数据扫描请求的发起者。
7.一种数据扫描的装置,其特征在于,包括:确定模块,用于分析接收到的数据扫描请求中携带的数据扫描条件,确定至少一个用于存储数据的目标数据分区;第一获取模块,用于获取所述目标数据分区的扫描代价,其中,所述扫描代价包括数据扫描的等待时间;扫描配置模块,用于根据所述扫描代价,将所述目标数据分区分配给处理资源以执行并行数据扫描,并获取所述处理资源返回的扫描结果。
8.如权利要求7所述的装置,其特征在于,还包括:收集模块,用于收集数据分区的统计信息,其中,所述统计信息包括所述数据分区的数据量和存储介质的访问性能;第二获取模块,用于根据所述统计信息中所述数据分区的数据量和存储介质的访问性能,获取并配置所述数据分区对应的扫描代价。
9.如权利要求8所述的装置,其特征在于,所述收集模块包括:第一统计单元,用于扫描每个数据分区的所有数据,计算所述数据分区的数据量,或对所述数据分区的数据进行抽样以估算所述数据分区的数据量,或根据所述数据分区上次统计数据量之后该数据分区进行的数据操作估算当前的数据量;第二统计单元,用于预先配置所述数据分区存储介质访问的性能,或对所述数据分区执行至少一次的数据采样以确定所述数据分区存储介质访问的性能。
10.如权利要求8所述的装置,其特征在于,还包括:触发模块,用于根据事件触发或定时触发收集模块收集统计信息的操作。
11.如权利要求7所述的装置,其特征在于,所述扫描配置模块包括:计算单元,用于根据每个目标数据分区的扫描代价,计算合理的目标数据分区作业组使得每组的扫描代价与所有作业组扫描代价的平均值之差在预定的范围内,其中,所述作业组包含一个或多个所述目标数据分区的扫描;配置单元,用于将所述作业组分配给处理资源以执行并行数据扫描;获取单元,用于获取所述处理资源返回的扫描结果。
12.如权利要求7或11所述的装置,其特征在于,所述根据所述扫描代价,将所述目标数据分区分配给 处理资源以执行并行数据扫描,并获取所述处理资源返回的扫描结果之后,还包括:发送模块,用于将获取的所述处理资源的扫描结果发送给所述数据扫描请求的发起者。
【文档编号】G06F17/30GK103729417SQ201310695039
【公开日】2014年4月16日 申请日期:2013年12月17日 优先权日:2013年12月17日
【发明者】文继军, 许中清 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1