CN104978344B - 一种数据运算方法及装置 - Google Patents

一种数据运算方法及装置 Download PDF

Info

Publication number
CN104978344B
CN104978344B CN201410140151.7A CN201410140151A CN104978344B CN 104978344 B CN104978344 B CN 104978344B CN 201410140151 A CN201410140151 A CN 201410140151A CN 104978344 B CN104978344 B CN 104978344B
Authority
CN
China
Prior art keywords
data
server
destination server
destination
redundant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410140151.7A
Other languages
English (en)
Other versions
CN104978344A (zh
Inventor
业韬
陈系华
张亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410140151.7A priority Critical patent/CN104978344B/zh
Publication of CN104978344A publication Critical patent/CN104978344A/zh
Application granted granted Critical
Publication of CN104978344B publication Critical patent/CN104978344B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例公开了一种数据运算方法,包括:确定各个服务器对应的数据量;根据目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜;若是,则将目标服务器对应的数据复制到无数据偏斜的冗余服务器,并修改路由信息;当接收到针对目标数据键值的数据运算信息,并根据修改后的路由信息确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器时,为目标服务器以及对应的冗余服务器分配待处理数据,以使目标服务器以及对应的冗余服务器根据数据运算信息分别对不同的数据进行运算。相应地,本发明实施例还公开了一种数据运算装置。采用本发明实施例,实现了集群数据重分布时偏斜数据的自动复制,提高了集群数据的运算效率。

Description

一种数据运算方法及装置
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种数据运算方法及装置。
背景技术
随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展,数据库应用已经普遍建立于计算机网络之上。其中,集中式数据库采用集中式处理,通信开销较大,处理效率低,并且,应用程序集中在同一台计算机上运行,一旦该计算机出现故障,则整个系统将会受到影响。因此,在集中式数据库的基础上提出了分布式数据库,相对于集中式数据库而言,分布式数据库可以根据不同的分布需求将数据存储于不同服务器中,即不同计算机的存储设备中。
在分布式数据库中,因为数据分布的不规律性以及路由算法的局限性,常常会造成各个服务器上的数据量不平衡,即某些服务器上的数据量比其他服务器上的数据量多很多,形成了数据偏斜现象,其中,数据量用于表示服务器存储的数据的多少。例如,分布式数据库的数据进行重分布时,即将分布式数据库中的数据根据其他的分布方法分布到对应的服务器中,路由规则是按照手机用户号码号段进行分布,但是,根据号码号段启用时间的不同,各个号码号段内用户的数量也有差异,如存储新启用号码号段数据的服务器的数据量比其他服务器上的数据量少很多。
因此,当各个服务器对自身存储的数据进行运算时,数据量较多的服务器明显比数据量较少的服务器的负担大,降低了集群运算的效率。例如,分布式数据库存在A、B、C、D四个服务器,在对集群数据进行重分布之后,假设A服务器存储了10万数据,B服务器存储了1万数据,C服务器存储了20万数据,D服务器存储了11万数据,当各个服务器针对自身的数据进行运算时,C服务器的负担明显大于B服务器的负担。
发明内容
本发明实施例提供了一种数据运算方法及装置,可以实现集群数据重分布时偏斜数据自动复制,提高集群数据运算效率。
本发明实施例第一方面提供了一种数据运算方法,所述数据运算方法应用于分布式数据库,其中,所述分布式数据库包括多个服务器,所述方法包括:
根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系,确定各个服务器对应的数据量;
根据目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜;
若所述目标服务器存在数据偏斜,则将所述目标服务器对应的数据复制到无数据偏斜的冗余服务器,并修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系,其中,所述目标服务器对应至少一个数据键值;
当接收到针对目标数据键值的数据运算信息,并根据修改后的路由信息确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器时,为所述目标服务器以及对应的冗余服务器分配待处理数据,以使所述目标服务器以及对应的冗余服务器根据所述数据运算信息分别对不同的数据进行运算。
在第一种可能的实现方式中,所述根据目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜包括:
将目标服务器对应的数据量与其他服务器对应的数据量进行比较;
若目标服务器对应的数据量与任意一个服务器的数据量的差值达到预设阈值,则判断所述目标服务器存在数据偏斜。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,若判断所述目标服务器存在数据偏斜,还包括:
在所述各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器。
结合第一方面或第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系之前,还包括:
设置所述路由信息中各个数据键值与服务器的对应关系。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述设置所述路由信息中各个数据键值与服务器的对应关系包括:
根据预设路由算法对所述各个数据键值进行运算,从而获得所述各个数据键值对应的运算值;
对所述各个运算值取模,并将取模结果与服务器的编码信息进行匹配,从而确定所述各个数据键值与服务器的对应关系。
结合第一方面或第一方面的第一种至第四种中任一种可能的实现方式,在第五种可能的实现方式中,所述修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系之后,还包括:
接收外部系统针对所述目标数据键值加载的数据;
根据修改后的路由信息,确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
向所述目标服务器以及对应的冗余服务器加载该数据。
相应地,本发明实施例第二方面还提供了一种数据运算装置,包括:
数据量确定模块,用于根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系,确定各个服务器对应的数据量;
数据偏斜判断模块,用于根据数据量确定模块确定的目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜;
数据复制模块,用于若所述数据偏斜判断模块判断所述目标服务器存在数据偏斜,则将所述目标服务器对应的数据复制到无数据偏斜的冗余服务器;
路由管理模块,用于修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系,其中,所述目标服务器对应至少一个数据键值;
第一接收模块,用于接收针对目标数据键值的数据运算信息;
第一服务器确定模块,用于当所述第一接收模块接收到针对目标数据键值的数据运算信息时,根据修改后的路由信息确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
数据分配模块,用于为所述目标服务器以及对应的冗余服务器分配待处理数据,以使所述目标服务器以及对应的冗余服务器根据所述数据运算信息分别对不同的数据进行运算。
在第一种可能的实现方式中,所述数据偏斜判断模块包括:
比较单元,用于将目标服务器对应的数据量与其他服务器对应的数据量进行比较;
判断单元,用于若所述比较单元的比较结果为目标服务器对应的数据量与任意一个服务器的数据量的差值达到预设阈值,则判断所述目标服务器存在数据偏斜。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,若所述数据偏斜判断模块判断所述目标服务器存在数据偏斜,所述装置还包括:
冗余服务器确定模块,用于在所述各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器。
结合第二方面或第二方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:
设置模块,用于设置所述路由信息中各个数据键值与服务器的对应关系。结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述设置模块包括:
运算值获取单元,用于根据预设路由算法对所述各个数据键值进行运算,从而获得所述各个数据键值对应的运算值;
取模单元,用于对所述运算值获取单元获取的运算值取模;
匹配单元,用于将所述取模单元的取模结果与服务器的编码信息进行匹配,从而确定所述各个数据键值与服务器的对应关系。
结合第二方面或第二方面的第一种至第四种中任一种可能的实现方式,在第五种可能的实现方式中,所述装置还包括:
第二接收模块,用于接收外部系统针对所述目标数据键值加载的数据;
第二服务器确定模块,用于当所述第二接收模块接收到针对目标数据键值加载的数据时,根据修改后的路由信息确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
数据加载模块,用于向所述目标服务器以及对应的冗余服务器加载该数据。
本发明实施例可以根据所统计的各个数据键值对应的数据量以及路由信息中各个数据键值与服务器的对应关系,确定各个服务器对应的数据量,若根据目标服务器对应的数据量判断该目标服务器存在数据偏斜,则将该目标服务器对应的数据复制到无数据偏斜的冗余服务器,实现了集群数据重分布时偏斜数据的自动复制;当确定目标数据键值所在服务器为目标服务器以及对应的冗余服务器时,可以为目标服务器以及对应的冗余服务器分配待处理数据,使目标服务器以及对应的冗余服务器根据数据运算信息分别对不同的数据进行运算,从而提高了集群数据的运算效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据运算方法的流程图;
图2是本发明实施例提供的一种分布式数据库的示意图;
图3是本发明实施例提供的一种分布式数据库数据分布的结构示意图;
图4是本发明实施例提供的另一种分布式数据库数据分布的结构示意图;
图5是本发明另一实施例提供的一种数据运算方法的流程图;
图6是本发明实施例提供的一种数据运算装置的结构示意图;
图7是本发明实施例提供的一种设置模块的结构示意图;
图8是本发明实施例提供的一种数据偏斜判断模块的结构示意图;
图9是本发明另一实施例提供的一种数据运算装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明实施例提供的一种数据运算方法的流程图。本发明实施例提供的数据运算方法可以在分布式数据库中的数据重分布时实现。其中,分布式数据库可以由至少一个主控终端以及多个服务器组成,如图2所示,主控终端可以通过通信链路与各个服务器连接。本发明实施例从分布式数据库中的主控终端角度进行描述。如图1所示本实施例中的数据运算流程可以包括:
S110,根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系,确定各个服务器对应的数据量。
假设本方案中的分布式数据库用于存储运营商的用户数据,用户数据可以包括用户标识(如电话号码)、性别、归属地(电话号码所属地区)、已使用短消息数量以及已呼叫时长等等,在分布式数据库中,存在多个用于存储用户数据的服务器,分布键决定如何分布用户数据,该分布键可以包括多个数据键值,该数据键值用于决定各个用户数据需要存储到哪个服务器中。
例如,假设用户数据中的归属地包括深圳、广州、惠州以及东莞,根据业务的需求,需要将归属地作为分布键重新分布用户数据,则深圳、广州、惠州以及东莞则为该分布键的数据键值,如果存在4台服务器,且路由信息如表1所示,则将归属地为深圳的用户数据存储于第一服务器,将归属地为广州的用户数据存储于第二服务器,将归属地为惠州的用户数据存储于第三服务器,将归属地为东莞的用户数据存储于第四服务器。
表1
服务器 数据键值
第一服务器 深圳
第二服务器 广州
第三服务器 惠州
第四服务器 东莞
分布式数据库在数据重分布之前,分布式数据库中的数据分布情况以图3为例,其中,分布式数据库中的数据在重分布之前,数据以“客户标识”为分布键分布在各个服务器,当存在一新的需求,如需要按照“维度”为分布键对分布式数据库中的数据进行重分布时,主控终端则可以根据“维度”统计各个数据键值对应的数据量,此时,数据键值包括“dim1”、“dim2”以及“dim3”。
具体实现中,主控终端可以接收数据重分布指令,所述数据重分布指令中包括预设分布键,当主控终端接收到重分布指令时,主控终端则可以根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中各个数据键值与服务器的对应关系,确定各个服务器对应的数据量。
其中,主控终端可以触发各个服务器分别统计自身服务器中各个数据键值对应的数据量,再将各个服务器反馈的数据键值对应的数据量进行汇总,从而实现统计该分布键的各个数据键值对应的数据量。例如,分布式数据库在数据重分布之前,分布式数据库中的数据分布情况如图3所示,当需要根据“维度”对分布式数据库中的数据进行重分布时,服务器A、服务器B、服务器C以及服务器D分别统计自身服务器中“dim1”、“dim2”以及“dim3”的数据量,主控终端将各个服务器反馈的“dim1”、“dim2”以及“dim3”对应的数据量进行汇总,从而实现统计该分布键的各个数据键值对应的数据量。
其中,主控终端可以设置路由信息中各个数据键值与服务器的对应关系。
具体的,主控终端可以根据预设路由算法对所述各个数据键值进行运算,从而获得所述各个数据键值对应的运算值,对所述各个运算值取模,并将取模结果与服务器的编码信息进行匹配,从而确定所述各个数据键值与服务器的对应关系。其中,该预设路由算法可以包括哈希算法、轮流放置算法或区间划分算法等等,以哈希算法为例,假设分布式数据库在数据重分布之前,分布式数据库中的数据分布情况如图3所示,主控终端可以为各个服务器进行编号,从而获得各个服务器的编码信息,如表2所示;主控终端对预设分布键的各个数据键值进行哈希运算,即针对“dim1”、“dim2”以及“dim3”进行哈希运算,从而可以获得各个数据键值对应的运算值,再对各个运算值取模,即对各个运算值除以分布式数据库中用于存储数据的服务器的数量(本例为4)取余数,其中,余数范围为0~4,假设“dim1”的取模结果为0,“dim2”的取模结果为1,“dim3”的取模结果为2,主控终端可以将各个取模结果与服务器的编码信息进行匹配,从而确定分布键的各个数据键值与服务器的对应关系,如表3所示。
表2
编码 服务器
0 服务器A
1 服务器B
2 服务器C
3 服务器D
表3
服务器 数据键值
服务器A dim1
服务器B dim2
服务器C dim3
服务器D
S120,根据目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜。
具体实现中,主控终端可以将目标服务器对应的数据量与其他服务器对应的数据量进行比较,若目标服务器对应的数据量与任意一个服务器的数据量的差值达到预设阈值,则说明所述目标服务器存在数据偏斜,实现了偏斜数据的自动检测,例如,主控终端确定的服务器与数据量的对应关系如表4所示,若预设阈值为5,服务器B与服务器D的数据量的差值为8,达到了该预设阈值,则说明分布式数据库在数据重分布时,服务器B会存在数据偏斜,则执行步骤S130,其中,该预设阈值可以根据实际情况而定。
需要指出的是,主控终端需要对所控制的服务器进行偏斜检测,本发明实施例所提出的针对目标服务器的偏斜检测只表示了其中一个流程,该目标服务器可以是分布式数据库系统中的任意一个服务器。
表4
服务器 数据量
服务器A 4
服务器B 8
服务器C 4
服务器D 0
S130,若所述目标服务器存在数据偏斜,则将所述目标服务器对应的数据复制到无数据偏斜的冗余服务器,并修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系,其中,所述目标服务器对应至少一个数据键值。
具体实现中,主控终端若判断目标服务器存在数据偏斜,则分布式数据库在数据重分布时,主控终端可以将目标服务器对应的数据复制到无数据偏斜的冗余服务器,冗余服务器为该分布式数据库中不存在数据偏斜的服务器,实现了分布式数据库数据重分布时偏斜数据的自动复制。例如,服务器与数据量的对应关系如表4所示,且预设阈值为5,分布式数据库中的数据进行重分布时,主控终端可以将服务器B对应的数据复制到服务器A、服务器C与服务器D中任意一个冗余服务器。
作为一种可选的实施方式,主控终端可以在各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器,从而进一步减小各个服务器之间数据量的差距。例如,服务器与数据量的对应关系如表4所示,且预设阈值为5,当主控终端判断服务器B存在数据偏斜时,则主控终端可以比较其余各个服务器对应的数据量,其中,服务器D当前对应的数据量为0,其对应的数据量最小,主控终端则将服务器D作为服务器B对应的冗余服务器,分布式数据库在数据重分布时,主控终端则将服务器B对应的数据冗余到服务器D。
主控终端在将目标服务器对应的数据复制到无数据偏斜的冗余服务器时,修改该路由信息,使目标服务器对应的数据键值与目标服务器及冗余服务器建立对应关系,其中,该目标服务器对应至少一个数据键值。例如,服务器与数据键值的对应关系图表3所示,分布式数据库在数据重分布时,将服务器B对应的数据复制到服务器D,则修改后的路由信息如表5所示。
表5
服务器 数据键值
服务器A dim1
服务器B dim2
服务器C dim3
服务器D dim2
S140,当接收到针对目标数据键值的数据运算信息,并根据修改后的路由信息确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器时,为所述目标服务器以及对应的冗余服务器分配待处理数据,以使所述目标服务器以及对应的冗余服务器根据所述数据运算信息分别对不同的数据进行运算。
具体的,主控终端在修改路由信息之后,可以接收针对该分布键的目标数据键值的数据运算信息,当主控终端接收到针对该分布键的目标数据键值的数据运算信息时,主控终端可以根据修改后的路由信息,确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器,主控终端则为目标服务器以及对应的冗余服务器分配待处理数据,即将冗余数据划分成两部分,将其中一部分分配给目标服务器处理,将另外一部分分配给冗余服务器处理,使目标服务器以及对应的冗余服务器根据数据运算信息分别对不同的数据进行运算,从而提高了集群数据的运算效率,其中,冗余数据为目标服务器复制到冗余服务器的数据。
例如,分布式数据库在数据重分布之后,分布式数据库中的数据分布情况如图4所示,主控终端可以将冗余数据平均划分成两部分,为服务器B分配第一部分冗余数据,为服务器D分配第二部分冗余数据,因此,存在两个服务器同时针对冗余数据进行运算,相比只存在一个服务器针对冗余数据进行预算的情况,提高了集群数据的运算效率。需要指出的是,主控终端还可以为目标服务器分配2/3的冗余数据,为冗余服务器分配1/3的冗余数据等等。
主控终端在修改路由信息之后,可以接收外部系统针对该分布键的目标数据键值加载的数据,当主控终端接收到外部系统针对该分布键的目标数据键值加载的数据时,主控终端可以根据修改后的路由信息,确定该目标数据键值所在数据节点为目标数据节点以及对应的冗余数据节点,则可以向所述目标数据节点以及对应的冗余数据节点加载该数据。
本发明实施例可以根据所统计的各个数据键值对应的数据量以及路由信息中各个数据键值与服务器的对应关系,确定各个服务器对应的数据量,若根据目标服务器对应的数据量判断该目标服务器存在数据偏斜,则将该目标服务器对应的数据复制到无数据偏斜的冗余服务器,实现了集群数据重分布时偏斜数据的自动复制;当确定目标数据键值所在服务器为目标服务器以及对应的冗余服务器时,可以为目标服务器以及对应的冗余服务器分配待处理数据,使目标服务器以及对应的冗余服务器根据数据运算信息分别对不同的数据进行运算,从而提高了集群数据的运算效率。
请参阅图5,图5是本发明另一实施例提供的一种数据运算方法的流程图。本发明实施例提供的数据运算方法可以在分布式数据库中的数据重分布时实现。本发明实施例从分布式数据库的主控终端角度进行描述。如图5所示本实施例中的数据运算流程可以包括:
S501,根据预设分布键统计各个数据键值对应的数据量。
分布式数据库在数据重分布之前,分布式数据库中的数据分布情况以图3为例,其中,分布式数据库在数据在重分布之前,数据以“客户标识”为分布键分布在各个服务器,当存在一新的需求,如需要按照“维度”为分布键对分布式数据库中的数据进行重分布时,主控终端则可以根据“维度”统计各个数据键值对应的数据量,此时,数据键值包括“dim1”、“dim2”以及“dim3”。
具体实现中,主控终端可以触发各个服务器分别统计自身服务器中各个数据键值对应的数据量,再将各个服务器反馈的数据键值对应的数据量进行汇总,从而实现统计该分布键的各个数据键值对应的数据量。例如,分布式数据库在数据重分布之前,分布式数据库中的数据分布情况如图3所示,当需要根据“维度”对分布式数据库中的数据进行重分布时,服务器A、服务器B、服务器C以及服务器D分别统计自身服务器中“dim1”、“dim2”以及“dim3”的数据量,主控终端将各个服务器反馈的“dim1”、“dim2”以及“dim3”对应的数据量进行汇总,从而实现统计该分布键的各个数据键值对应的数据量。
S502,设置路由信息中各个数据键值与服务器的对应关系。
具体实现中,主控终端可以根据预设路由算法对所述各个数据键值进行运算,从而获得所述各个数据键值对应的运算值,对所述各个运算值取模,并将取模结果与服务器的编码信息进行匹配,从而确定路由信息中各个数据键值与服务器的对应关系。
其中,该预设路由算法可以包括哈希算法、轮流放置算法或区间划分算法等等,以哈希算法为例,假设分布式数据库在数据重分布之前,分布式数据库中的数据分布情况如图3所示,主控终端可以为各个服务器进行编号,从而获得各个服务器的编码信息,如表2所示;主控终端可以对预设分布键的各个数据键值进行哈希运算,从而可以获得各个数据键值对应的运算值,再对各个运算值取模,即对各个运算值除以分布式数据库中用于存储数据的服务器的数量(本例为4)取余数,其中,余数范围为0~4;若分布键的各个数据键值“dim1”、“dim2”和“dim3”取模结果分别为“0”、“1”、“2”,则主控终端将各个取模结果与服务器的编码信息匹配之后,确定的路由信息中各个数据键值与服务器的对应关系如表3所示;若分布键的各个数据键值“dim1”、“dim2”、“dim3”、“dim4”以及“dim5”的运算结果分别为“0”、“1”、“2”“3”以及“1”,则主控终端将各个取模结果与服务器的编码信息匹配之后,确定的路由信息中各个数据键值与服务器的对应关系如表6所示。
表6
服务器 数据键值
服务器A dim1
服务器B dim2、dim5
服务器C dim3
服务器D dim4
S503,根据所统计的各个数据键值对应的数据量以及路由信息中各个数据键值与服务器的对应关系,确定各个服务器对应的数据量。
具体实现中,主控终端可以根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中各个数据键值与服务器的对应关系,确定各个服务器对应的数据量。例如,分布式数据库中的数据重分布之前,分布式数据量中的数据分布情况如图3所示,主控终端所统计的预设分布键的各个数据键值“dim1”、“dim2”和“dim3”对应的数据量分别为“4”、“8”和“4”,在路由信息中,该分布键的各个数据键值与服务器的对应关系如表3所示,主控终端从而可以确定各个服务器对应的数据量,即表4。
S504,根据目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜。
具体实现中,主控终端可以将目标服务器对应的数据量与其他服务器对应的数据量进行比较,若目标服务器对应的数据量与任意一个服务器的数据量的差值达到预设阈值,则说明所述目标服务器存在数据偏斜,实现了在分布式数据库数据重分布时,偏斜数据的自动检测,例如,主控终端确定的服务器与数据量的对应关系如表4所示,若预设阈值为5,服务器B与服务器D的数据量的差值为8,达到了该预设阈值,则说明分布式数据库在数据重分布时,服务器B会存在数据偏斜,则执行步骤S505,其中,该预设阈值可以根据实际情况而定。
需要指出的是,主控终端需要对所控制的服务器进行偏斜检测,本发明实施例所提出的针对目标服务器的偏斜检测只表示了其中一个流程,该目标数节点可以是分布式数据库系统中的任意一个服务器。
S505,若所述目标服务器存在数据偏斜,则在所述各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器。
具体实现中,主控终端当判断目标服务器存在数据偏斜时,可以在各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器,从而减小各个服务器之间数据量的差距,使得当主控终端针对各个服务器发送查询运算指令时,各个服务器负载的数据量相当,从而进一步提高集群数据的运算效率。例如,分布式数据库在数据重分布之前,分布式数据库中的数据分布情况如图3所示,服务器与数据量的对应关系如表4所示,当数据重分布时,主控节点将服务器B对应的数据复制到服务器D,则当各个服务器针对自身节点的数据进行运算时,服务器A、服务器B、服务器C以及服务器D需要运算的数据量相当,从而进一步提高集群数据的运算效率。
S506,将所述目标服务器对应的数据复制到冗余服务器。
具体实现中,主控终端在确定了分布式数据库中服务器对应的冗余服务器时,则可以将该分布式数据库中的数据根据该路由信息进行重分布,主控终端可以在向该目标服务器分布对应的数据的同时,向该目标服务器对应的冗余服务器复制同样的数据。
S507,修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系。
具体实现中,主控终端在将目标服务器对应的数据复制到冗余服务器时,修改该路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系。例如,该路由信息如表3所示,当主控终端将服务器B对应的数据复制到服务器D后,可以将该路由信息修改为如表5所示。
S508,接收外部系统针对目标数据键值加载的数据。
具体实现中,主控终端可以接收外部系统针对该目标数据键值加载的数据,当接收到外部系统针对该目标数据键值加载的数据时,则执行步骤S509。
S509,根据修改后的路由信息,确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器。
S510,向所述目标服务器以及对应的冗余服务器加载该数据。
具体实现中,当主控终端根据修改后的路由信息确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器时,则向目标服务器以及对应的冗余服务器加载该数据。
S511,接收针对所述目标数据键值的数据运算信息。
具体实现中,用户可以针对该分布键的目标数据键值进行运算,主控终端从而可以获得数据运算信息,例如,该分布式数据库应用于运营商,用于存储用户数据,该分布键为归属地,即分布式数据库中的用户数据根据归属地存储在不同服务器,主控终端可以接收针对至少一个归属地的用户的数据运算信息,如广东用户x月使用流量达到100m的数量,或者广东用户2G用户所占比例等等。
S512,根据修改后的路由信息,确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器。
具体实现中,所述数据运算信息中包括该分布键的目标数据键值,当主控终端接收到该数据运算信息时,可以根据修改后的路由信息确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器,例如,该分布式数据库存在4个服务器,分别为服务器A、服务器B、服务器C以及服务器D,服务器A用于存储上海用户数据,服务器B用于存储广东用户数据,服务器C用于存储北京用户数据,服务器D用于存储重庆用户数据,其中,主控终端将服务器B的用户数据复制到服务器D,也就是说,服务器D存储了重庆用户数据以及广东用户数据,当该数据运算信息为查询广东用户x月使用流量达到100m的数量时,主控终端则可以根据修改后的路由信息确定广东用户数据存储于服务器B以及服务器D。
S513,为所述目标服务器以及对应的冗余服务器分配待处理数据,以使所述目标服务器以及对应的冗余服务器根据所述数据运算信息分别对不同的数据进行运算。
具体实现中,当主控终端确定目标数据键值所述服务器为目标服务器以及对应的冗余服务器时,主控终端为所述目标服务器以及对应的冗余服务器分配待处理数据,即将冗余数据划分成两部分,目标服务器处理一部分,冗余服务器处理另一部分,因此,存在两个服务器同时针对冗余数据进行运算,相比只存在一个服务器针对冗余数据进行预算的情况,提高了集群数据的运算效率,其中,所述冗余数据为目标服务器复制到冗余服务器的数据。例如,分布式数据库在数据重分布之后,分布式数据库中的数据分布情况如图4所示,控终端可以将冗余数据平均划分成两部分,让服务器B对冗余数据的第一部分进行运算,让服务器D对冗余数据的第二部分进行运算。
本发明实施例,若根据目标服务器对应的数据量判断该目标服务器存在数据偏斜,则将该目标服务器对应的数据复制到当前数据量最小的冗余服务器,相比上一实施例,减小了服务器存储的数据量的差距,使得各个服务器对集群数据进行运算时,所述各个服务器负担的数据量相当,从而进一步提高了集群数据的运算效率。
请参阅图6,图6是本发明实施例提供的一种数据运算装置的结构示意图。本发明实施例提供的数据运算装置可以实现在分布式数据库的主控终端设备上。如图6所示所述数据运算装置600至少可以包括数据量确定模块601、数据偏斜判断模块602、数据复制模块603、路由管理模块604、第一接收模块605、第一服务器确定模块606以及数据分配模块607,其中:
数据量确定模块601,用于根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系,确定各个服务器对应的数据量。
具体的,当需要根据预设分布键重新分布数据时,数据量确定模块601可以根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系,确定各个服务器对应的数据量。
其中,数据量确定模块601可以将各个服务器反馈的数据键值对应的数据量进行汇总,从而实现统计该分布键的各个数据键值对应的数据量。例如,分布式数据库在数据重分布之前,分布式数据库中的数据分布情况如图3所示,当需要根据“维度”对分布式数据库中的数据进行重分布时,服务器A、服务器B、服务器C以及服务器D分别统计自身服务器中“dim1”、“dim2”以及“dim3”的数据量,数据量确定模块601将各个服务器反馈的“dim1”、“dim2”以及“dim3”对应的数据量进行汇总,从而实现统计该分布键的各个数据键值对应的数据量。
可选的,所述装置还可以包括设置模块608,用于设置所述路由信息中各个数据键值与服务器的对应关系。
其中,设置模块608如图7所示进一步可以包括运算值获取单元6081、取模单元6082以及匹配单元6083,其中:
运算值获取单元6081,用于根据预设路由算法对所述各个数据键值进行运算,从而获得所述各个数据键值对应的运算值;取模单元6082,用于对所述运算值获取单元6081获取的运算值取模;匹配单元6083,用于将所述取模单元6082的取模结果与服务器的编码信息进行匹配,从而确定所述各个数据键值与服务器的对应关系。
该预设路由算法可以包括哈希算法、轮流放置算法或区间划分算法等等。以哈希算法为例,假设分布式数据库在数据重分布之前,分布式数据库中的数据分布情况如图3所示,运算值获取单元6081可以为各个服务器进行编号,建立各个服务器的编码信息,如表2所示,运算值获取单元6081可以对预设分布键的各个数据键值进行哈希运算,即针对“dim1”、“dim2”以及“dim3”进行哈希运算,从而可以获得各个数据键值对应的运算值,取模单元6082对各个运算值取模,即对各个运算值除以分布式数据库中用于存储数据的服务器的数量(本例为4)取余数,其中,余数范围为0~4,假设“dim1”的取模结果为0,“dim2”的取模结果为1,“dim3”的取模结果为2,从而获得该预设分布键的各个数据键值的运算结果,假设“dim1”的运算结果为0,“dim2”的运算结果为1,“dim3”的运算结果为2,匹配单元6083可以将各个取模结果与服务器的编码信息进行匹配,从而确定分布键的各个数据键值与服务器的对应关系,如表3所示。
数据偏斜判断模块602,用于根据数据量确定模块601确定的目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜。
作为一种可选的实施方式,数据偏斜判断模块602如图8所示进一步可以包括比较单元6021以及判断单元6022,其中:
比较单元6021,用于将目标服务器对应的数据量与其他服务器对应的数据量进行比较;判断单元6022,用于若所述比较单元6021的比较结果为目标服务器对应的数据量与任意一个服务器的数据量的差值达到预设阈值,则判断所述目标服务器存在数据偏斜,实现了在分布式数据库数据重分布时,偏斜数据的自动检测。
数据复制模块603,用于若所述数据偏斜判断模块602判断目标服务器存在数据偏斜,则将所述目标服务器对应的数据复制到无数据偏斜的冗余服务器。
具体的,若数据偏斜判断模块602判断目标服务器存在数据偏斜,则分布式数据库在数据重分布时,数据复制模块603将目标服务器对应的数据复制到无数据偏斜的冗余服务器,实现了分布式数据库数据重分布时偏斜数据的自动冗余,例如,服务器与数据量的对应关系如表4所示,且预设阈值为5,分布式数据库中的数据进行重分布时,数据复制模块603可以将服务器B对应的数据冗余到服务器A、服务器C与服务器D中任意一个冗余服务器。
可选的,若所述数据偏斜判断模块602判断所述目标服务器存在数据偏斜,所述装置进一步还可以包括冗余服务器确定模块609,用于在所述各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器,从而进一步减小各个服务器之间数据量的差距。例如,服务器与数据量的对应关系如表4所示,且预设阈值为5,当数据偏斜判断模块602判断服务器B存在数据偏斜时,则冗余服务器确定模块609可以比较其余各个服务器对应的数据量,其中,服务器D当前对应的数据量为0,其对应的数据量最小,冗余服务器确定模块609则将服务器D作为服务器B对应的冗余服务器,分布式数据库在数据重分布时,主控终端则将服务器B对应的数据复制到服务器D。
路由管理模块604,用于修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系,其中,所述目标服务器对应至少一个数据键值。
第一接收模块605,用于接收针对目标数据键值的数据运算信息。
具体的,用户可以针对该分布键的目标数据键值进行运算,第一接收模块605从而可以获得数据运算信息。例如,该分布式数据库应用于运营商,用于存储用户数据,该分布键为归属地,即分布式数据库中的用户数据根据归属地存储在不同服务器,第一接收模块605可以接收针对至少一个归属地的用户的数据运算信息,如广东用户x月使用流量达到100m的数量,或者广东用户2G用户所占比例等等。
第一服务器确定模块606,用于当所述第一接收模块605接收到针对目标数据键值的数据运算信息时,根据修改后的路由信息确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器。
具体的,所述数据运算信息中包括该分布键的目标数据键值,当第一接收模块605接收到该数据运算信息时,第一服务器确定模块606可以根据修改后的路由信息确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器,例如,该分布式数据库存在4个服务器,分别为服务器A、服务器B、服务器C以及服务器D,服务器A用于存储上海用户数据,服务器B用于存储广东用户数据,服务器C用于存储北京用户数据,服务器D用于存储重庆用户数据,其中,数据复制模块603将服务器B的用户数据复制到服务器D,也就是说,服务器D存储了重庆用户数据以及广东用户数据,当该数据运算信息为查询广东用户x月使用流量达到100m的数量时,第一服务器确定模块606则可以根据修改后的路由信息确定广东用户数据存储于服务器B以及服务器D。
数据分配模块607,用于为所述目标服务器以及对应的冗余服务器分配待处理数据,以使所述目标服务器以及对应的冗余服务器根据所述数据运算信息分别对不同的数据进行运算。
具体的,当第一服务器确定模块606确定目标数据键值所述服务器为目标服务器以及对应的冗余服务器时,数据分配模块607为所述目标服务器以及对应的冗余服务器分配待处理数据,即将冗余数据划分成两部分,目标服务器处理一部分,冗余服务器处理另一部分,因此,存在两个服务器同时针对冗余数据进行运算,相比只存在一个服务器针对冗余数据进行预算的情况,提高了集群数据的运算效率。
进一步的,所述装置还可以包括第二接收模块610、第二服务器确定模块611以及数据加载模块612,其中:
第二接收模块610,用于接收外部系统针对所述目标数据键值加载的数据;第二服务器确定模块611,用于当所述第二接收模块接收610到针对目标数据键值加载的数据时,根据修改后的路由信息确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;数据加载模块612,用于向所述目标服务器以及对应的冗余服务器加载该数据。
本发明实施例数据量确定模块可以根据数据统计模块所统计的各个数据键值对应的数据量以及路由信息获取模块获取的各个数据键值与服务器的对应关系,确定各个服务器对应的数据量,数据偏斜判断模块若根据目标服务器对应的数据量判断该目标服务器存在数据偏斜,数据复制模块则将该目标服务器对应的数据复制到无数据偏斜的冗余服务器,从而实现了集群数据重分布时偏斜数据的自动复制;当第一服务器确定模块确定目标数据键值所在服务器为目标服务器以及对应的冗余服务器时,数据分配模块可以为目标服务器以及对应的冗余服务器分配待处理数据,使目标服务器以及对应的冗余服务器根据数据运算信息分别对不同的数据进行运算,从而提高了集群数据的运算效率。
请参阅图9,图9是本发明另一实施例提供的一种数据运算装置的结构示意图,如图9所示,该数据处理装置900可以包括:至少一个处理器901,例如CPU,至少一个通信总线902,网络接口903以及存储器904。其中,网络接口903用于与各个服务器建立通信链路以及接收用户的请求,通信总线903用于实现这些组件之间的连接通信。存储器904可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器904中存储一组程序代码,且处理器901用于调用存储器904中存储的程序代码,用于执行以下操作:
根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系,确定各个服务器对应的数据量;
根据目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜;
若所述目标服务器存在数据偏斜,则将所述目标服务器对应的数据复制到无数据偏斜的冗余服务器,并修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系,其中,所述目标服务器对应至少一个数据键值;
当接收到针对目标数据键值的数据运算信息,并根据修改后的路由信息确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器时,为所述目标服务器以及对应的冗余服务器分配待处理数据,以使所述目标服务器以及对应的冗余服务器根据所述数据运算信息分别对不同的数据进行运算。
其中,处理器901根据目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜具体可以包括:
将目标服务器对应的数据量与其他服务器对应的数据量进行比较;
若目标服务器对应的数据量与任意一个服务器的数据量的差值达到预设阈值,则判断所述目标服务器存在数据偏斜。
进一步的,若判断所述目标服务器存在数据偏斜,处理器901还执行如下步骤:
在所述各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器。
进一步的,处理器901根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系之前,还执行如下步骤:
设置所述路由信息中各个数据键值与服务器的对应关系。
其中,处理器901设置所述路由信息中各个数据键值与服务器的对应关系具体可以包括:
根据预设路由算法对所述各个数据键值进行运算,从而获得所述各个数据键值对应的运算值;
对所述各个运算值取模,并将取模结果与服务器的编码信息进行匹配,从而确定所述各个数据键值与服务器的对应关系。
可选的,处理器901修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系之后,还执行如下步骤:
接收外部系统针对目标数据键值加载的数据;
根据修改后的路由信息,确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
向所述目标服务器以及对应的冗余服务器加载该数据。
本发明实施例,处理器可以根据所统计的各个数据键值对应的数据量以及获取的数据键值与服务器的对应关系,确定各个服务器对应的数据量,若根据目标服务器对应的数据量判断该目标服务器存在数据偏斜,则将该目标服务器对应的数据复制到无数据偏斜的冗余服务器,从而实现了集群数据重分布时偏斜数据的自动冗余;当处理器确定目标数据键值所在服务器为目标服务器以及对应的冗余服务器时,可以为目标服务器以及对应的冗余服务器分配待处理数据,使目标服务器以及对应的冗余服务器根据数据运算信息分别对不同的数据进行运算,从而提高了集群数据的运算效率。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的模块或单元可以根据实际需要进行合并、划分和删减。
本发明实施例中所述模块或单元,可以通过通用集成电路,例如CPU(CentralProcessing Unit,中央处理器),或通过ASIC(Application Specific IntegratedCircuit,专用集成电路)来实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (20)

1.一种数据运算方法,其特征在于,所述数据运算方法应用于分布式数据库,其中,所述分布式数据库包括多个服务器,所述方法包括:
根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系,确定各个服务器对应的数据量;
根据目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜;
若所述目标服务器存在数据偏斜,则将所述目标服务器对应的数据复制到无数据偏斜的冗余服务器,并修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系,其中,所述目标服务器对应至少一个数据键值;
当接收到针对目标数据键值的数据运算信息,并根据修改后的路由信息确定该目标数据键值所在服务器为目标服务器以及对应的冗余服务器时,为所述目标服务器以及对应的冗余服务器分配待处理数据,以使所述目标服务器以及对应的冗余服务器根据所述数据运算信息分别对不同的数据进行运算。
2.如权利要求1所述的方法,其特征在于,所述根据目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜包括:
将目标服务器对应的数据量与其他服务器对应的数据量进行比较;
若目标服务器对应的数据量与任意一个服务器的数据量的差值达到预设阈值,则判断所述目标服务器存在数据偏斜。
3.如权利要求1所述的方法,其特征在于,若判断所述目标服务器存在数据偏斜,还包括:
在所述各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器。
4.如权利要求2所述的方法,其特征在于,若判断所述目标服务器存在数据偏斜,还包括:
在所述各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器。
5.如权利要求1-4任一项所述的方法,其特征在于,所述根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系之前,还包括:
设置所述路由信息中各个数据键值与服务器的对应关系。
6.如权利要求5所述的方法,其特征在于,所述设置所述路由信息中各个数据键值与服务器的对应关系包括:
根据预设路由算法对所述各个数据键值进行运算,从而获得所述各个数据键值对应的运算值;
对所述各个运算值取模,并将取模结果与服务器的编码信息进行匹配,从而确定所述各个数据键值与服务器的对应关系。
7.如权利要求1-4任一项所述的方法,其特征在于,所述修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系之后,还包括:
接收外部系统针对所述目标数据键值加载的数据;
根据修改后的路由信息,确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
向所述目标服务器以及对应的冗余服务器加载该数据。
8.如权利要求5所述的方法,其特征在于,所述修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系之后,还包括:
接收外部系统针对所述目标数据键值加载的数据;
根据修改后的路由信息,确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
向所述目标服务器以及对应的冗余服务器加载该数据。
9.如权利要求6所述的方法,其特征在于,所述修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系之后,还包括:
接收外部系统针对所述目标数据键值加载的数据;
根据修改后的路由信息,确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
向所述目标服务器以及对应的冗余服务器加载该数据。
10.一种数据运算装置,其特征在于,包括:
数据量确定模块,用于根据所统计的预设分布键的各个数据键值对应的数据量以及路由信息中所述各个数据键值与服务器的对应关系,确定各个服务器对应的数据量;
数据偏斜判断模块,用于根据数据量确定模块确定的目标服务器对应的数据量,判断该目标服务器是否存在数据偏斜;
数据复制模块,用于若所述数据偏斜判断模块判断所述目标服务器存在数据偏斜,则将所述目标服务器对应的数据复制到无数据偏斜的冗余服务器;
路由管理模块,用于修改所述路由信息,使所述目标服务器对应的数据键值与所述目标服务器及冗余服务器建立对应关系,其中,所述目标服务器对应至少一个数据键值;
第一接收模块,用于接收针对目标数据键值的数据运算信息;
第一服务器确定模块,用于当所述第一接收模块接收到针对目标数据键值的数据运算信息时,根据修改后的路由信息确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
数据分配模块,用于为所述目标服务器以及对应的冗余服务器分配待处理数据,以使所述目标服务器以及对应的冗余服务器根据所述数据运算信息分别对不同的数据进行运算。
11.如权利要求10所述的装置,其特征在于,所述数据偏斜判断模块包括:
比较单元,用于将目标服务器对应的数据量与其他服务器对应的数据量进行比较;
判断单元,用于若所述比较单元的比较结果为目标服务器对应的数据量与任意一个服务器的数据量的差值达到预设阈值,则判断所述目标服务器存在数据偏斜。
12.如权利要求10所述的装置,其特征在于,若所述数据偏斜判断模块判断所述目标服务器存在数据偏斜,所述装置还包括:
冗余服务器确定模块,用于在所述各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器。
13.如权利要求11所述的装置,其特征在于,若所述数据偏斜判断模块判断所述目标服务器存在数据偏斜,所述装置还包括:
冗余服务器确定模块,用于在所述各个服务器中获取当前数据量最小的服务器作为所述目标服务器对应的冗余服务器。
14.如权利要求10-13任一项所述的装置,其特征在于,所述装置还包括:
设置模块,用于设置所述路由信息中各个数据键值与服务器的对应关系。
15.如权利要求14所述的装置,其特征在于,所述设置模块包括:
运算值获取单元,用于根据预设路由算法对所述各个数据键值进行运算,从而获得所述各个数据键值对应的运算值;
取模单元,用于对所述运算值获取单元获取的运算值取模;
匹配单元,用于将所述取模单元的取模结果与服务器的编码信息进行匹配,从而确定所述各个数据键值与服务器的对应关系。
16.如权利要求10-13任一项所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收外部系统针对所述目标数据键值加载的数据;
第二服务器确定模块,用于当所述第二接收模块接收到针对目标数据键值加载的数据时,根据修改后的路由信息确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
数据加载模块,用于向所述目标服务器以及对应的冗余服务器加载该数据。
17.如权利要求14所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收外部系统针对所述目标数据键值加载的数据;
第二服务器确定模块,用于当所述第二接收模块接收到针对目标数据键值加载的数据时,根据修改后的路由信息确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
数据加载模块,用于向所述目标服务器以及对应的冗余服务器加载该数据。
18.如权利要求15所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收外部系统针对所述目标数据键值加载的数据;
第二服务器确定模块,用于当所述第二接收模块接收到针对目标数据键值加载的数据时,根据修改后的路由信息确定所述目标数据键值所在服务器为目标服务器以及对应的冗余服务器;
数据加载模块,用于向所述目标服务器以及对应的冗余服务器加载该数据。
19.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质存储有计算机程序,所述计算机程序用于指令相关的硬件,来完成权利要求1至9任意一项所述的方法。
20.一种数据运算装置,其特征在于,所述数据运算装置包括至少一个处理器、至少一个通信总线,网络接口以及存储器,通信总线用于实现上述这些组件之间的连接通信;
其中,存储器中存储一组程序代码,且处理器用于调用存储器中存储的程序代码,以用于执行权利要求1至9任意一项所述的方法。
CN201410140151.7A 2014-04-09 2014-04-09 一种数据运算方法及装置 Active CN104978344B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410140151.7A CN104978344B (zh) 2014-04-09 2014-04-09 一种数据运算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410140151.7A CN104978344B (zh) 2014-04-09 2014-04-09 一种数据运算方法及装置

Publications (2)

Publication Number Publication Date
CN104978344A CN104978344A (zh) 2015-10-14
CN104978344B true CN104978344B (zh) 2018-11-20

Family

ID=54274859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410140151.7A Active CN104978344B (zh) 2014-04-09 2014-04-09 一种数据运算方法及装置

Country Status (1)

Country Link
CN (1) CN104978344B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110300188B (zh) * 2019-07-25 2022-03-22 中国工商银行股份有限公司 数据传输系统、方法和设备
CN111046045B (zh) * 2019-12-13 2023-09-29 中国平安财产保险股份有限公司 处理数据倾斜的方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999947A (en) * 1997-05-27 1999-12-07 Arkona, Llc Distributing database differences corresponding to database change events made to a database table located on a server computer
CN101854392A (zh) * 2010-05-20 2010-10-06 清华大学 一种基于云计算环境的个人数据管理方法
CN102298633A (zh) * 2011-09-08 2011-12-28 厦门市美亚柏科信息股份有限公司 一种分布式海量数据排重方法及系统
CN102591864A (zh) * 2011-01-06 2012-07-18 上海银晨智能识别科技有限公司 比对系统中的数据更新方法及装置
CN103026355A (zh) * 2010-03-18 2013-04-03 诺宝公司 数据库管理系统
CN103369042A (zh) * 2013-07-10 2013-10-23 中国人民解放军国防科学技术大学 一种数据处理方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7944844B2 (en) * 2008-07-10 2011-05-17 At&T Intellectual Property I, L.P. Methods and apparatus to monitor network layer functionalities

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999947A (en) * 1997-05-27 1999-12-07 Arkona, Llc Distributing database differences corresponding to database change events made to a database table located on a server computer
CN103026355A (zh) * 2010-03-18 2013-04-03 诺宝公司 数据库管理系统
CN101854392A (zh) * 2010-05-20 2010-10-06 清华大学 一种基于云计算环境的个人数据管理方法
CN102591864A (zh) * 2011-01-06 2012-07-18 上海银晨智能识别科技有限公司 比对系统中的数据更新方法及装置
CN102298633A (zh) * 2011-09-08 2011-12-28 厦门市美亚柏科信息股份有限公司 一种分布式海量数据排重方法及系统
CN103369042A (zh) * 2013-07-10 2013-10-23 中国人民解放军国防科学技术大学 一种数据处理方法和装置

Also Published As

Publication number Publication date
CN104978344A (zh) 2015-10-14

Similar Documents

Publication Publication Date Title
CN109040227B (zh) 基于区块链的业务请求响应方法、装置和计算机设备
CN105653630B (zh) 分布式数据库的数据迁移方法与装置
CN107943841A (zh) 流式数据处理方法、系统和计算机可读存储介质
JP2012079242A (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
CN109450987A (zh) 编号生成方法、装置及系统和存储介质
CN105260485B (zh) 一种数据加载的方法和装置
JP6582445B2 (ja) シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
CN106130972B (zh) 资源访问控制方法和装置
CN105471700B (zh) 一种消息处理的方法、装置和系统
CN105471893B (zh) 一种分布式等值数据流连接方法
CN109413125A (zh) 动态调节分布式系统资源的方法和装置
CN104978344B (zh) 一种数据运算方法及装置
KR20150077474A (ko) 룰 분배 서버, 이벤트 처리 시스템, 방법 및 프로그램
CN113014608B (zh) 一种流量分发控制方法、装置、电子设备及存储介质
CN106992884B (zh) 一种智能建筑业务系统的多子系统联动方法
CN108563697A (zh) 一种数据处理方法、装置和存储介质
WO2020094064A1 (zh) 性能优化方法、装置、设备及计算机可读存储介质
CN111064776A (zh) 区块链中区块的生成方法、设备及存储介质
CN103414756B (zh) 一种任务分发方法、分发节点及系统
CN107741994A (zh) 一种数据更新方法及装置
US10572486B2 (en) Data communication in a distributed data grid
JP2012038053A (ja) 計算機システム、及び、移動データ決定方法
CA2931698A1 (en) Method and apparatus for reducing load peaks in user group matching process
JP6259408B2 (ja) 分散処理システム
CN111767225B (zh) 一种云计算环境下第三方软件测试系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant