首页 / 专利库 / 软件 / 数据处理 / 一种数据处理方法及装置

一种数据处理方法及装置

阅读:1039发布:2020-07-07

专利汇可以提供一种数据处理方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供的一种 数据处理 方法及装置,应用于分布式 数据处理系统 中的客户端,方法包括:接收针对待处理数据的数据处理指令,确定有效数据 片段 ;获得有效数据片段的数据分布信息;将每个有效数据片段的数据范围划分成至少一个子数据范围;生成针对每个有效数据片段的数据处理任务;向任务调度器发送数据处理 请求 ,以使得任务调度器确定执行每一数据处理任务的数据处理 服务器 并向其发送其要处理的数据处理任务以及接收针对所分配的子数据范围进行数据处理的处理结果;接收任务调度器反馈的针对待处理数据的处理结果。应用本发明实施例,提高了分布式数据处理系统中数据处理服务器的并行处理速度,提高了分布式数据处理系统的整体处理性能。,下面是一种数据处理方法及装置专利的具体信息内容。

1.一种数据处理方法,其特征在于,应用于分布式数据处理系统中的客户端;其中,所述分布式数据处理系统包括:客户端、任务调度器、多个数据处理服务器和多个存储服务器;所述存储服务器中存储有多个数据片段,各个数据片段中存储有多条数据记录,所述方法包括:
接收针对待处理数据的数据处理指令;
根据所述数据处理指令,确定有效数据片段;其中,所述有效数据片段为针对所述待处理数据的数据片段;
获得所述有效数据片段中已存储的数据记录的数据分布信息;其中,所述数据分布信息为:按照预设的统计规则对每个数据片段中的数据记录的数量进行统计得到的信息;
根据所获得的数据分布信息,将每个有效数据片段的数据范围划分成至少一个子数据范围;
按照划分得到的各个子数据范围,生成针对每个有效数据片段的数据处理任务;其中,一个数据处理任务对应一个有效数据片段的一个子数据范围;
向所述任务调度器发送针对所述数据处理任务的数据处理请求,以使得所述任务调度器根据所述数据处理请求确定执行每一数据处理任务的数据处理服务器,其中,所述任务调度器确定数据处理服务器后,向所确定的数据处理服务器发送其要处理的数据处理任务,并接收所确定的各个数据处理服务器针对所分配的子数据范围进行数据处理的处理结果;
接收所述任务调度器反馈的针对待处理数据的处理结果。
2.根据权利要求1所述的方法,其特征在于,所述存储服务器根据以下步骤统计得到所述各个数据片段中任一数据片段Ri中已存储的数据记录的数据分布信息:
所述存储服务器将所述数据片段Ri内的各条数据记录按照预设的标识值排序;
按照排序后所述数据片段Ri中的数据记录的排列顺序,将排序后的所述数据片段Ri划分成至少一个数据区间;
统计划分得到的各个数据区间内的数据记录的数量;
根据统计得到的数量获得所述数据片段Ri内数据记录的数据分布信息。
3.根据权利要求2所述的方法,其特征在于,所述根据统计得到的数量获得所述数据片段Ri内数据记录的数据分布信息,包括:
计算所述数据片段Ri的数据记录的数量的方差;
判断所述方差是否大于预设的数据片段方差阈值
如果是,判断是否满足以下表达式:Num≥Th1,或,Num≤Th2,如果满足则统计所述数据片段Ri划分得到的各个数据区间内的数据记录的数量,并按照统计后的数量更新所述数据分布信息;其中,Num表示数据片段Ri划分得到的各个数据区间内的数据记录的数量,Th1表示预设的第一数量阈值,Th2表示预设的第二数量阈值,且Th1≥Th2;
如果否,则保持当前的数据分布信息。
4.根据权利要求2所述的方法,其特征在于,所述根据统计得到的数量获得所述数据片段Ri内数据记录的数据分布信息,包括:
判断所述数据片段Ri的数据记录的数量是否满足预设的数据区间调整条件;
若满足,按照预设的区间调整规则对所述数据片段Ri中各个数据区间进行调整,并根据调整后各个数据区间内的数据记录的数量,获得所述数据片段Ri内数据记录的数据分布信息;
其中,所述预设的区间调整规则,包括:
获得统计得到的所述数据片段Ri中数据记录的数量大于预设的第一数量阈值Th3的数据区间;
按照预设的数据区间拆分规则,将数据记录的数量大于Th3的数据区间分别拆分为多个子数据区间。
5.根据权利要求4所述的方法,其特征在于,所述预设的区间调整规则,还包括:
获得统计得到的所述数据片段Ri中数据记录的数量小于预设的第二数量阈值Th2的数据区间;
按照预设的数据区间合并规则,对数据记录的数量小于Th2的数据区间进行合并处理。
6.根据权利要求4-5中任一项所述的方法,其特征在于,所述存储服务器判断所述数据片段Ri的数据记录的数量是否满足预设的数据区间处理条件,包括:
计算统计得到的各个数据区间内的数据记录的数量的方差;
判断计算得到的方差是否大于预设的方差阈值;
在判断结果为大于时,判定统计得到的各个数据区间的数据记录的数量满足预设的数据区间处理条件。
7.根据权利要求1所述的方法,其特征在于,在所述客户端中已存储所述各个数据片段中已存储的数据记录的数据分布信息的情况下,所述方法还包括:
接收所述存储服务器发送的数据更新通知;
根据所述数据更新通知,更新本地已存储的数据分布信息。
8.一种数据处理装置,其特征在于,应用于分布式数据处理系统中的客户端;其中,所述分布式数据处理系统包括:客户端、任务调度器、多个数据处理服务器和多个存储服务器;所述存储服务器中存储有多个数据片段,各个数据片段中存储有多条数据记录,所述装置包括:
处理指令接收模,用于接收针对待处理数据的数据处理指令;
有效数据确定模块,用于根据所述数据处理指令,确定有效数据片段;其中,所述有效数据片段为针对所述待处理数据的数据片段;
分布信息获得模块,用于获得所述有效数据片段中已存储的数据记录的数据分布信息;其中,所述数据分布信息为:按照预设的统计规则对每个数据片段中的数据记录的数量进行统计得到的信息;
数据范围划分模块,用于根据所获得的数据分布信息,将每个有效数据片段的数据范围划分成至少一个子数据范围;
任务生成模块,用于按照划分得到的各个子数据范围,生成针对每个有效数据片段的数据处理任务;其中,一个数据处理任务对应一个有效数据片段的一个子数据范围;
处理请求发送模块,用于向所述任务调度器发送针对所述数据处理任务的数据处理请求,以使得所述任务调度器根据所述数据处理请求确定执行每一数据处理任务的数据处理服务器,其中,所述任务调度器确定数据处理服务器后,向所确定的数据处理服务器发送其要处理的数据处理任务,并接收所确定的各个数据处理服务器针对所分配的子数据范围进行数据处理的处理结果;
处理结果接收模块,用于接收所述任务调度器反馈的针对待处理数据的处理结果。
9.根据权利要求8所述的装置,其特征在于,所述存储服务器,包括:数据排序子模块、区间 划分子模块、数据统计子模块和分布信息获得子模块;其中,
所述数据排序子模块,用于所述存储服务器将所述数据片段Ri内的各条数据记录按照预设的标识值排序;
所述区间划分子模块,用于按照排序后所述数据片段Ri中的数据记录的排列顺序,将排序后的所述数据片段Ri划分成至少一个数据区间;
所述数据统计子模块,用于统计划分得到的各个数据区间内的数据记录的数量;
所述分布信息获得子模块,用于根据统计得到的数量获得所述数据片段Ri内数据记录的数据分布信息。
10.根据权利要求9所述的装置,其特征在于,所述分布信息获得子模块,包括:片段方差计算单元、方差判断单元、第一信息统计单元和第二信息统计单元;其中,所述片段方差计算单元,用于计算所述数据片段Ri的数据记录的数量的方差;
所述片段方差判断单元,用于判断所述方差是否大于预设的数据片段方差阈值;
所述第一信息统计单元,用于在所述方差判断单元的判断结果为是时,判断是否满足以下表达式:Num≥Th1,或,Num≤Th2,如果满足则统计所述数据片段Ri划分得到的各个数据区间内的数据记录的数量,并按照统计后的数量更新所述数据分布信息;其中,Num表示数据片段Ri划分得到的各个数据区间内的数据记录的数量,Th1表示预设的第一数量阈值,Th2表示预设的第二数量阈值,且Th1≥Th2;
所述第二信息统计单元,用于在所述方差判断单元的判断结果为是时,则保持当前的数据分布信息。
11.根据权利要求9所述的装置,其特征在于,所述分布信息获得子模块,包括:调整条件判断单元和第一区间调整单元;其中,
所述调整条件判断单元,用于判断所述数据片段Ri的数据记录的数量是否满足预设的数据区间调整条件;
所述第一区间调整单元,用于在所述调整条件判断单元的判断结果为满足时,按照预设的区间调整规则对所述数据片段Ri中各个数据区间进行调整,并根据调整后各个数据区间内的数据记录的数量,获得所述数据片段Ri内数据记录的数据分布信息;
其中,所述预设的区间调整规则,包括:
获得统计得到的所述数据片段Ri中数据记录的数量大于预设的第一数量阈值Th3的数据区间;
按照预设的数据区间拆分规则,将数据记录的数量大于Th3的数据区间分别拆分为多个子数据区间。
12.根据权利要求11所述的装置,其特征在于,所述预设的区间调整规则,还包括:
获得统计得到的所述数据片段Ri中数据记录的数量小于预设的第二数量阈值Th2的数据区间;
按照预设的数据区间合并规则,对数据记录的数量小于Th2的数据区间进行合并处理。
13.根据权利要求11-12中任一项所述的装置,其特征在于,所述调整条件判断单元,包括:区间方差计算子单元、方差判断子单元和处理条件判定子单元;其中,区间方差计算子单元,用于计算统计得到的各个数据区间内的数据记录的数量的方差;
区间方差判断子单元,用于判断计算得到的方差是否大于预设的方差阈值;
处理条件判定子单元,用于在所述区间方差判断子单元的判断结果为大于时,判定统计得到的各个数据区间的数据记录的数量满足预设的数据区间处理条件。
14.根据权利要求8所述的装置,其特征在于,所述装置还包括:
数据更新通知接收模块,用于在所述客户端中已存储所述各个数据片段中已存储的数据记录的数据分布信息的情况下,接收所述存储服务器发送的数据更新通知;
数据分布信息更新模块,用于根据所述数据更新通知,更新本地已存储的数据分布信息。

