CN107577531A - 负载均衡方法及装置 - Google Patents
负载均衡方法及装置 Download PDFInfo
- Publication number
- CN107577531A CN107577531A CN201610526264.XA CN201610526264A CN107577531A CN 107577531 A CN107577531 A CN 107577531A CN 201610526264 A CN201610526264 A CN 201610526264A CN 107577531 A CN107577531 A CN 107577531A
- Authority
- CN
- China
- Prior art keywords
- data
- associated data
- major key
- handled
- assigned
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种用于负载均衡方法及装置,用于向多个任务分配工作载荷,所述方法包括:获取相关联的表,其中,相关联的表是指保存同一类事件相关的不同信息的表;以预设主键获取相关联的表中的关联数据,其中,关联数据是指相关联的表中具有同一主键且时间差在规定时间差范围内的数据;确定所述关联数据的数量达到预设条件;将所述关联数据按照预设分配规则分配到多个任务中处理,其中,所述任务为用于处理关联数据的执行进程,所述关联数据为所述工作载荷。本申请实现了避免数据倾斜,有效提高整体数据处理效率。
Description
技术领域
本申请涉及分布式计算领域,尤其涉及一种负载均衡方法及装置。
背景技术
在分布式平台下,当需要根据某个主键来对两个具有时间属性字段的表进行关联时,常常会出现某些主键对应的关联数据的数据量巨大,例如达到10万次量级,而某些主键对应的关联数据的数据量则只有10次以下,而同一主键对应的关联数据会分配给同一设备进行处理,因此,采用分布式架构处理不同主键对应的关联数据的数据量存在很大差异,也就是存在数据倾斜问题。该数据倾斜会导致整个计算设备运行时间变长,运行效率较低。
如图1中所示为MR(一种分布式框架)框架下处理数据流程图,图中k表示主键,a表示表T1中的数据,(k1,am)表示主键为k1的T1表中的数据am。在MR框架中,首先将一份大数据切分成各个小数据,例如,将P(1P=2014T)级别或T(1T=1024G、1G=1024M)级别的数据切分成512M(1M=1024Bit)级别的数据,业界将该数据切分阶段称为MAP阶段。如图1中在MAP阶段将表T1中的数据切分成512M的多份数据。切分后的每一份数据由具有相同处理逻辑的任务进行处理,图1中的M1~Mn即表示具有相同处理逻辑的任务所处理的切分后的数据块。MAP阶段结束后,将切分后的数据按照键值对(key/value对)的格式进行输出,该阶段称为Shuffle阶段。相同的键值对应的数据会发送到同一个任务进行处理,该后续处理阶段称之为REDUCE阶段,也就是聚集性计算处理阶段。REDUCE阶段是将相同键值的数据进行汇总、归类、合并等聚集性计算,图1中的R1~Rn表示具有相同处理逻辑的任务所处理相同键值的数据块。在该MR框架下,不同键值对应的数据量分布是不均匀的,如有的键值对应100行数据,对应的后续任务需要处理100行的数据;有的键值对应10000行数据,对应的后续任务就要处理10000行的数据,也就是存在严重的数据倾斜状况。在相同的硬件资源下后者的运行时间显然会比前者多。在更加极端的情况下,前者执行完成数小时之后后者才会完成。而若要对表T1中整个数据进行分析,需要等待所有任务的处理结果,因此由于数据倾斜导致整个MR处理时间较长,处理效率低下。
发明内容
本申请解决的技术问题之一是提供一种负载均衡方法及装置,有效解决数据倾斜导致的处理时间长,效率低等问题。
根据本申请一方面的一个实施例,提供了一种负载均衡方法,用于向多个任务分配工作载荷,所述方法包括:
获取相关联的表,其中,相关联的表是指保存同一类事件相关的不同信息的表;
以预设主键获取相关联的表中的关联数据,其中,关联数据是指相关联的表中具有同一主键且时间差在规定时间差范围内的数据;
确定所述关联数据的数量达到预设条件;
将所述关联数据按照预设分配规则分配到多个任务中处理,其中,所述任务为用于处理关联数据的执行进程,所述关联数据为所述工作载荷。
可选的,将所述关联数据按照预设分配规则分配到多个任务中处理包括:
判断所述关联数据是否在同一预设的时间段内;
若不在同一预设的时间段内,则将所述关联数据分配到第一计算设备的多个任务中处理;
若在同一预设的时间段内,则将所述关联数据分配到第二计算设备的多个任务中处理。
可选的,每个时间段设置一时间段标识。
可选的,将所述关联数据分配到第二计算设备的多个任务中处理包括:
提取所述关联数据的时间段标识;
将所述时间段标识与所述主键组成关联主键;
根据所述关联主键实现将所述关联数据分配到第二计算设备的多个任务中处理。
可选的,根据所述关联主键实现将所述关联数据分配到第二计算设备的多个任务中处理包括:
根据所述关联主键获取关联数据中具有相同关联主键的数据;
将具有相同关联主键的数据分配到第二计算设备的同一个任务中处理。
可选的,所述关联数据的数量达到预设条件包括:
所述关联数据在相关联的表中的任一表中的数据的数量达到预设第一数量阈值;或
所述关联数据的数量达到第二数量阈值。
可选的,所述方法还包括:
若所述关联数据的数量未达到预设条件,则采用第三计算设备处理所述关联数据。
根据本申请另一方面的一个实施例,提供了一种负载均衡装置,包括:
第一获取单元,用于获取相关联的表,其中,相关联的表是指保存同一类事件相关的不同信息的表;
第二获取单元,用于以预设主键获取相关联的表中的关联数据,其中,关联数据是指相关联的表中具有同一主键且时间差在规定时间差范围内的数据;
判断单元,用于确定所述关联数据的数量达到预设条件;
负载均衡单元,用于将所述关联数据按照预设分配规则分配到多个任务中处理,其中,所述任务为用于处理关联数据的执行进程,所述关联数据为所述工作载荷。
可选的,负载均衡单元被配置为:
判断所述关联数据是否在同一预设的时间段内;
若不在同一预设的时间段内,则将所述关联数据分配到第一计算设备的多个任务中处理;
若在同一预设的时间段内,则将所述关联数据分配到第二计算设备的多个任务中处理。
可选的,每个时间段设置一时间段标识。
可选的,负载均衡单元被配置为:
提取所述关联数据的时间段标识;
将所述时间段标识与所述主键组成关联主键;
根据所述关联主键实现将所述关联数据分配到第二计算设备的多个任务中处理。
可选的,所述根据所述关联主键实现将所述关联数据分配到第二计算设备的多个任务中处理包括:
根据所述关联主键获取关联数据中具有相同关联主键的数据;
将具有相同关联主键的数据分配到第二计算设备的同一个任务中处理。
可选的,所述关联数据的数量达到预设条件包括:
所述关联数据在相关联的表中的任一表中的数据的数量达到预设第一数量阈值;或
所述关联数据的数量达到第二数量阈值。
可选的,所述负载均衡单元被配置为:
若所述关联数据的数量未达到预设条件,则采用第三计算设备处理所述关联数据。
根据本申请又一方面的一个实施例,提供了一种数据倾斜防护方法,包括:
获取相关联的表,其中,相关联的表是指保存同一类事件相关的不同信息的表;
以预设主键获取相关联的表中的关联数据,其中,关联数据是指相关联的表中具有同一主键且时间差在规定时间差范围内的数据;
确定所述关联数据的数量达到预设条件;
提取所述关联数据的时间段标识;
将所述时间段标识与所述主键组成关联主键;
根据所述关联主键将所述关联数据分配到多个任务中处理,其中,所述任务为用于处理关联数据的执行进程,所述关联数据为所述工作载荷。
可选的,根据所述关联主键将所述关联数据分配到多个任务中处理包括:
根据所述关联主键获取关联数据中具有相同关联主键的数据;
将具有相同关联主键的数据分配到同一个任务中处理。
本申请实施例在处理相关联的表中的关联数据时,通过判断关联数据的数据量是否达到预设条件,若达到预设条件则将关联数据按照预设分配规则分配到多个任务中分散处理,也就是将该部分达到预设条件的异常数据分散到计算设备的不同的任务进行处理,避免了数据倾斜,有效保证了整体数据处理效率。
本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是现有技术MR框架下处理数据流程图。
图2是根据本申请一个实施例的负载均衡方法的应用环境示意图。
图3是根据本申请一个实施例的负载均衡方法的流程图。
图4是根据本申请一个实施例的采用MR1处理未达到预设数量阈值的关联数据的示意图。
图5是根据本申请一个实施例的采用第三计算设备处理关联数据的流程图。
图6是根据本申请一个实施例的采用MR3处理达到预设数量阈值的关联数据示意图。
图7是根据本申请一个实施例的负载均衡装置的结构示意图。
本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本申请,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本申请。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的。但是本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
数据倾斜:是指分布式框架下,并行的、具有相同处理逻辑的任务被分配的数据量差达到预设数据量差阈值的现象。每一分布式框架(或称为计算设备)中包含并行的多个任务。
任务:用于处理关联数据的执行进程,例如,针对MR分布式框架,所述任务可以为聚集性计算处理设备中并行执行的多个聚集性计算进程。
相关联的表:是指保存同一类事件相关的不同信息的表。
例如,具有时间属性字段的相关联的表:是指相关联的表中均包含时间属性字段。例如,其中一个表为日增量存储登录表(以下简称表一),另一个表为日增量存储登录二次验证表(以下简称表二),该两个表均为保存登录事件有关信息的表,因此该表一与表二为相关联的表。且该两个表中均包含时间属性字段“登录时间”和“登录验证时间”。
表一
表二
关联数据:是指相关联的表中具有同一主键且时间差在规定时间差范围内的数据。例如,上述表一及表二中具有同一key“用户ID”,且登录时间与登录验证时间的时间差在规定时间差范围内的数据a及数据b即为关联数据。
下面结合附图对本申请的技术方案作进一步详细描述。
图2是本申请实施例所述负载均衡方法的应用环境示意图,本申请实施例可应用于分布式平台中,如MR分布式框架环境中,该分布式框架中包含数据切分设备、分区排序设备以及聚集性计算处理设备。待处理数据经数据切分设备切分为数量级满足预设要求的多个数据块,切分后的数据块经分区排序设备进行分区排序,例如按照键值对的格式进行分区排序,分区排序设备将分区排序后的数据输出给聚集性计算处理设备,例如,按照键值对的格式输出数据,并将相同键值对的数据输出给同一个聚集性计算处理设备。聚集性计算处理设备对输入的数据进行例如汇总、归类或合并等聚集性计算。
图3是根据本申请一个实施例的负载均衡方法的流程图,用于向多个任务分配工作载荷,所述方法主要包括如下步骤:
S310、获取相关联的表;
S320、以预设主键获取相关联的表中的关联数据;
S330、确定所述关联数据的数量达到预设条件;
S340、将所述关联数据按照预设分配规则分配到多个任务中处理,其中,所述关联数据为所述工作载荷。
为进一步理解本方案,下面对上述各步骤做进一步详细介绍。
本申请实施例以分布式平台处理具有时间属性字段的相关联的表中的关联数据为例进行说明。也就是将相关联的表中的关联数据作为分布式平台的工作载荷,从而对相关联的表中的关联数据进行统计分析。则分布式平台处理所述关联数据前获取相关联的表,再从相关联的表中获取到关联数据。
步骤S310中所述获取相关联的表可从保存该两个表的数据库中获取,在获取到相关联的表后,如步骤S320中所述接收用户设置的主键,也就是通过该主键来从相关联的表中获取具有相同主键的数据。在根据预设主键从具有时间属性字段的相关联的表中获取数据后,需要根据所获取数据的时间差过滤掉时间差不在规定时间差范围内的数据,从而获得时间差在规定时间差范围内的关联数据。
假如对上述相关联的两个表(表一与表二)进行分析,在获取到表一和表二后,以预设主键“用户ID”在两个表中获取具有同一用户ID的数据(登录数据及登录验证数据),例如,用户ID为张三,则从表一中获取张三的包含登录时间的所有登录数据共200条,从表二中获取张三的包含登录验证时间的所有登录验证数据共250条。用户ID为李四,则从表一中获取李四的包含登录时间的所有登录数据共1200条,从表二中获取李四的包含登录验证时间的所有登录验证数据共900条。一般同一次登录操作的登录时间与登录验证时间的时间差不会太长,也就是该时间差会在规定时间差范围内,例如5分钟、10分钟或者15分钟范围内。假如规定时间差为10分钟,用户ID“张三”的一条登录数据a1对应的登录时间为2016.6.12的11时23分,而诸多的登录验证数据中包括时间为2016.6.12的11时25分的登录验证数据b1,以及时间为2016.6.12的12时20分的登录验证数据b2,登录数据a1与登录验证数据b1的时间差在规定时间差10分钟范围内,而登录数据a1与登录验证数据b2的时间差超过规定时间差10分钟,因此登录数据a1与登录验证数据b1为关联数据。也就是根据“用户ID”从两个表所获取的数据中时间差在规定时间差范围内的登录数据与登录验证数据为关联数据,不在规定时间差范围内的登录数据与登录验证数据为非关联数据,需要过滤掉该非关联数据。其中,关联数据中的登录数据与登录验证数据可以为多对多的关系。具体过滤方法可以为:将从表一中获取的登录数据分别与从表二中获取的登录验证数据组合,并计算组合后的每一组数据的时间差,判断该时间差是否在规定时间差范围内,若在则确定该组数据为关联数据并保留,若不在则确定该组数据为非关联数据过滤掉该组数据。在不同场景所述规定时间差的值不同,可根据实际需要设定。
或者,根据“用户ID”从两个关联的表中分别获取登录数据与登录验证数据后,针对登录数据(或登录验证数据)逐步从登录验证数据(或登录数据)中获取与之时间差在规定时间差范围内的登录验证数据(或登录数据),组成一组关联数据。
通过步骤S310及S320可以获得所述预设主键在具有时间属性字段的相关联的表中的关联数据的数量以及在所述相关联的表中的任一表中的数据的数量。
本申请实施例为解决数据倾斜的问题,将正常数据与异常数据分开处理,本实施例中所述的正常数据即为数据量低于预设数量阈值的数据,则对应的异常数据即为数据量达到预设数量阈值的数据。为实现分开处理,本申请实施例在获取到关联数据后,识别出正常数据及异常数据。步骤S330中判断所述关联数据的数量是否达到预设条件的方法包括如下至少一种:
a、判断所述关联数据在任一表中的数据的数量是否达到预设第一数量阈值,也就是判断根据所述预设主键在相关联的两个表中的任一个表中获得的数据的数量是否达到预设第一数量阈值。以上面表一及表二为例,判断以“用户ID”在表一中获取的登录数据的数量是否达到预设第一数量阈值,或者以该“用户ID”在表二中获取的登录验证数据的数量是否达到预设第一数量阈值。假如经过上述关联数据的获取过程获取到主键“张三”对应的关联数据共450条,其中,该关联数据在表一中的登录数据为200,在表二中的登录验证数据为250条,均未超过预设数量阈值500条,则可认为该用户ID“张三”对应的数据为正常数据;而以主键“李四”获取的关联数据为2100条,其中关联数据在表一中的登录数据为1200条,在表二中的登录验证数据为900条,均超出了预设数量阈值500条,则认为该用户ID“李四”对应的数据为异常数据。
b、判断所述关联数据的数量是否达到第二数量阈值。也就是在以预设主键获得关联数据(过滤掉时间差不在规定时间差范围内的数据)后,判断关联数据的总数量是否达到预设第二数量阈值。例如,根据用户ID“张三”在上述表一及表二中获得关联数据后,判断关联数据总量450条是否达到预设数量阈值1000条,未达到1000条,则可认为该用户ID“张三”对应的关联数据为正常数据,否则认为该用户ID对应的数据为异常数据。
步骤S340是将数据量达到预设条件的所述关联数据按照预设分配规则分配到多个任务中处理,以实现分散处理异常数据,加快异常数据的处理速度,从而提升整个分布式数据处理速度。
本申请实施例所述的将所述关联数据按照预设分配规则分配到多个任务中处理的方法包括:
判断所述关联数据是否在同一预设的时间段内;若不在同一预设的时间段内,则将所述关联数据分配到第一计算设备中处理;若在同一预设的时间段内,则将所述关联数据分配到第二计算设备的多个任务中处理。第一计算设备及第二计算设备均可以为分布式计算设备,从而可将关联数据并行分散处理。
本申请实施例提供的所述预设的时间段的划分方式包括但不限于:将一天的24小时划分为固定的多个时间段,每个时间段设置一时间段标识,例如,将一天的24小时每一个自然小时作为一个时间段,共划分为24个时间段;或者,将每个自然小时的半个小时作为一个时间段,共划分为48个时间段等等划分方式。
由于关联数据具有一定的时间差,有可能一组关联数据分别属于两个预设时间段。例如预设时间段划分方式为每一个自然小时为一个时间段,此时存在一组关联数据分别为登录数据和登录验证数据,有可能登录数据的登录时间为1:48,而登录验证数据的验证时间为2:03,则该组关联数据位于两个预设时间段内。本申请实施例针对该部分预设时间段边界的关联数据单独采用一个计算设备来处理。从统计角度来看,位于预设时间段边界的数据数量会相对小很多,因此采用单独的计算设备MR1处理,采用原有主键作为关联条件即可在该MR1中实现分散处理,同样不会存在严重数据倾斜问题。该MR1处理结果为result1。通过上述划分,实现将异常数据中的预设时间段边界的关联数据以及预设时间段内的关联数据分开为两个不同的计算设备来处理。
其中,对于在同一预设的时间段内的关联数据,采用第二计算设备处理的流程如图4中所示,包括如下子步骤:
S410、提取所述关联数据的时间段标识;
由于本步骤所针对的关联数据为数据量达到预设数量阈值的数据,也就是异常数据,一般这部分数据的数量巨大,如果采用同一MR处理,需要将其分配到不同的聚集性计算处理任务中,从而避免数据倾斜,并提高整体处理效率。而将其分散到不同聚集性计算处理任务中的核心是提取出该关联数据共有的、具有分散特征的特征参数,且该特征参数区别于所述主键。由前面描述可知,本申请实施例将一天的24小时划分为固定的多个时间段,该时间段具有分散性,且为关联数据所共有,因此,本申请实施例将预设时间段的时间段标识作为所述关联数据的共有的具有分散性的特征参数。
S420、将所述时间段标识与主键组成关联主键。
例如,各时间段对应的时间段标识用hr标识,第一个时间段的时间段标识为hr1,第二个时间段的时间段标识为hr2,依次类推,第24个时间段的时间段标识为hr24。关联数据原有主键为key,假设该key为“用户ID”,则组成的关联主键为“用户ID+hr”。
S430、根据所述关联主键实现将所述关联数据分配到第二计算设备的多个任务中处理。
根据所述关联主键实现将所述关联数据分配到第二计算设备的多个任务中处理包括:
根据所述关联主键获取关联数据中具有相同关联主键的数据;
将具有相同关联主键的数据分配到第二计算设备的同一个任务中处理。
如图5中所示为采用单独的MR2来处理达到预设数量阈值、且在同一预设时间段内的关联数据的示意图。图5中T1表示表一,T2表示表二,k表示某一主键,a表示登录数据,b表示登录验证数据,hr表示时间段标识,(k1,am)表示主键为k1的表一中的数据am,(k1,bn)表示主键为k1的表二中的数据bn。从图5中可以看出,在同一MR2中,同一主键k1,但不同关联主键(由于hr不同,从而k1+hr不同)的关联数据被发送到不同的聚集性计算处理任务中处理,实现了将数据量较大的异常数据分散处理,避免数据倾斜的问题,有效提高了整体数据处理的效率。经过MR2处理后得到结果result2。
其中,本申请实施例针对未达到预设条件的关联数据,采用第三计算设备处理,也就是针对正常数据采用单独的计算设备来处理,例如采用单独的分布式计算设备来处理,其中仍可以以原有的主键来实现数据的关联,将具有相同主键的关联数据分配到同一任务中处理。如图6中所示为采用单独的MR3来处理登录数据小于500条的关联数据。图6中T1表示表一,T2表示表二,k表示某一主键,a表示登录数据,b表示登录验证数据,(k1,am)表示主键为k1的表一中的数据am,(k1,bn)表示主键为k1的表二中的数据bn。从图6中可以看出,在该MR3中,仍采用主键k1来作为关联条件,同一主键k1的关联数据被发送到同一聚集性计算处理任务中处理,经过MR3处理后得到结果result1。在该MR3中处理的数据均为正常数据,排除了数据量巨大的异常数据,因此不会出现严重的数据倾斜问题。若要对相关联的表中的关联数据进行整体统计分析,最后可将result1、result2及result3通过原有主键关联在一起进行分析。
已有分布式框架中出现数据倾斜一般是由于存在异常数据导致的,正常数据的数据量会在常规范围内波动,而异常数据的数据量巨大,导致处理缓慢。本申请上述实施例将正常数据采用单独的计算设备处理,而将异常数据采用区别于处理正常数据的计算设备的计算设备的多个任务来进行分散处理,如上所述将异常数据分配到不同的MR和/或同一MR的并行的多个聚集性计算处理任务中处理,从而使得数据量巨大的异常数据被分散处理,有效提高该异常数据的处理速度,从而整体提高分布式数据处理效率。
本申请实施例还提供一种与上述负载均衡方法对应的负载均衡装置,如图7中所示为所述装置结构示意图,所述装置主要包括如下单元:
第一获取单元710,用于获取相关联的表,其中,相关联的表是指保存同一类事件相关的不同信息的表;
第二获取单元720,用于以预设主键获取相关联的表中的关联数据,其中,关联数据是指相关联的表中具有同一主键且时间差在规定时间差范围内的数据;
判断单元730,用于确定所述关联数据的数量达到预设条件;
负载均衡单元740,用于将所述关联数据按照预设分配规则分配到多个任务中处理,其中,所述任务为用于处理关联数据的执行进程,所述关联数据为所述工作载荷。
可选的,负载均衡单元740被配置为:
判断所述关联数据是否在同一预设的时间段内;
若不在同一预设的时间段内,则将所述关联数据分配到第一计算设备的多个任务中处理;
若在同一预设的时间段内,则将所述关联数据分配到第二计算设备的多个任务中处理。
可选的,每个时间段设置一时间段标识。
可选的,负载均衡单元740被配置为:
提取所述关联数据的时间段标识;
将所述时间段标识与所述主键组成关联主键;
根据所述关联主键实现将所述关联数据分配到第二计算设备的多个任务中处理。
可选的,所述根据所述关联主键实现将所述关联数据分配到第二计算设备的多个任务中处理包括:
根据所述关联主键获取关联数据中具有相同关联主键的数据;
将具有相同关联主键的数据分配到第二计算设备的同一个任务中处理。
可选的,所述关联数据的数量达到预设条件包括:
所述关联数据在相关联的表中的任一表中的数据的数量达到预设第一数量阈值;或
所述关联数据的数量达到第二数量阈值。
可选的,所述负载均衡单元740被配置为:
若所述关联数据的数量未达到预设条件,则采用第三计算设备处理所述关联数据。
综上所述,本申请实施例在处理相关联的表中的关联数据时,通过判断关联数据的数据量是否达到预设条件,若达到预设条件则将关联数据按照预设分配规则分配到多个任务中分散处理,也就是将该部分达到预设条件的异常数据分散到计算设备的不同的任务进行处理,避免了数据倾斜,有效保证了整体数据处理效率。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种负载均衡方法,用于向多个任务分配工作载荷,其特征在于,所述方法包括:
获取相关联的表,其中,相关联的表是指保存同一类事件相关的不同信息的表;
以预设主键获取相关联的表中的关联数据,其中,关联数据是指相关联的表中具有同一主键且时间差在规定时间差范围内的数据;
确定所述关联数据的数量达到预设条件;
将所述关联数据按照预设分配规则分配到多个任务中处理,其中,所述任务为用于处理关联数据的执行进程,所述关联数据为所述工作载荷。
2.如权利要求1所述的方法,其特征在于,将所述关联数据按照预设分配规则分配到多个任务中处理包括:
判断所述关联数据是否在同一预设的时间段内;
若不在同一预设的时间段内,则将所述关联数据分配到第一计算设备中处理;
若在同一预设的时间段内,则将所述关联数据分配到第二计算设备的多个任务中处理。
3.如权利要求2所述的方法,其特征在于,每个时间段设置一时间段标识。
4.如权利要求3所述的方法,其特征在于,将所述关联数据分配到第二计算设备的多个任务中处理包括:
提取所述关联数据的时间段标识;
将所述时间段标识与所述主键组成关联主键;
根据所述关联主键实现将所述关联数据分配到第二计算设备的多个任务中处理。
5.如权利要求4所述的方法,其特征在于,根据所述关联主键实现将所述关联数据分配到第二计算设备的多个任务中处理包括:
根据所述关联主键获取关联数据中具有相同关联主键的数据;
将具有相同关联主键的数据分配到第二计算设备的同一个任务中处理。
6.如权利要求1所述的方法,其特征在于,所述关联数据的数量达到预设条件包括:
所述关联数据在相关联的表中的任一表中的数据的数量达到预设第一数量阈值;或
所述关联数据的数量达到第二数量阈值。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述关联数据的数量未达到预设条件,则采用第三计算设备处理所述关联数据。
8.一种用于解决数据倾斜的装置,其特征在于,包括:
第一获取单元,用于获取相关联的表,其中,相关联的表是指保存同一类事件相关的不同信息的表;
第二获取单元,用于以预设主键获取相关联的表中的关联数据,其中,关联数据是指相关联的表中具有同一主键且时间差在规定时间差范围内的数据;
判断单元,用于确定所述关联数据的数量达到预设条件;
负载均衡单元,用于将所述关联数据按照预设分配规则分配到多个任务中处理,其中,所述任务为用于处理关联数据的执行进程,所述关联数据为所述工作载荷。
9.一种数据倾斜防护方法,其特征在于,包括:
获取相关联的表,其中,相关联的表是指保存同一类事件相关的不同信息的表;
以预设主键获取相关联的表中的关联数据,其中,关联数据是指相关联的表中具有同一主键且时间差在规定时间差范围内的数据;
确定所述关联数据的数量达到预设条件;
提取所述关联数据的时间段标识;
将所述时间段标识与所述主键组成关联主键;
根据所述关联主键将所述关联数据分配到多个任务中处理,其中,所述任务为用于处理关联数据的执行进程,所述关联数据为所述工作载荷。
10.如权利要求9所述的方法,其特征在于,根据所述关联主键将所述关联数据分配到多个任务中处理包括:
根据所述关联主键获取关联数据中具有相同关联主键的数据;
将具有相同关联主键的数据分配到同一个任务中处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610526264.XA CN107577531B (zh) | 2016-07-05 | 2016-07-05 | 负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610526264.XA CN107577531B (zh) | 2016-07-05 | 2016-07-05 | 负载均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107577531A true CN107577531A (zh) | 2018-01-12 |
CN107577531B CN107577531B (zh) | 2020-12-04 |
Family
ID=61048921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610526264.XA Active CN107577531B (zh) | 2016-07-05 | 2016-07-05 | 负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107577531B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776692A (zh) * | 2018-06-06 | 2018-11-09 | 北京京东尚科信息技术有限公司 | 用于处理信息的方法和装置 |
CN109828984A (zh) * | 2019-01-11 | 2019-05-31 | 北京明略软件系统有限公司 | 一种分析处理的方法、装置、计算机存储介质及终端 |
CN111221885A (zh) * | 2020-01-06 | 2020-06-02 | 中国银联股份有限公司 | 一种用于计算数据排名的方法和系统 |
CN113806353A (zh) * | 2020-06-12 | 2021-12-17 | 第四范式(北京)技术有限公司 | 实现时序特征抽取的方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190610B2 (en) * | 2006-10-05 | 2012-05-29 | Yahoo! Inc. | MapReduce for distributed database processing |
CN104679590A (zh) * | 2013-11-27 | 2015-06-03 | 阿里巴巴集团控股有限公司 | 分布式计算系统中的Map优化方法及装置 |
CN104731969A (zh) * | 2015-04-10 | 2015-06-24 | 北京大学深圳研究生院 | 分布式环境下海量数据连接聚集查询方法、装置和系统 |
CN104794123A (zh) * | 2014-01-20 | 2015-07-22 | 阿里巴巴集团控股有限公司 | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 |
CN105095413A (zh) * | 2015-07-09 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种解决数据倾斜的方法及装置 |
CN105426421A (zh) * | 2015-11-03 | 2016-03-23 | 武汉地大信息工程股份有限公司 | 一种时态监测数据快速可视化方法及系统 |
CN105701215A (zh) * | 2016-01-13 | 2016-06-22 | 北京中交兴路信息科技有限公司 | 基于Hadoop MapReduce的数据连接方法及装置 |
-
2016
- 2016-07-05 CN CN201610526264.XA patent/CN107577531B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190610B2 (en) * | 2006-10-05 | 2012-05-29 | Yahoo! Inc. | MapReduce for distributed database processing |
CN104679590A (zh) * | 2013-11-27 | 2015-06-03 | 阿里巴巴集团控股有限公司 | 分布式计算系统中的Map优化方法及装置 |
CN104794123A (zh) * | 2014-01-20 | 2015-07-22 | 阿里巴巴集团控股有限公司 | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 |
CN104731969A (zh) * | 2015-04-10 | 2015-06-24 | 北京大学深圳研究生院 | 分布式环境下海量数据连接聚集查询方法、装置和系统 |
CN105095413A (zh) * | 2015-07-09 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种解决数据倾斜的方法及装置 |
CN105426421A (zh) * | 2015-11-03 | 2016-03-23 | 武汉地大信息工程股份有限公司 | 一种时态监测数据快速可视化方法及系统 |
CN105701215A (zh) * | 2016-01-13 | 2016-06-22 | 北京中交兴路信息科技有限公司 | 基于Hadoop MapReduce的数据连接方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776692A (zh) * | 2018-06-06 | 2018-11-09 | 北京京东尚科信息技术有限公司 | 用于处理信息的方法和装置 |
CN109828984A (zh) * | 2019-01-11 | 2019-05-31 | 北京明略软件系统有限公司 | 一种分析处理的方法、装置、计算机存储介质及终端 |
CN109828984B (zh) * | 2019-01-11 | 2021-06-08 | 北京明略软件系统有限公司 | 一种分析处理的方法、装置、计算机存储介质及终端 |
CN111221885A (zh) * | 2020-01-06 | 2020-06-02 | 中国银联股份有限公司 | 一种用于计算数据排名的方法和系统 |
CN113806353A (zh) * | 2020-06-12 | 2021-12-17 | 第四范式(北京)技术有限公司 | 实现时序特征抽取的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107577531B (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Le et al. | Online load balancing for mapreduce with skewed data input | |
CN107577531A (zh) | 负载均衡方法及装置 | |
CN108268586B (zh) | 跨多数据表的数据处理方法、装置、介质和计算设备 | |
KR101700340B1 (ko) | 대용량 데이터의 클러스터 결과 분석 시스템 및 방법 | |
WO2013074774A4 (en) | Data clustering based on variant token networks | |
CN104424339A (zh) | 数据分析的方法、装置及系统 | |
CN104182544B (zh) | 分析数据库的维度剖析方法及装置 | |
CN102279978A (zh) | 用于图像处理的块渲染 | |
CN105224534A (zh) | 一种请求响应的方法及装置 | |
US20190236474A1 (en) | Load balancing for distributed processing of deterministically assigned data using statistical analysis of block data | |
CN106682206A (zh) | 一种大数据处理方法及系统 | |
CN110019205A (zh) | 一种数据存储、还原方法、装置及计算机设备 | |
US20160210372A1 (en) | Method and system for obtaining knowledge point implicit relationship | |
CN110502697A (zh) | 一种目标用户识别方法、装置及电子设备 | |
CN104199738A (zh) | 一种多数据处理设备协同工作方法及系统 | |
US20130013244A1 (en) | Pattern based test prioritization using weight factors | |
CN113766047A (zh) | 一种任务分组方法、装置、计算机设备及存储介质 | |
Cheng et al. | An efficient FPRAS type group testing procedure to approximate the number of defectives | |
CN110909072B (zh) | 一种数据表建立方法、装置及设备 | |
Tian et al. | A fractional-order Laplacian operator for image edge detection | |
CN105095455A (zh) | 一种数据连接优化方法和数据运算系统 | |
Elanshekhar et al. | An effective anonymization technique of big data using suppression slicing method | |
CN106446039B (zh) | 聚合式大数据查询方法及装置 | |
CN113989005A (zh) | 一种税务风险企业挖掘方法及装置 | |
US9665795B2 (en) | Method and apparatus for identifying root cause of defect using composite defect map |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211112 Address after: Room 554, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Patentee after: Taobao (China) Software Co., Ltd Address before: P.O. Box 847, 4th floor, Grand Cayman capital building, British Cayman Islands Patentee before: Alibaba Group Holdings Limited |
|
TR01 | Transfer of patent right |