说明书全文

一种数据处理方法及装置

技术领域

[0001] 本发明涉及分布式计算技术领域,特别是涉及一种数据处理方法及装置。

背景技术

[0002] 在信息爆炸的时代中,用户可获得的数据量呈指数增长的趋势。当对数据库系统中已存储的数据记录进行处理时所需要的计算资源也随之增大,这对数据库系统中的数据处理服务器的计算性能提出了更高的要求。在基于传统的集中式数据库的数据库系统(简称为集中式数据库系统)中,数据处理服务器通常是由单台计算机构成的,随着数据量的迅猛增长,单台计算机的性能有限,通过提高单台计算机计算能的方式已经很难满足用户的数据处理需要。
[0003] 现有技术中提供了这样一种数据处理方法,该方法应用于基于存储服务器的数据库系统(简称为分布式数据处理系统),该分布式数据处理系统包括存储服务器、一个管理服务器和多个数据处理服务器,该数据库被划分为多个数据片段,各个数据片段中存储有多条数据记录,进行数据处理时,首先,管理服务器获得针对待处理数据的数据处理指令,根据该系统中数据片段的数量将已存储的数据记录划分成多个数据处理任务,然后将划分得到的各个数据处理任务均匀地分发给各个数据处理服务器,各个数据处理服务器在接收到相应的数据处理任务后对数据处理任务包含的数据记录进行数据处理并将处理结果反馈至管理服务器,完成数据处理。
[0004] 相比集中式数据库系统而言,分布式数据处理系统减少了单台计算机需要处理的数据量,因此降低了对单台计算机的计算性能的要求。但是,由于划分数据处理任务时是根据数据片段的数量划分的,而每一数据片段内所包含的数据记录的数量不一定相等,所以,划分得到的各个数据处理任务中包括的数据记录的数量不一定相同,可见根据数据片段的数量划分数据处理任务并向处理服务器分配数据处理任务时,易造成各个数据处理服务器所要执行任务的任务量不均衡,例如,对于具有相同的计算性能的数据处理服务器而言,有的数据处理服务器的任务量很大,而有的数据处理服务器的任务量甚至几乎为零,显然,各个数据处理服务器所分配到的数据处理任务是不均衡的,进一步的,这种不均衡现象还会降低该分布式数据处理系统的整体处理速度。

发明内容

[0005] 本发明实施例的目的在于提供一种数据处理方法及装置,以实现将分布式数据处理系统的数据库中的数据记录均衡地分配给该系统中的各个数据处理服务器,提高分布式数据处理系统中数据处理服务器的并行处理速度,从而提高分布式数据处理系统的整体处理性能。
[0006] 为达到上述目的,本发明实施例公开了一种数据处理方法,应用于分布式数据处理系统中的客户端;其中,所述分布式数据处理系统包括:客户端、任务调度器、多个数据处理服务器和多个存储服务器;所述存储服务器中存储有多个数据片段,各个数据片段中存储有多条数据记录,所述方法包括:
[0007] 接收针对待处理数据的数据处理指令;
[0008] 根据所述数据处理指令,确定有效数据片段;其中,所述有效数据片段为针对所述待处理数据的数据片段;
[0009] 获得所述有效数据片段中已存储的数据记录的数据分布信息;其中,所述数据分布信息为:按照预设的统计规则对每个数据片段中的数据记录的数量进行统计得到的信息;
[0010] 根据所获得的数据分布信息,将每个有效数据片段的数据范围划分成至少一个子数据范围;
[0011] 按照划分得到的各个子数据范围,生成针对每个有效数据片段的数据处理任务;其中,一个数据处理任务对应一个有效数据片段的一个子数据范围;
[0012] 向所述任务调度器发送针对所述数据处理任务的数据处理请求,以使得所述任务调度器根据所述数据处理请求确定执行每一数据处理任务的数据处理服务器,其中,所述任务调度器确定数据处理服务器后,向所确定的数据处理服务器发送其要处理的数据处理任务,并接收所确定的各个数据处理服务器针对所分配的子数据范围进行数据处理的处理结果;
[0013] 接收所述任务调度器反馈的针对待处理数据的处理结果。
[0014] 较佳的,所述存储服务器根据以下步骤统计得到所述各个数据片段中任一数据片段Ri中已存储的数据记录的数据分布信息:
[0015] 所述存储服务器将所述数据片段Ri内的各条数据记录按照预设的标识值排序;
[0016] 按照排序后所述数据片段Ri中的数据记录的排列顺序,将排序后的所述数据片段Ri划分成至少一个数据区间;
[0017] 统计划分得到的各个数据区间内的数据记录的数量;
[0018] 根据统计得到的数量获得所述数据片段Ri内数据记录的数据分布信息。
[0019] 较佳的,所述根据统计得到的数量获得所述数据片段Ri内数据记录的数据分布信息,包括:
[0020] 计算所述数据片段Ri的数据记录的数量的方差;
[0021] 判断所述方差是否大于预设的数据片段方差阈值
[0022] 如果是,判断是否满足以下表达式:Num≥Th1,或,Num≤Th2,如果满足则统计所述数据片段Ri划分得到的各个数据区间内的数据记录的数量,并按照统计后的数量更新所述数据分布信息;其中,Num表示数据片段Ri划分得到的各个数据区间内的数据记录的数量,Th1表示预设的第一数量阈值,Th2表示预设的第二数量阈值,且Th1≥Th2;
[0023] 如果否,则保持当前的数据分布信息。
[0024] 较佳的,所述根据统计得到的数量获得所述数据片段Ri内数据记录的数据分布信息,包括:
[0025] 判断所述数据片段Ri的数据记录的数量是否满足预设的数据区间调整条件;
[0026] 若满足,按照预设的区间调整规则对所述数据片段Ri中各个数据区间进行调整,并根据调整后各个数据区间内的数据记录的数量,获得所述数据片段Ri内数据记录的数据分布信息;
[0027] 其中,所述预设的区间调整规则,包括:
[0028] 获得统计得到的所述数据片段Ri中数据记录的数量大于预设的第一数量阈值Th3的数据区间;
[0029] 按照预设的数据区间拆分规则,将数据记录的数量大于Th3的数据区间分别拆分为多个子数据区间。
[0030] 较佳的,所述预设的区间调整规则,还包括:
[0031] 获得统计得到的所述数据片段Ri中数据记录的数量小于预设的第二数量阈值Th2的数据区间;
[0032] 按照预设的数据区间合并规则,对数据记录的数量小于Th2的数据区间进行合并处理。
[0033] 较佳的,所述存储服务器判断所述数据片段Ri的数据记录的数量是否满足预设的数据区间处理条件,包括:
[0034] 计算统计得到的各个数据区间内的数据记录的数量的方差;
[0035] 判断计算得到的方差是否大于预设的方差阈值;
[0036] 在判断结果为大于时,判定统计得到的各个数据区间的数据记录的数量满足预设的数据区间处理条件。
[0037] 较佳的,在所述客户端中已存储所述各个数据片段中已存储的数据记录的数据分布信息的情况下,所述方法还包括:
[0038] 接收所述存储服务器发送的数据更新通知;
[0039] 根据所述数据更新通知,更新本地已存储的数据分布信息。
[0040] 为达到上述目的,本发明实施例公开了一种数据处理装置,应用于分布式数据处理系统中的客户端;其中,所述分布式数据处理系统包括:客户端、任务调度器、多个数据处理服务器和多个存储服务器;所述存储服务器中存储有多个数据片段,各个数据片段中存储有多条数据记录,所述装置包括:
[0041] 处理指令接收模,用于接收针对待处理数据的数据处理指令;
[0042] 有效数据确定模块,用于根据所述数据处理指令,确定有效数据片段;其中,所述有效数据片段为针对所述待处理数据的数据片段;
[0043] 分布信息获得模块,用于获得所述有效数据片段中已存储的数据记录的数据分布信息;其中,所述数据分布信息为:按照预设的统计规则对每个数据片段中的数据记录的数量进行统计得到的信息;
[0044] 数据范围划分模块,用于根据所获得的数据分布信息,将每个有效数据片段的数据范围划分成至少一个子数据范围;
[0045] 任务生成模块,用于按照划分得到的各个子数据范围,生成针对每个有效数据片段的数据处理任务;其中,一个数据处理任务对应一个有效数据片段的一个子数据范围;
[0046] 处理请求发送模块,用于向所述任务调度器发送针对所述数据处理任务的数据处理请求,以使得所述任务调度器根据所述数据处理请求确定执行每一数据处理任务的数据处理服务器,其中,所述任务调度器确定数据处理服务器后,向所确定的数据处理服务器发送其要处理的数据处理任务,并接收所确定的各个数据处理服务器针对所分配的子数据范围进行数据处理的处理结果;
[0047] 处理结果接收模块,用于接收所述任务调度器反馈的针对待处理数据的处理结果。
[0048] 较佳的,所述存储服务器,包括:数据排序子模块、区块划分子模块、数据统计子模块和分布信息获得子模块;其中,
[0049] 所述数据排序子模块,用于所述存储服务器将所述数据片段Ri内的各条数据记录按照预设的标识值排序;
[0050] 所述区间划分子模块,用于按照排序后所述数据片段Ri中的数据记录的排列顺序,将排序后的所述数据片段Ri划分成至少一个数据区间;
[0051] 所述数据统计子模块,用于统计划分得到的各个数据区间内的数据记录的数量;
[0052] 所述分布信息获得子模块,用于根据统计得到的数量获得所述数据片段Ri内数据记录的数据分布信息。
[0053] 较佳的,所述分布信息获得子模块,包括:片段方差计算单元、方差判断单元、第一信息统计单元和第二信息统计单元;其中,
[0054] 所述片段方差计算单元,用于计算所述数据片段Ri的数据记录的数量的方差;
[0055] 所述片段方差判断单元,用于判断所述方差是否大于预设的数据片段方差阈值;
[0056] 所述第一信息统计单元,用于在所述方差判断单元的判断结果为是时,判断是否满足以下表达式:Num≥Th1,或,Num≤Th2,如果满足则统计所述数据片段Ri划分得到的各个数据区间内的数据记录的数量,并按照统计后的数量更新所述数据分布信息;其中,Num表示数据片段Ri划分得到的各个数据区间内的数据记录的数量,Th1表示预设的第一数量阈值,Th2表示预设的第二数量阈值,且Th1≥Th2;
[0057] 所述第二信息统计单元,用于在所述方差判断单元的判断结果为是时,则保持当前的数据分布信息。
[0058] 较佳的,所述分布信息获得子模块,包括:调整条件判断单元和第一区间调整单元;其中,
[0059] 所述调整条件判断单元,用于判断所述数据片段Ri的数据记录的数量是否满足预设的数据区间调整条件;
[0060] 所述第一区间调整单元,用于在所述调整条件判断单元的判断结果为满足时,按照预设的区间调整规则对所述数据片段Ri中各个数据区间进行调整,并根据调整后各个数据区间内的数据记录的数量,获得所述数据片段Ri内数据记录的数据分布信息;
[0061] 其中,所述预设的区间调整规则,包括:
[0062] 获得统计得到的所述数据片段Ri中数据记录的数量大于预设的第一数量阈值Th3的数据区间;
[0063] 按照预设的数据区间拆分规则,将数据记录的数量大于Th3的数据区间分别拆分为多个子数据区间。
[0064] 较佳的,所述预设的区间调整规则,还包括:
[0065] 获得统计得到的所述数据片段Ri中数据记录的数量小于预设的第二数量阈值Th2的数据区间;
[0066] 按照预设的数据区间合并规则,对数据记录的数量小于Th2的数据区间进行合并处理。
[0067] 较佳的,所述调整条件判断单元,包括:区间方差计算子单元、方差判断子单元和处理条件判定子单元;其中,
[0068] 区间方差计算子单元,用于计算统计得到的各个数据区间内的数据记录的数量的方差;
[0069] 区间方差判断子单元,用于判断计算得到的方差是否大于预设的方差阈值;
[0070] 处理条件判定子单元,用于在所述区间方差判断子单元的判断结果为大于时,判定统计得到的各个数据区间的数据记录的数量满足预设的数据区间处理条件。
[0071] 较佳的,所述装置还包括:
[0072] 数据更新通知接收模块,用于在所述客户端中已存储所述各个数据片段中已存储的数据记录的数据分布信息的情况下,接收所述存储服务器发送的数据更新通知;
[0073] 数据分布信息更新模块,用于根据所述数据更新通知,更新本地已存储的数据分布信息。
[0074] 由以上可见,在本发明实施例提供的技术方案中,客户端首先接收针对待处理数据的数据处理指令,并根据该数据处理指令,确定有效数据片段;然后,获得有效数据片段中已存储的数据记录的数据分布信息,根据该数据分布信息,将每个有效数据片段的数据范围划分成至少一个子数据范围;客户端按照划分得到的各个子数据范围,生成针对每个有效数据片段的数据处理任务,并向任务调度器发送针对数据处理任务的数据处理请求,以使得任务调度器根据该请求确定执行每一数据处理任务的数据处理服务器,其中,任务调度器确定数据处理服务器后,向所确定的数据处理服务器发送其要处理的数据处理任务,并接收所确定的各个数据处理服务器针对所分配的子数据范围进行数据处理的处理结果;接收任务调度器反馈的针对待处理数据的处理结果。显然,应用本发明实施例提供的方案进行数据处理时,各个数据处理服务器所分配的数据处理任务是根据各个数据片段中的数据记录的数量分配的,避免了各个数据处理服务器所分配到的数据处理任务不均衡的问题,提高了分布式数据处理系统中数据处理服务器的并行处理速度,从而提高了分布式数据处理系统的整体处理性能。附图说明
[0075] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0076] 图1a为本发明实施例提供的一种分布式数据处理系统的架构示意图;
[0077] 图1b为本发明实施例提供的一种数据处理方法的流程示意图;
[0078] 图1c为本发明实施例提供的一种数据片段内各个数据区间的分布直方图;
[0079] 图1d为本发明实施例提供的对图1c进行拆分处理后各个数据区间的分布直方图;
[0080] 图1e为本发明实施例提供的另一种数据片段内各个数据区间的分布直方图;
[0081] 图1f为本发明实施例提供的对图1e进行合并处理后各个数据区间的分布直方图;
[0082] 图1g为本发明实施例提供的一种任务分配示意图;
[0083] 图2为本发明实施例提供的另一种数据处理方法的流程示意图;
[0084] 图3为本发明实施例提供的一种数据处理装置的结构示意图;
[0085] 图4为本发明实施例提供的另一种数据处理装置的结构示意图。

具体实施方式

[0086] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0087] 首先,对本发明实施例的应用场景进行下简单介绍:本发明实施例应用于如图1a所示的分布式数据处理系统中的客户端101,图1a为本发明实施例提供的一种分布式数据处理系统的架构示意图,具体的,图1a所示的分布式数据处理系统中包括:客户端101、任务调度器102、多个数据处理服务器103和多个存储服务器104;存储服务器104存储有多个数据片段,各个数据片段中存储有多条数据记录。
[0088] 图1b为本发明实施例提供的一种数据处理方法的流程示意图,该数据处理方法可以包括以下步骤:
[0089] 步骤S101:接收针对待处理数据的数据处理指令。
[0090] 具体的,数据处理指令中可以携带针对待处理数据的数据范围,当然也可以不携带该数据范围,此时可默认待处理数据的数据范围为全部数据片段的数据范围。当然,本发明实施例不需要对数据处理指令中是否携带数据范围以及所携带的数据范围的大小进行限定,本领域内的技术人员需要根据实际应用中的具体情况进行合理的设置。
[0091] 步骤S102:根据数据处理指令,确定有效数据片段。
[0092] 其中,有效数据片段为针对待处理数据的数据片段。
[0093] 在本发明实施例的一种具体实现方式中,针对数据处理指令中携带有针对待处理数据的数据范围的情况,可以根据所携带的数据范围来确定针对待处理数据的数据片段,所确定的有效数据片段通常为多个数据片段中的若干个数据片段而非全部数据片段;然而,在本发明实施例的另一种具体实现方式中,数据处理指令中也可以不携带针对待处理数据的数据范围,此时,默认该数据处理指令携带的数据范围为全部数据片段的范围,因此,将全部数据片段确定为有效数据片段。需要说明的是,本发明实施例不需要对数据片段的范围的具体数值进行限定,本领域内的技术人员需要根据实际应用中的具体情况进行合理设置。
[0094] 步骤S103:获得有效数据片段中已存储的数据记录的数据分布信息。
[0095] 其中,上述提及的“数据分布信息”为:按照预设的统计规则对每个数据片段中的数据记录的数量进行统计得到的信息。
[0096] 具体的,“预设的统计规则”可以是按照各个数据片段中的已存储的数据记录的键值进行统计的规则,还可以是按照本领域内的技术人员预先设定的数据记录中其他字段进行统计的统计规则。举例而言,假设已存储的数据记录中的存储的数据内容为一个班级的学生的各科考试成绩的数据,其中,每条数据记录均包括:姓名、学号、性别、科目等信息,那么,这个例子中的数据记录的统计规则,可以是以姓氏的先后顺序为统计依据的统计规则,还可以是以学号大小顺序为统计依据的统计规则,等等。当然,本发明实施例不需要对具体的统计规则进行限定,任何可能的实现方式均可以应用于本发明。
[0097] 具体的,各个数据片段中已存储的数据记录的数据分布信息,可以是客户端向存储服务器发送数据分布信息获得请求获得的,还可以是客户端读取其本地存储的数据分布信息的相关数据获得的。相比较而言,前一种方式能够准确地获得各个数据片段中已存储的数据记录的数据分布信息,但是,这种方式需要对各个数据片段中已存储的数据记录的数量进行实时统计,这是很占用硬件资源的。后一种方式能够快速地获得各个数据片段中已存储的数据记录的数据分布信息,但是,这种方式获得的数据分布信息可能会因为对数据记录的操作(例如,数据记录的增加或删除)而出现所获得的数据分布信息与各个数据片段中的实际数量不一致的情况。
[0098] 需要说明的是,本发明实施例不需要对获得各个数据片段中已存储的数据记录的数据分布信息的具体方式进行限定,本领域内的工作人员需要根据实际应用中的具体情况进行合理的设置。
[0099] 在本发明的一种具体实现方式中,可以根据以下步骤获得各个数据片段中任一数据片段Ri中已存储的数据记录的数据分布信息:
[0100] (1)存储服务器将数据片段Ri内的各条数据记录按照预设的标识值排序。
[0101] 这里提及的“预设的标识值”可以是存储服务器中各个数据片段内已存储的数据记录的键值。实际应用中,存储服务器中的每一条数据记录一般包含多个字段,通常会选择其中的一个字段作为数据记录的键值。需要说明的是,本发明实施例并不需要对预设的标识值进行限定,除了上述提到的用作键值的字段外,还可以选择其他字段来作为排序的依据,本领域内的技术人员需要根据实际应用中的具体情况进行合理的设置。
[0102] 另外,步骤(1)可以按照数据片段Ri内的各条数据记录的标识值由大到小的顺序进行排列,也可以按照数据片段Ri内的各条数据记录的标识值由小到大的顺序进行排列排列,本发明实施例不需要对排列顺序进行限定。
[0103] (2)按照排序后数据片段Ri中的数据记录的排列顺序,将排序后的数据片段Ri划分成至少一个数据区间。
[0104] 需要说明的是,当数据片段Ri中的数据记录按照预设的标识值(例如,按照数据记录的键值)进行排列后,根据该数据片段内键值的取值范围,将该数据片段划分成至少一个数据区间,并将每个数据区间中键值的取值范围确定为对应数据区间的取值范围。
[0105] 举例而言,假设数据片段Ri内键值的取值范围为1-100,根据预设的数据区间划分规则,可以将数据片段Ri划分为四个数据区间,且这四个数据区间的取值范围分别为:1-25、26-50、51-75和76-100。
[0106] 当然,本发明实施例并不需要对数据片段内所划分的数据区间的数量进行限定,本领域内的技术人员需要根据实际应用中的具体情况进行合理的设置。
[0107] (3)统计划分得到的各个数据区间内的数据记录的数量。
[0108] (4)根据统计得到的数量获得数据片段Ri内数据记录的数据分布信息。
[0109] 需要说明的是,这种数据分布信息的统计方式,需要对数据片段内的各个数据区间内的数据记录的数量进行统计,可见统计过程中的计算量还是很大的。
[0110] 在本发明的另一种具体实现方式中,步骤(4)根据统计得到的数量获得数据片段Ri内数据记录的数据分布信息,可以包括以下步骤:
[0111] 1)计算数据片段Ri的数据记录的数量的方差。
[0112] 2)判断方差是否大于预设的数据片段方差阈值。
[0113] 3)在步骤2)的判断结果为是时,判断是否满足以下表达式:Num≥Th1,或,Num≤Th2,如果满足则统计所述数据片段Ri划分得到的各个数据区间内的数据记录的数量,并按照统计后的数量更新所述数据分布信息。
[0114] 其中,Num表示数据片段Ri划分得到的各个数据区间内的数据记录的数量,Th1表示预设的第一数量阈值,Th2表示预设的第二数量阈值,且Th1≥Th2。
[0115] 4)在步骤2)的判断结果为否时,则保持当前的数据分布信息。
[0116] 可见,在这种实现方式中,计算数据片段的方差来判断数据片段内已存储的数据记录的数量偏离平均值的情况,这样,能够及时发现数量严重超过平均值的数据片段;进一步的,通过判断数据片段内的各个数据区间内的数据记录的数量是否大于预设的第一数量阈值或是否小于预设的第二数量阈值,来确定出具体是哪个数据区间的数据记录的数量发生了允许范围(Th1,Th2)外的改变,进而,可以只对该数据区间内的数据记录进行重新统计即可。可见,这种对数据分布信息的统计的计算量要远小于对数据片段内的全部数据记录进行统计的计算量。
[0117] 进一步的,在本发明的另一种具体实现方式中,步骤(4)根据统计得到的数量获得数据片段Ri内数据记录的数据分布信息,可以包括以下步骤:
[0118] 1)判断数据片段Ri的数据记录的数量是否满足预设的数据区间调整条件。
[0119] 具体的,步骤1)可以包括以下步骤:
[0120] i:计算统计得到的各个数据区间内的数据记录的数量的方差;
[0121] ii:判断计算得到的方差是否大于预设的方差阈值;
[0122] iii:在判断结果为大于时,判定统计得到的各个数据区间的数据记录的数量满足预设的数据区间处理条件。
[0123] 可以理解的是,当判断计算得到的各个数据区间内数据记录的数量的方差大于预设的方差阈值时,表明该数据区间内的数据记录的数量已严重偏离数据区间内数据记录的均值,或者说,该数据区间内的数据记录的数量与所在数据片段内的其他数据区间之间出现了较大的偏差,则认为此时该数据区间内的数据记录需要进行处理(例如,对数据区间的拆分或者合并处理),即判定统计得到的各个数据区间的数据记录的数量满足预设的数据区间处理条件。
[0124] 需要说明的是,本发明并不需要对上述提及的预设的方差阈值的具体数值进行限定,本领域内的技术人员需要根据实际应用中的具体情况来确定。
[0125] 2)在步骤1)判断为满足的情况下,按照预设的区间调整规则对数据片段Ri中各个数据区间进行调整,并根据调整后各个数据区间内的数据记录的数量,获得数据片段Ri内数据记录的数据分布信息。
[0126] 在本发明的一种具体实现方式中,预设的区间调整规则,可以包括:
[0127] A:获得统计得到的数据片段Ri中数据记录的数量大于预设的第一数量阈值Th3的数据区间;
[0128] B:按照预设的数据区间拆分规则,将数据记录的数量大于Th3的数据区间分别拆分为多个子数据区间。
[0129] 需要说明的是,将数据记录的数量大于Th1的数据区间分别拆分为多个子数据区间,目的在于将各个数据区间内的数据记录的数量控制在Th1以下,这样,对各个数据区间中的数据记录进行处理处理时,能够保证所需要的硬件资源不超过某一数值,这样有利于对各个数据区间所需要的硬件资源的合理分配。
[0130] 举例而言,假设第一数量阈值Th1为120,参见图1c,为数据片段Ri中各个数据区间内数据记录的数量的统计直方图,其中,由左向右第四个数据区间内数据记录的数量为200个,明显高于其他数据区间内的数据记录的数量。因此,可以将该数据区间拆分成如图1d所示的2个子数据区间,且各个子数据区间中的数量分别为100,100。
[0131] 需要说明的是,在将数据记录的数量大于Th1的数据区间拆分成多个子数据区间时,对于所拆分的各个子数据区间中的数量可以是相同的,也可以是不相同的,上述例子中所拆分得到的两个子数据区间中的数量也可以是110,90。本发明不需要对拆分得到的各个子数据区间中的数据记录的数量进行限定,本领域内的技术人员需要根据具体情况进行合理的设置。
[0132] 进一步的,在本发明的另一种具体实现方式中,预设的区间调整规则,还可以包括:
[0133] C:获得统计得到的数据片段Ri中数据记录的数量小于预设的第二数量阈值Th2的数据区间;
[0134] D:按照预设的数据区间合并规则,对数据记录的数量小于Th2的数据区间进行合并处理。
[0135] 还需要说明的是,对数据记录的数量小于Th2的数据区间进行合并处理,能够使各个数据区间中的数据记录的数量不至于太小,这样,对各个数据区间中的数据记录进行处理处理时,更有利于对各个数据区间所需要的硬件资源的合理分配,不至于出现资源浪费的情况。
[0136] 举例而言,假设第二数量阈值Th2为30,参见图1e,为数据片段Ri中各个数据区间内数据记录的数量的统计直方图,其中,各个数据区间中数据记录的数量均小于30,因此,可以将该数据区间合并成如图1f所示的一个数据区间,且合并后的数据区间的数量为合并前各个数据区间内的数据记录的数量之和75。
[0137] 由以上可见,根据上述两种预设的数据区间调整规则,可以将各个数据片段内的各个数据区间的数量维持在一个合理范围之内,使得各个数据片段的各个数据区间对于数据处理服务器中的硬件资源的占用趋于均衡。
[0138] 步骤S104:根据所获得的数据分布信息,将每个有效数据片段的数据范围划分成至少一个子数据范围。
[0139] 步骤S105:按照划分得到的各个子数据范围,生成针对每个有效数据片段的数据处理任务。
[0140] 其中,一个数据处理任务对应一个有效数据片段的一个子数据范围。
[0141] 实际应用中,在对存储服务器中的数据记录进行数据处理的时候,对于处理任务的划分直接影响到处理速度的快慢。而本发明实施例提供的方案恰恰是依据各个数据片段中各个数据区间内的数据记录的数量的分布信息进行划分的,可以理解的,这样进行数据处理任务的划分,能够使得各个数据处理服务器中的硬件资源与相应的数据区间内的数据记录。
[0142] 步骤S106:向任务调度器发送针对数据处理任务的数据处理请求,以使得任务调度器根据数据处理请求确定执行每一数据处理任务的数据处理服务器。
[0143] 其中,任务调度器确定数据处理服务器后,向所确定的数据处理服务器发送其要处理的数据处理任务,并接收所确定的各个数据处理服务器针对所分配的子数据范围进行数据处理的处理结果。
[0144] 举例而言,图1g为本发明实施例提供的一种任务分配示意图,针对待处理数据的有效数据片段为3个,生成9个数据处理任务,并且各个数据处理任务对应的数据记录的数量不超过130个,针对这3个有效数据片段内的各个数据区间,可以将各个数据处理任务分配如下:
[0145]
[0146] 容易理解的,分布式数据处理系统的数据处理速度通常取决于数据处理服务器中完成数据处理速度最慢的一个,图1g中各个数据处理任务所要处理的数据记录的数量大致相当,避免了现有技术中仅仅根据数据片段的数量进行数据处理任务的划分时出现的分配不均衡的问题,这样使得各个数据处理服务器完成数据处理的速度大致是相当的,因此,提高了分布式数据处理系统的整体处理性能。
[0147] 步骤S107:接收任务调度器反馈的针对待处理数据的处理结果。
[0148] 由此可见,应用本实施例提供的方案进行数据处理时,各个数据处理服务器所分配的数据处理任务是根据各个数据片段中的数据记录的数量分配的,避免了各个数据处理服务器所分配到的数据处理任务不均衡的问题,提高了分布式数据处理系统中数据处理服务器的并行处理速度,从而提高了分布式数据处理系统的整体处理性能。
[0149] 图2为本发明实施例提供的另一种数据处理方法的流程示意图,在图1b所示方法实施例的基础之上,该方法还可以包括:
[0150] 步骤S108:在本地已存储各个数据片段中已存储的数据记录的数据分布信息的情况下,接收存储服务器发送的数据更新通知。
[0151] 容易理解的,存储服务器中各个数据片段内的数据记录其实是处于一个动态变化的过程,数据记录的写入或删除会直接影响到各个数据片段内的数据分布信息,因此,对于在本地存储各个数据片段中已存储的数据记录的数据分布信息的情况,就需要定期进行数据更新,这样才能够保证客户端本地存储的数据分布信息尽可能与存储服务器中的数据片段内的数据记录的实际数量的一致性。
[0152] 步骤S109:根据该数据更新通知,更新本地已存储的数据分布信息。
[0153] 一方面,本实施例中的方案对存储于本地的各个数据片段中已存储的数据记录的数据分布信息进行了更新,这样保证了客户端所获得的数据分布信息与存储服务器中实际的数据分布情况的一致性;另一方面,应用本实施例提供的方案进行数据处理时,各个数据处理服务器所分配的数据处理任务是根据各个数据片段中的数据记录的数量分配的,避免了各个数据处理服务器所分配到的数据处理任务不均衡的问题,提高了分布式数据处理系统中数据处理服务器的并行处理速度,从而提高了分布式数据处理系统的整体处理性能。
[0154] 图3为本发明实施例提供的一种数据处理装置的结构示意图,应用于分布式数据处理系统中的客户端。
[0155] 其中,分布式数据处理系统包括:客户端、任务调度器、多个数据处理服务器和多个存储服务器;存储服务器中存储有多个数据片段,各个数据片段中存储有多条数据记录。
[0156] 具体的,上述数据处理装置可以包括以下模块:
[0157] 处理指令接收模块201,用于接收针对待处理数据的数据处理指令。
[0158] 有效数据确定模块202,用于根据数据处理指令,确定有效数据片段。
[0159] 其中,有效数据片段为针对待处理数据的数据片段。
[0160] 分布信息获得模块203,用于获得有效数据片段中已存储的数据记录的数据分布信息。
[0161] 其中,数据分布信息为:按照预设的统计规则对每个数据片段中的数据记录的数量进行统计得到的信息。
[0162] 数据范围划分模块204,用于根据所获得的数据分布信息,将每个有效数据片段的数据范围划分成至少一个子数据范围。
[0163] 任务生成模块205,用于按照划分得到的各个子数据范围,生成针对每个有效数据片段的数据处理任务。
[0164] 其中,一个数据处理任务对应一个有效数据片段的一个子数据范围。
[0165] 处理请求发送模块206,用于向任务调度器发送针对数据处理任务的数据处理请求,以使得任务调度器根据数据处理请求确定执行每一数据处理任务的数据处理服务器。
[0166] 其中,任务调度器确定数据处理服务器后,向所确定的数据处理服务器发送其要处理的数据处理任务,并接收所确定的各个数据处理服务器针对所分配的子数据范围进行数据处理的处理结果。
[0167] 处理结果接收模块207,用于接收任务调度器反馈的针对待处理数据的处理结果。
[0168] 具体的,存储服务器,包括:数据排序子模块、数据区间划分子模块、数据统计子模块和分布信息获得子模块。
[0169] 其中,数据排序子模块,用于存储服务器将数据片段Ri内的各条数据记录按照预设的标识值排序;
[0170] 区间划分子模块,用于按照排序后数据片段Ri中的数据记录的排列顺序,将排序后的数据片段Ri划分成至少一个数据区间;
[0171] 数据统计子模块,用于统计划分得到的各个数据区间内的数据记录的数量;
[0172] 分布信息获得子模块,用于根据统计得到的数量获得数据片段Ri内数据记录的数据分布信息。
[0173] 具体的,分布信息获得子模块,包括:片段方差计算单元、方差判断单元、第一信息统计单元和第二信息统计单元;其中,
[0174] 片段方差计算单元,用于计算数据片段Ri的数据记录的数量的方差;
[0175] 片段方差判断单元,用于判断方差是否大于预设的数据片段方差阈值;
[0176] 第一信息统计单元,用于在方差判断单元的判断结果为是时,判断是否满足以下表达式:Num≥Th1,或,Num≤Th2,如果满足则统计所述数据片段Ri划分得到的各个数据区间内的数据记录的数量,并按照统计后的数量更新所述数据分布信息;其中,Num表示数据片段Ri划分得到的各个数据区间内的数据记录的数量,Th1表示预设的第一数量阈值,Th2表示预设的第二数量阈值,且Th1≥Th2;
[0177] 第二信息统计单元,用于在方差判断单元的判断结果为是时,则保持当前的数据分布信息。
[0178] 具体的,分布信息获得子模块,可以包括:调整条件判断单元和第一区间调整单元。
[0179] 其中,调整条件判断单元,用于判断数据片段Ri的数据记录的数量是否满足预设的数据区间调整条件;
[0180] 第一区间调整单元,用于在调整条件判断单元的判断结果为满足时,按照预设的区间调整规则对数据片段Ri中各个数据区间进行调整,并根据调整后各个数据区间内的数据记录的数量,获得数据片段Ri内数据记录的数据分布信息;
[0181] 其中,预设的区间调整规则,可以包括:
[0182] 获得统计得到的数据片段Ri中数据记录的数量大于预设的第一数量阈值Th3的数据区间;
[0183] 按照预设的数据区间拆分规则,将数据记录的数量大于Th3的数据区间分别拆分为多个子数据区间。
[0184] 具体的,预设的区间调整规则,还可以包括:
[0185] 获得统计得到的数据片段Ri中数据记录的数量小于预设的第二数量阈值Th2的数据区间;
[0186] 按照预设的数据区间合并规则,对数据记录的数量小于Th2的数据区间进行合并处理。
[0187] 具体的,调整条件判断单元,包括:区间方差计算子单元、方差判断子单元和处理条件判定子单元。
[0188] 其中,区间方差计算子单元,用于计算统计得到的各个数据区间内的数据记录的数量的方差;
[0189] 区间方差判断子单元,用于判断计算得到的方差是否大于预设的方差阈值;
[0190] 处理条件判定子单元,用于在区间方差判断子单元的判断结果为大于时,判定统计得到的各个数据区间的数据记录的数量满足预设的数据区间处理条件。
[0191] 由此可见,应用本实施例提供的方案进行数据处理时,各个数据处理服务器所分配的数据处理任务是根据各个数据片段中的数据记录的数量分配的,避免了各个数据处理服务器所分配到的数据处理任务不均衡的问题,提高了分布式数据处理系统中数据处理服务器的并行处理速度,从而提高了分布式数据处理系统的整体处理性能。
[0192] 图4为本发明实施例提供的一种数据处理装置的结构示意图,在图3所示的装置实施例的基础之上,该装置还可以包括:
[0193] 数据更新通知接收模块208,用于在客户端中已存储各个数据片段中已存储的数据记录的数据分布信息的情况下,接收存储服务器发送的数据更新通知。
[0194] 数据分布信息更新模块209,用于根据数据更新通知,更新本地已存储的数据分布信息。
[0195] 一方面,本实施例中的方案对存储于本地的各个数据片段中已存储的数据记录的数据分布信息进行了更新,这样保证了客户端所获得的数据分布信息与存储服务器中实际的数据分布情况的一致性;另一方面,应用本实施例提供的方案进行数据处理时,各个数据处理服务器所分配的数据处理任务是根据各个数据片段中的数据记录的数量分配的,避免了各个数据处理服务器所分配到的数据处理任务不均衡的问题,提高了分布式数据处理系统中数据处理服务器的并行处理速度,从而提高了分布式数据处理系统的整体处理性能。
[0196] 对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0197] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0198] 本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
[0199] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