CN107436913A - 用于在分布式etl作业中控制倾斜的装置及方法 - Google Patents

用于在分布式etl作业中控制倾斜的装置及方法 Download PDF

Info

Publication number
CN107436913A
CN107436913A CN201710389398.6A CN201710389398A CN107436913A CN 107436913 A CN107436913 A CN 107436913A CN 201710389398 A CN201710389398 A CN 201710389398A CN 107436913 A CN107436913 A CN 107436913A
Authority
CN
China
Prior art keywords
subregion
laggard
size
distributed
controlled
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.)
Pending
Application number
CN201710389398.6A
Other languages
English (en)
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.)
Samsung SDS Co Ltd
Original Assignee
Samsung SDS 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 Samsung SDS Co Ltd filed Critical Samsung SDS Co Ltd
Publication of CN107436913A publication Critical patent/CN107436913A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)

Abstract

本发明公开一种用于在分布式ETL作业中控制倾斜的装置及方法。根据本发明的一实施例的在分布式ETL作业中控制倾斜的装置包括:分割部,将原始数据分割而生成将要通过多个ETL(Extract、Transform、Load)任务(Task)而被分布式处理的多个分区(partition);再分割部,基于所述多个分区各自的大小来识别所述多个分区中的落后者(straggler),并基于可用容器(container)的数量来将所述落后者分割。

Description

用于在分布式ETL作业中控制倾斜的装置及方法
技术领域
本发明的实施例涉及一种用于控制在分布式ETL作业中产生的倾斜现象的技术。
背景技术
ETL(抽取(Extract)、转换(Transform)、加载(Load))指将数据从一个存储空间抽取(Extract)之后转换(Transform)并加载(Load)到其他存储空间的一系列的作业,ETL为了在彼此不同的系统之间收发大量的数据而被使用。
因此,ETL作业的需要提前处理的数据的大小已确定,而且其大小比较多样,具体为几字节(byte)乃至几太字节(terabyte)。并且,各个作业存在必须结束的结束时间(EndTime),并将实现该结束时间的遵守作为最优先的目标。
各个企业为了有效地处理上述ETL作业而具有诀窍,但是大部分从属于业务,并且大部分为基于查询优化(query tuning)或者使用者经验的最优化或手工作业。
并且,最近随着产生用于自动化的分布式处理的方法(如Hadoop),较多地尝试了在ETL领域中应用的尝试,但是由于企业所具有的数据的特性,必然会产生倾斜(Skew)现象,并且这会使ETL作业的有效的分布式处理变得困难。
此时,倾斜表示在被分布的任务(Task)中的一部分任务比其他部分的其他任务完成地明显晚时,对整个作业(Job)的所需时间带来影响的现象,并主要包括数据倾斜(Dataskew)和处理时间倾斜(Processing time skew)。
其中,数据倾斜由于输入到任务的数据的量不均匀而发生,并且在普通的分布式处理作业中将该问题集中于Reducer task而解决。其原因在于,虽然在普通的分布式处理作业中,相对均匀的量的数据被输入到Map task,但是输入到reducer task的数据的量可能根据洗牌(shuffle)算法而变得显著不同。
但是,由于ETL作业的特性,在大部分情况下不使用Reducer task,并且可能发生输入到Map task的数据不均匀的情况,因此需要一种用于防止这种数据倾斜的技术。
[现有技术文献]
[专利文献]
韩国公开专利公报第10-2012-0071980号(2012.07.03公开)
发明内容
本发明的实施例的目的在于提供用于在分布式ETL作业中控制倾斜的装置及方法。
根据本发明的一实施例的在分布式ETL作业中控制倾斜的装置包括:分割部,将原始数据分割而生成将要被多个ETL(Extract、Transform、Load)任务(task)分布式处理的多个分区(partition);再分割部,基于所述多个分区各自的大小而识别所述多个分区中的落后者(straggler),并基于可用容器(container)的数量而将所述落后者分割。
所述再分割部可以对所述多个分区各自所包含的数据的数量进行计数,并将计数的所述数据的数量为基准值以上的分区识别为所述落后者。
所述再分割部可以计算所述多个分区的数据数量的中位数或平均值,并将所述多个分区中的具有与所述中位数或平均值之差为基准值以上的数据数量的分区识别为所述落后者。
在用于执行针对所述多个分区各自的ETL任务的容器的数量小于最大可用容器的数量的情况下,所述再分割部可以将所述落后者分割。
在用于执行针对所述多个分区各自的ETL任务的容器的数量等于最大可用容器的数量的情况下,所述再分割部可以将所述多个分区中的大小最小的两个分区合并,然后将所述落后者分割。
在所述两个分区的大小之和小于所述落后者的大小的情况下,所述再分割部可以将所述两个分区合并。
所述控制倾斜的装置还可以包括如下的合并部,识别没有从所述落后者分割的分区及从所述落后者分割的分区中的大小小于基准值的分区,并将识别的所述分区与其他分区合并而生成大小为所述基准值以上的分区。
所述合并部可以对没有从所述落后者分割的分区以及从所述落后者分割的分区各自所包含的数据的数量进行计数,并识别计数的所述数据的数量小于所述基准值的分区。
所述基准值可以以如下方式被设定,使用于执行任务的容器的启动及销毁所需时间为在所述容器中执行所述任务所需的时间以下。
根据本发明的一实施例的在分布式ETL作业中控制倾斜的方法包括以下步骤:将原始数据分割而生成将要被多个ETL(Extract、Transform、Load)任务(task)分布式处理的多个分区(partition);基于所述多个分区各自的大小而识别所述多个分区中的落后者(straggler);以及基于可用容器(container)的数量而将所述落后者分割。
在进行所述分割的步骤中,可以包括以下步骤:对所述多个分区各自所包含的数据的数量进行计数;以及将计数的所述数据的数量为基准值以上的分区识别为所述落后者。
在进行所述识别的步骤中,可以包括以下步骤:计算所述多个分区的数据数量的中位数或平均值;将所述多个分区中具有与所述中位数或平均值之差为基准值以上的数据数量的分区识别为所述落后者。
在进行所述分割的步骤中,可以在用于执行针对所述多个分区各自的ETL任务的容器的数量小于最大可用容器的数量的情况下,将所述落后者分割。
在进行所述分割的步骤中,可以在用于执行针对所述多个分区各自的ETL任务的容器的数量等于最大可用容器的数量的情况下,将所述多个分区中的大小最小的两个分区合并。
在进行所述合并的步骤中,可以在所述两个分区的大小之和小于所述落后者的大小的情况下,将所述两个分区合并。
所述控制倾斜的方法还可以包括以下步骤:识别没有从所述落后者分割的分区及从所述落后者分割的分区中的大小小于基准值的分区;以及将识别的所述分区与其他分区合并而生成大小为所述基准值以上的分区。
识别所述分区的步骤可以包括以下步骤:对没有从所述落后者分割的分区以及从所述落后者分割的分区各自所包含的数据的数量进行计数;以及识别计数的所述数据的数量小于所述基准值的分区。
所述基准值可以以如下方式被设定,使用于执行任务的容器的启动及销毁所需时间为在所述容器中执行所述任务所需的时间以下。
根据本发明的一实施例的在分布式ETL作业中控制倾斜的装置包括:分割部,将原始数据分割而生成将要被多个ETL(Extract、Transform、Load)任务(task)分布式处理的多个分区(partition);合并部,识别所述多个分区中的大小小于第一基准值的分区,并将识别的所述分区与其他分区合并,而生成大小为所述第一基准值以上的分区。
所述合并部可以对所述多个分区各自所包含的数据的数量进行计数,并识别计数的所述数据的数量小于所述第一基准值的分区。
所述第一基准值可以以如下方式被设定,令用于执行针对所述多个分区各自的ETL任务的容器(container)的启动及销毁所需时间为在所述容器中执行所述ETL任务所需的时间以下。
所述控制倾斜的装置还可以包括如下的再分割部,基于合并的所述分区及所述多个分区中的没有合并的分区各自的大小来识别合并的所述分区及没有合并的所述分区中的落后者(straggler),并基于可用容器(container)的数量而将所述落后者分割。
所述再分割部可以对合并的所述分区及没有合并的所述分区各自所包含的数据的数量进行计数,并将计数的所述数据的数量为第二基准值以上的分区识别为所述落后者。
所述再分割部可以计算合并的所述分区及没有合并的所述分区的数据数量的中位数或平均值,并且将合并的所述分区及没有合并的所述分区中的、具有与所述中位数或平均值之差为第二基准值以上的数据数量的分区识别为所述落后者。
在用于执行针对合并的所述分区及没有合并的所述分区各自的ETL任务的容器的数量小于最大可用容器的数量的情况下,所述再分割部可以将所述落后者分割。
在用于执行针对合并的所述分区及没有合并的所述分区各自的ETL任务的容器的数量等于最大可用容器的数量的情况下,所述再分割部可以将所述多个分区中的大小最小的两个分区合并,然后将所述落后者分割。
在所述两个分区的大小之和小于所述落后者的大小的情况下,所述再分割部可以将所述两个分区合并。
根据本发明的一实施例的在分布式ETL作业中控制倾斜的方法包括以下步骤:将原始数据分割而生成将要被多个ETL(Extract、Transform、Load)任务分布式处理的多个分区(partition);识别所述多个分区中的大小小于第一基准值的分区;以及将识别的所述分区与其他分区合并,而生成大小为所述第一基准值以上的分区。
所述进行识别的步骤可以包括以下步骤:对所述多个分区各自所包含的数据的数量进行计数;以及识别计数的所述数据的数量小于所述第一基准值的分区。
所述第一基准值可以以如下方式被设定,使用于执行针对所述多个分区各自的ETL任务的容器(container)的启动及销毁所需时间为在所述容器中执行所述ETL任务所需的时间以下。
所述控制倾斜的方法还可以包括以下步骤:基于合并的所述分区及所述多个分区中的没有合并的分区各自的大小来识别合并的所述分区及没有合并的所述分区中的落后者(straggler);以及基于可用容器(container)的数量而将所述落后者分割。
识别所述落后者的步骤可以包括以下步骤:对合并的所述分区及没有合并的所述分区各自所包含的数据的数量进行计数;以及将计数的所述数据的数量为第二基准值以上的分区识别为所述落后者。
在识别所述落后者的步骤中,可以计算合并的所述分区及没有合并的所述分区的数据数量的中位数或平均值,并且将合并的所述分区及没有合并的所述分区中的、具有与所述中位数或平均值之差为第二基准值以上的数据数量的分区识别为所述落后者。
在进行所述分割的步骤中,可以在用于执行针对合并的所述分区及没有合并的所述分区各自的ETL任务的容器的数量小于最大可用容器的数量的情况下,将所述落后者分割。
在进行所述分割的步骤中,可以在用于执行针对合并的所述分区及没有合并的所述分区各自的ETL任务的容器的数量等于最大可用容器的数量的情况下,将所述多个分区中的大小最小的两个分区合并。
在进行速搜分割的步骤中,可以在所述两个分区的大小之和小于所述落后者的大小的情况下,将所述两个分区合并。
根据本发明的实施例,基于为了分布式ETL作业而被分割的分区的大小而识别落后者,并将识别的落后者再分割而去除,从而可以显著地减少整个ETL作业的结束时间。
进而,根据本发明的实施例,基于为了分布式ETL作业而被分割的分区的大小来将分区合并,从而可以将由于用于执行被分布的各个ETL任务容器的启动及销毁所需的时间大于实际ETL任务执行时间而产生的超出成本(over cost)减少,并据此提高整个ETL作业的效率性。
附图说明
图1是根据本发明的一实施例的分布式ETL(Extract、Transform、Load)作业中的倾斜控制装置的构成图。
图2至图5是示出由图1中示出的再分割部执行的落后者分割的一示例的图。
图6是根据本发明的追加实施例的倾斜控制装置的构成图。
图7及图8是示出由图6中示出的合并部执行的分区合并的一示例的图。
图9及图10是示出由图6中示出的合并部执行的分区合并的另一示例的图。
图11是根据本发明的另一实施例的倾斜控制装置的构成图。
图12及图13是示出由图11中示出的合并部执行的分区合并的一示例的图。
图14及图15是示出由图11中示出的合并部执行的分区合并的另一示例的图。
图16是根据本发明的追加实施例的倾斜控制装置的构成图。
图17至图20是示出由图16中示出的再分割部执行的落后者的分割的一示例的图。
图21是根据本发明的一实施例的分布式ETL作业中的倾斜控制方法的流程图。
图22是根据本发明的另一实施例的分布式ETL作业中的倾斜控制方法的流程图。
图23是根据本发明的又一实施例的分布式ETL作业中的倾斜控制方法的流程图。
图24是根据本发明的又一实施例的分布式ETL作业中的倾斜控制方法的流程图。
图25是用于将包括适合用于示例性实施例的计算装置的计算环境举例说明的框图。
符号说明
100、1100:分布式ETL环境下的倾斜控制装置
110、1110:分割部
130、1150:再分割部
150、1130:合并部
具体实施方式
以下,参考附图而对本发明的具体实施方式进行说明。以下的详细说明是为了有助于全面理解本说明书中记载的方法、装置和/或系统而提供的。然而,这仅仅局限于是示例,本发明并不局限于此。
在对本发明的实施例进行说明的过程中,如果判断为对有关本发明的公知技术的具体说明有可能对本发明的主旨造成不必要的混乱,则省略其详细说明。另外,后述的术语均为考虑到本发明中的功能而定义的术语,其可能根据使用者、运用者的意图或惯例等而不同。因此,需要以贯穿本说明书整体的内容为基础而对其下定义。在详细说明中使用的术语只用于记载本发明的实施例而并非旨在限定本发明。除非明确不同地使用,单数形态的表述包括复数形态的含义。在本说明书中,“包括”或“具有”之类的术语用于指代某种特性、数字、步骤、操作、要素及其一部分或组合,不应被解释为排除所记载项之外的一个或一个以上的其他特性、数字、步骤、操作、要素及其一部分或组合的存在或可存在性。
图1是根据本发明的一实施例的分布式ETL(Extract、Transform、Load)作业中的倾斜控制装置100的构成图。
参照图1,根据本发明的一实施例的倾斜控制装置100包括分割部110及再分割部130。
分割部110将原始数据分割而生成将要通过多个ETL任务(Task)而被分布式处理的多个分区(partition)。
此时,分区表示将要被一个ETL任务而处理的数据集合。并且,ETL任务表示被分布式处理的一个作业单位,一个ETL任务针对一个分区执行ETL作业。
以下,分区和ETL任务被解释成相同的含义。
另外,根据本发明的一实施例,分割部110可以以时间或文件为单位而将原始数据分割而生成多个分区。
例如,在已知时间值t1和t2时,分割部110可以从原始存储空间抽取存在于t1和t2之间的所有原始数据,并将时间值t1和t2之间分成预设的时间周期而分割原始数据,从而生成多个分区。
另一示例中,当被提供文件路径的目录或名录(directory)的路径时,分割部110可以从原始存储空间提取对应文件或目录内的所有文件,从而将各个文件生成为一个分区。
另外,由分割部110进行的分区的生成可以通过除了上述示例之外的多样的方法执行。例如,分割部110可以利用作为单纯数字的序列(sequence)而不是利用时间。
再分割部130可以基于由分割部110生成的多个分区各自的大小来识别多个分区中的落后者(straggler),并基于可用容器(container)的数量而将识别的落后者分割。
此时,容器表示执行任务的作业进程(process),且在下文中被解释成相同的含义。
具体地,根据本发明的一实施例,再分割部130可以对由分割部110生成的各个分区内包含的数据的数量进行计数而计算各个分区的大小。此时,为了计数而例如可以利用关系数据库(Relational Database)的计数查询(count query)或者文件系统的wc指令等。
并且,根据本发明的一实施例,再分割部130可以将由分割部110生成的多个分区中的计算出的大小为基准值以上的分区识别为落后者。
例如,再分割部130可以计算被计数的各个分区的数据数量的平均值(mean)或中位数(median)。并且,再分割部130可以将计数的各分区的数据数量与计算出的平均值或中位数之间的差为基准值以上的分区识别为落后者。
例如,再分割部130可以将满足以下数学式1的分区识别为落后者。
[数学式1]
c(pi)>(Mean|Median)×(1+k),0<i≤n,0<k
其中,Pi表示第i个分区,c(Pi)表示第i个分区的数据数量,n表示分区的数量,k表示基准值。
另外,用于识别落后者的基准值k可以被使用者设定成适当的值。
另外,根据本发明的一实施例,在识别到落后者的情况下,再分割部130可以将用于执行针对包括识别的落后者的多个分区各自的ETL任务的容器的数量与最大可用容器的数量进行比较,从而判断落后者的分割与否。此时,最大可用容器的数量可以被使用者设定。
具体地,根据本发明的一实施例,在用于执行针对包括落后者的多个分区各自的ETL任务的容器的数量小于最大可用容器的数量的情况下,再分割部130可以将识别的落后者分割。
相反,根据本发明的一实施例,在用于执行针对包括落后者的多个分区各自的ETL任务的容器的数量等于最大可用容器的数量的情况下,再分割部130可以将从分割部110生成的多个分区中的大小最小的两个分区合并而确保容器,然后将识别的落后者分割。
此时,根据本发明的一实施例,再分割部130可以将大小最小的两个分区的大小之和与识别的落后者的大小进行比较,从而在大小最小的两个分区的大小之和小于识别的落后者的大小的情况下,可以将大小小的两个分区合并,然后将识别的落后者分割。
相反,在大小最小的两个分区的大小之和大于识别的落后者的大小的情况下,再分割部130可以停止落后者的分割。
即,在此情况下,即使将大小最小的两个分区合起来而确保用于执行对于从落后者分割的分区的ETL任务的容器,也会产生大小更大的落后者,因此再分割部130可以停止识别的落后者的分割。
另外,再分割部130可以将识别的落后者分割成相同大小的两个分区,但是不必受限于此,落后者的分割可以根据实施例而以多样的方式变形。
图2至图5是示出由图示于图1的再分割部130执行的落后者分割的一示例的图。
具体地,图2示出用于对由分割部110生成的分区进行分布式处理的ETL任务。
在图2中示出的示例中,假设分配于各个任务(任务1至任务7)的分区的数据数量的平均值为250,并假设基准值k被设置成0.5。并且,假设分配于任务1的分区的数据数量为600,且分配于任务2的分区的数据数量为550。
此时,分别分配于任务1及任务2的分区的数据数量(即,c(P1)及c(P2))满足上述数学式1,因此再分割部130可以将分别分配于任务1及任务2的分区识别为落后者。
此时,用于执行各任务(任务1至任务7)的容器的数量为7个,因此在最大可用容器的数量为9的情况下,再分割部130可以如在图3中示出的示例地将识别的落后者(即,分配于任务1及任务2的分区)分割,从而将分割的落后者分别分配到任务1-1、任务1-2、任务2-1及任务2-2.
另外,与图3中示出的示例不同地,在最大可用容器的数量为7的情况下,为了将识别的落后者(分配于任务1及任务2的分区)分割,而有必要确保用于执行对从落后者分割的分区进行处理的任务的容器。
因此,在此情况下,再分割部130首先可以如在图4中示出的示例地将大小最小的两个分区(即,分配于任务6及任务7的分区)合并,从而将任务6及任务7合并成一个任务。此后,再分割部130可以将分配于任务1的分区(即,落后者)分割,从而将分割的各个分区分配到任务1-1及任务1-2。
此后,如在图5中示出的示例,再分割部130将大小最小的两个分区(即,分配于任务4及任务5的分区)合并,从而将任务4及任务5合并成一个任务。此后,再分割部130可以将分配于任务2的分区(即,落后者)分割,从而将分割的各个分区分配到任务2-1及任务2-2。
图6是根据本发明的追加实施例的倾斜控制装置的构成图。
参照图6,根据本发明的追加实施例的倾斜控制装置100包括分割部110、再分割部130及合并部150。
此时,分割部110及再分割部130是与图1中示出的构成相同的构成,因此省略对此的详细说明。
合并部150可以将被再分割部130分割的分区(即,由落后者分割的分区)及没有被再分割部130分割的分区(即,没有从落后者分割的分区)中的一部分分区合并。此时,没有被再分割部130分割的分区,例如可以包括借助分割部110生成的分区中的未借助再分割部130分割的分区及借助再分割部130合并的分区。
具体地,根据本发明的一实施例,合并部150可以在借助再分割部130的落后者分割过程结束之后,识别大小为基准值以下的分区,并将识别的分区与其他分区合并而生成大小为基准值以上的分区。
此时,基准值例如可以被设定为,用于执行ETL任务的各个容器的启动和销毁所需的时间为在各个容器中执行实际ETL任务的时间(即,借助ETL任务而处理分区的时间)以下。
例如,基准值可以被设定为满足以下数学式2及数学式3。
[数学式2]
a+b<m×t
[数学式3]
a+b<d×t,0<d<0.5
在数学式2及数学式3中,a表示容器启动所需时间,b表示容器销毁所需时间,m表示基准值,t表示容器针对各个数据的处理时间。
并且,在数学式3中,T表示在容器中执行ETL任务所需的整体时间(即,T=a+b+(n×t))。
另外,a、b及t是取决于系统的常数值,它们可以被提前测量。例如,a、b及t值可以通过将采样的数据作为对象而预先执行ETL作业的方式被测量。
并且,d可以根据任务的特性而被使用者设定为适当的值。
具体地,根据本发明的一实施例,合并部150可以对没有从落后者分割的分区以及从落后者分割的分区所分别包含的数据的数量进行计数,并识别被计数的数据的数量小于基准值m的分区。
此时,为了计数,例如可以使用关系数据库(Relational Database)的计数查询(count query)或者文件系统的wc指令等。
图7及图8是示出由图6中示出的合并部150执行的分区合并的一示例的图。
具体地,在图7及图8中示出的示例中,用黑色四边形表示的部分意味着用于执行各任务的容器的启动及销毁所需的时间。
并且,在图7中示出的示例中,任务1-1、任务1-2、任务2-1及任务2-2表示对由再分割部130分割的分区进行处理的ETL任务,任务3至任务7表示对没有被再分割部130分割的分区进行处理的ETL任务。
图7中,假设任务4至任务7为分配有大小小于基准值n的分区的ETL任务,则如在图8所图示的示例,合并部150可以将分配于任务4及任务5的分区合并而生成大小大于基准值m的分区,从而将任务4及任务5合并为一个ETL任务。
并且,合并部150可以将分配于任务6及任务7的分区合并而生成大于基准值m的分区,从而将任务6及任务7合并成一个ETL任务。
图9及图10是示出由图6中示出的合并部150执行的分区合并的另一示例的图。
并且,在图9中示出的示例中,任务1-1、任务1-2、任务2-1及任务2-2表示对由再分割部130分割的分区进行处理的ETL任务,任务3及任务6表示对没有借助再分割部130分割的分区进行处理的ETL任务。并且,任务4及任务5表示对为了确保容器而对借助再分割部130合并的分区进行处理的ETL任务。
图9中,假设任务6为分配有大小小于基准值m的分区的ETL任务,则如在图10中示出的示例,合并部150将分配于任务6的分区合并到分配于其余任务的分区中的大小最小的分区(即,分配于任务3的分区),并生成大小大于基准值m的分区,从而可以将任务3及任务6合并成一个ETL任务。
另外,在本发明的一实施例中,分割部110、再分割部130及合并部150可以在包括一个以上的处理器以及与该处理器连接的计算机可读记录介质的计算装置上实现。计算机可读记录介质可以在处理器的内部或外部,并且可以通过公知的多样的手段而连接于处理器。计算装置内的处理器可以使各个计算装置按照本说明书中描述的示例性的实施例而进行操作。例如,处理器可以执行存储于计算机可读记录介质的指令,而且存储于计算机可读记录介质的指令可以构成为,在被处理器执行的情况下,能够使计算装置执行基于本说明书中描述的示例性的实施例的操作。
图11是根据本发明的另一实施例的倾斜控制装置的构成图。参照图11,根据本发明的另一实施例的倾斜控制装置1100包括分割部1110及再分割部1130。
此时,分割部1110是与图1中示出的分割部110相同的构成,因此省略对此的详细说明。
合并部1130可以将被分割部1110分割的分区中的一部分分区合并。
具体地,根据本发明的一实施例,合并部1130可以识别借助分割部1110生成的分区中的大小为基准值m以下的分区,并将识别的分区与其他分区合并而生成大小为基准值以上的分区。
此时,基准值例如可以被设定为,用于执行ETL任务的各个容器的启动和销毁所需的时间为在各个容器中执行实际ETL任务的时间(即,借助ETL任务而处理分区的时间)以下。
例如,基准值m可以被设置成满足上述数学式2及数学式3。
另外,根据本发明的一实施例,合并部150可以对借助分割部1110生成的分区各自所包含的数据的数量进行计数,并识别计数的数据的数量小于基准值m的分区。
此时,为了计数,例如可以使用关系数据库(Relational Database)的计数查询(count query)或者文件系统的wc指令等。
图12及图13是示出由图11中示出的合并部1130执行的分区合并的一示例的图。
在图12中示出的示例中,任务1至任务7表示对借助分割部1110生成的分区进行处理的ETL任务。
图12中,假设任务4至任务7为分配有大小小于基准值m的分区的ETL任务,则如在图13中示出的示例,合并部1130可以将分配于任务4及任务5的分区进行合并而生成大小大于基准值m的分区,从而将任务4及任务5合并为一个ETL任务。
并且,合并部1130可以将分配于任务6及任务7的分区合并而生成大小大于基准值m的分区,从而将任务6及任务7合并成一个ETL任务。
图14及图15是示出由图11中示出的合并部1130执行的分区合并的另一示例的图。
图14中,任务1至任务7表示对借助分割部1110生成的分区进行处理的ETL任务。
在图14中,假设任务7为分配有大小小于基准值m的分区的ETL任务,则合并部1130如图15中示出的示例而将分配于任务7的分区合并到分配于其余任务的分区中的大小最小的分区(即,分配于任务6的分区),并生成大小大于基准值m的分区,从而可以将任务6及任务7合并成一个ETL任务。
图16是根据本发明的追加实施例的倾斜控制装置的构成图。
参照图16,根据本发明的追加实施例的倾斜控制装置1100包括分割部1110、合并部1130及再分割部1150。
在图16中示出的示例中,分割部1110及合并部1130是与图11中示出的构成相同的构成,因此省略对此的详细说明。
再分割部1150基于借助合并部1130合并的分区以及没有借助合并部1130合并的分区各自的大小来识别落后者,并基于可用容器的数量来将识别的落后者分割。
具体地,根据本发明的一实施例,再分割部1150可以对借助合并部1130合并的分区以及没有合并的分区分别所包括的数据的数量进行计数而计算各个分区的大小。此时,为了计数,例如可以使用关系数据库(Relational Database)的计数查询(count query)或者文件系统的wc指令等。
另外,根据本发明的一实施例,再分割部1150可以将计算的大小为基准值k以上的分区识别为落后者。
例如,再分割部1150可以将满足上述数学式1的分区识别为落后者。
另外,根据本发明的一实施例,在落后者被识别的情况下,再分割部1150可以将用于执行针对包括落后者的多个分区各自的ETL任务的容器的数量与最大可用容器的数量进行比较,从而判断落后者的分割与否。此时,最大可用容器的数量可以被使用者设定。
具体地,根据本发明的一实施例,在用于执行针对包括落后者的多个分区各自的ETL任务的容器的数量小于最大可用容器的数量的情况下,再分割部1150可以将识别的落后者分割。
相反,根据本发明的一实施例,在用于执行针对包括落后者的多个分区各自的ETL任务的容器的数量等于最大可用容器的数量的情况下,再分割部1150可以将大小最小的两个分区合并而确保容器,然后将识别的落后者分割。
此时,根据本发明的一实施例,再分割部1150可以将大小最小的两个分区的大小之和与识别的落后者的大小进行比较,而在大小最小的两个分区的大小之和小于识别的落后者的大小的情况下,可以将大小小的两个分区合并,然后将识别的落后者分割。
相反,在大小最小的两个分区的大小之和为识别的落后者的大小以上的情况下,再分割部1150可以不合并两个分区而停止落后者的分割。
另外,再分割部1150可以将识别的落后者分割成相同大小的两个分区,但是不必受限于此,落后者的分割可以根据实施例而以多样的方式变形。
图17至图20是示出由图16中示出的再分割部1150执行的落后者的分割的一示例的图。
在图17中,任务1至任务3表示对没有借助合并部1130合并的分区进行处理的ETL任务,任务4及任务5表示对借助合并部1130合并的分区进行处理的ETL任务。
具体地,在图17中示出的示例中,假设分配于各个任务的分区的数据数量的平均值为250,且基准值k为0.5。并且,假设分配于任务1的分区的数据数量为600,且分配于任务2的分区的数据数量为550。
此时,分别分配于任务1及任务2的分区的数据数量(即,c(P1)及c(P2))满足数学书1,因此再分割部1150可以将分别分配于任务1及任务2的分区识别为落后者。
此时,用于执行各任务的容器的数量为5个,因此在最大可用容器的数量为7的情况下,再分割部1150可以如图18所示的示例而将识别的落后者(即,分配于任务1及任务2的分区)分割,从而将分割的落后者分别分配到任务1-1、任务1-2、任务2-1及任务2-2.
另外,与图18中示出的示例不同地,在最大可用容器的数量为5的情况下,为了将识别的落后者(分配于任务1及任务2的分区)分割,而有必要确保用于执行将从落后者分割的分区处理的任务的容器。
因此,在此情况下,再分割部1150首先可以如图19所示的示例而将大小最小的两个分区(即,分配于任务4及任务5的分区)合并而将任务4及任务5合并成一个任务。此后,再分割部1150可以将分配于任务1的分区(即,落后者)分割而将分割的各个分区分配到任务1-1及任务1-2。
此后,再分割部1150如图20所示的示例而将大小最小的两个分区(即,在图18中合并的分区及分配于任务3的分区)合并,而将任务3和在图18中合并的任务(即,任务4及任务5)合并成一个任务。此后,再分割部1150可以将分配于任务2的分区(即,落后者)分割而将分割的各个分区分配到任务2-1及任务2-2。
另外,在本发明的一实施例中,分割部1110、合并部1130及再分割部1150可以在包括一个以上的处理器以及与该处理器连接的计算机可读记录介质的计算装置上实现。计算机可读记录介质可以在处理器的内部或外部,并且可以通过公知的多样的手段而连接于处理器。计算装置内的处理器可以使各个计算装置按照本说明书中描述的示例性的实施例而进行操作。例如,处理器可以执行存储于计算机可读记录介质的指令,而且存储于计算机可读记录介质的指令可以构成为,在被处理器执行的情况下,能够使计算装置执行基于本说明书中描述的示例性的实施例的操作。
图21是根据本发明的一实施例的分布式ETL作业中的倾斜控制方法的流程图。
图21中示出的方法例如可以被图1中示出的倾斜控制装置100执行。
参照图21,倾斜控制装置100将原始数据分割而生成将要通过多个ETL任务而被分布式处理的多个分区(2110)。
此后,倾斜控制装置100将各个分区的大小计数(2120)。
此后,倾斜控制装置100基于计算的各个分区的大小来判断多个分区中的落后者的存在与否(2130)。
此时,根据本发明的一实施例,倾斜控制装置100可以将大小为基准值k以上的分区识别为落后者。
另外,在存在落后者的情况下,倾斜控制装置100判断用于执行针对包括落后者的多个分区各自的ETL任务的容器的数量是否与最大可用容器的数量相同(2140)。
此时,在小于最大可用容器的数量的情况下,倾斜控制装置100将识别的落后者分割(2170)。
相反,在与最大可用容器相同的情况下,倾斜控制装置100判断大小最小的两个分区的大小和是否为识别的落后者的大小以上(2150)。
此时,在大小之和为识别的落后者的大小以上的情况下,倾斜控制装置100停止识别的落后者的分割。
相反,在大小之和小于识别的落后者的大小的情况下,倾斜控制装置100将大小最小的两个分区合并(2160),并将识别的落后者分割(2170)。
此后,倾斜控制装置100可以将2120步骤至2170步骤重复执行,此时,在2120步骤中可以只针对在2170步骤中分割或在2160步骤中合并的分区的大小进行计数,且其余分区的大小可以使用之前计数的值。
图22是根据本发明的另一实施例的分布式ETL作业中的倾斜控制方法的流程图。
图22中示出的方法例如可以借助在图6中示出的倾斜控制装置100执行。
参照图22,倾斜控制装置100将原始数据分割而生成将要通过多个ETL任务而被分布式处理的多个分区(2210)。
此后,倾斜控制装置100识别生成的多个分区中的落后者,并将识别的落后者分割(2220)。此时,2220步骤例如可以与图21中示出的2120步骤至2170步骤相同地执行。
此后,倾斜控制装置100将各个分区的大小计数(2230)。
此后,倾斜控制装置100判断是否存在计数的大小小于基准值m的分区(2240)。
此时,在存在小于基准值m的分区的情况下,倾斜控制装置100将小于基准值m的分区与其他分区结合而生成大于基准值m的分区(2250)。
此后,倾斜控制装置100反复执行2230步骤至2250步骤,直到不存在小于基准值m的分区为止。此时,根据实施例,在2230步骤中可以只计算在2240步骤中合并的分区的大小。
图23是根据本发明的又一实施例的分布式ETL作业中的倾斜控制方法的流程图。
图23中示出的方法例如可以借助在图11中示出的倾斜控制装置1100执行。
参照图23,倾斜控制装置1100将原始数据分割而生成将要通过多个ETL任务而被分布式处理的多个分区(2310)。
此后,倾斜控制装置1100将各个分区的大小计数(2320)。
此后,倾斜控制装置1100判断是否存在计数的大小小于基准值m的分区(2330)。
此时,在存在小于基准值m的分区的情况下,倾斜控制装置1100将小于基准值m的分区与其他分区合并而生成大于基准值m的分区(2340)。
此后,倾斜控制装置1100反复执行2320步骤至2340步骤,直到不存在小于基准值的分区为止。此时,根据实施例,在2320步骤中可以只计算在2340步骤中合并的分区的大小,且其余分区的大小可以使用之前计数的值。
图24是根据本发明的又一实施例的分布式ETL作业中的倾斜控制方法的流程图。
图24中示出的方法例如可以借助在图16中示出的倾斜控制装置1100执行。
参照图24,倾斜控制装置1100将原始数据分割而生成将要通过多个ETL任务而被分布式处理的多个分区(2410)。
此后,倾斜控制装置1100识别生成的多个分区中的大小小于基准值m的分区,并将识别的分区与其他分区合并而生成大小为基准值以上的分区(2420)。此时,2420步骤例如可以与图23中示出的2320步骤至2340步骤相同地执行。
此后,倾斜控制装置1100将各个分区的大小计数(2430)。
此后,倾斜控制装置1100基于计算的各个分区的大小来判断落后者的存在与否(2440)。此时,根据本发明的一实施例,倾斜控制装置1110可以将大小为基准值k以上的分区识别为落后者。
另外,在存在落后者的情况下,倾斜控制装置1100判断用于执行针对包括落后者的多个分区各自的ETL任务的容器的数量是否与最大可用容器的数量相同(2450)。
此时,在小于最大可用容器的数量的情况下,倾斜控制装置1100将识别的落后者分割(2480)。
相反,在与最大可用容器相同的情况下,倾斜控制装置1100判断大小最小的两个分区的大小和是否为识别的落后者的大小以上(2460)。
此时,在大小之和为识别的落后者的大小以上的情况下,倾斜控制装置1100结束识别的落后者的分割。
相反,在大小之和小于识别的落后者的大小的情况下,倾斜控制装置1100将大小最小的两个分区合并(2470),并将识别的落后者分割(2480)。
此后,倾斜控制装置1100可以将2430步骤至2480步骤反复执行,此时,在2430步骤中可以只针对在2480步骤中分割或在2470步骤中合并的分区的大小进行计数,且其余分区的大小可以使用之前计数的值。
另外,在图20至图24中示出的流程图中将上述方法分为多个步骤而进行了记载,但是至少一部分步骤可以交换顺序而被执行,或者与其他步骤结合而一起执行,或者被省略,或者被划分为细分的步骤而执行,或者可以添加未示出的一个以上的步骤而执行。
图25是用于举例说明包括适合用于示例性实施例的计算装置的计算环境的框图。在图示的实施例中,各个组件可以具有除了以下记载的内容以外的不同的功能及能力,并且除了以下记载的内容以外还可以包括额外的组件。
图示的计算环境10包括计算装置12。在一实施例中,计算装置12例如可以是构成倾斜控制装置100的一个以上的组件,如分割部110、再分割部130或者合并部150。另一实施例中,计算装置12例如可以是构成倾斜控制装置1100的一个以上的组件,如分割部1110、合并部1130或者再分割部1150。计算装置12包含至少一个处理器14、计算机可读存储介质16以及通信总线(bus)18。处理器14可使计算装置12根据上文中所提到的示例性的实施例而操作。例如,处理器14可执行存储于计算机可读存储介质16的一个以上的程序。所述一个以上的程序可以包含一个以上的计算机可执行指令,所述计算机可执行指令可构成为:在由处理器14来执行的情况下,使计算装置12执行根据示例性的实施例的操作。
计算机可读存储介质16以能够存储计算机可执行指令乃至程序代码、程序数据和/或其他适合的形式的信息的方式构成。存储于计算机可读存储介质16中的程序20包含可由处理器14执行的指令集。在一实施例中,计算机可读存储介质16可以是存储器(随机存取存储器等易失性存储器、非易失性存储器或者这些存储器的适当的组合)、一个以上的磁盘存储设备、光盘存储设备、闪速存储设备、除此之外的可由计算装置12访问并能够存储所期望的信息的其他形式的存储介质或者这些的适当的组合。
通信总线18用于将包括处理器14、计算机可读存储介质16的计算装置12的其他多样的组件相互连接。
计算装置12还可以包含提供用于一个以上的输入输出装置24的接口的一个以上的输入输出接口22以及一个以上的网络通信接口26。输入输出接口22以及网络通信接口26连接到通信总线18。输入输出装置24可以通过输入输出接口22而连接到计算装置12的其他组件。示例性的输入输出装置24可以包括:指点装置(鼠标或者触控板(track pad)等)、键盘、触摸输入装置(触摸板或者触摸屏等)、语音或者声音输入装置、多样的种类的传感器装置和/或拍摄装置等的输入装置;和/或诸如显示装置、打印机、扬声器和/或网卡(networkcard)等的输出装置。示例性的输入输出装置24可以作为用于构成计算装置12的一组件而被包含在计算装置12的内部,也可以作为区别于计算装置12的独立的装置而连接到计算装置12。以上,对本发明的具有代表性的实施例进行了详细的说明,然而在本发明所属的技术领域中具有基本知识的人员可以理解上述的实施例可在不脱离本发明的范围的限度内实现多种变形。因此,本发明的权利范围不应局限于上述的实施例,本发明的权利范围需要根据权利要求书的范围以及与该权利要求书均等的范围来确定。

Claims (36)

1.一种在分布式ETL作业中控制倾斜的装置,包括:
分割部,将原始数据分割而生成将要通过多个ETL任务而被分布式处理的多个分区;
再分割部,基于所述多个分区各自的大小来识别所述多个分区中的落后者,并基于可用容器的数量来将所述落后者分割。
2.如权利要求1所述的在分布式ETL作业中控制倾斜的装置,其中,
所述再分割部对所述多个分区各自所包含的数据的数量进行计数,并将计数的所述数据的数量为基准值以上的分区识别为所述落后者。
3.如权利要求1所述的在分布式ETL作业中控制倾斜的装置,其中,
所述再分割部计算所述多个分区的数据数量的中位数或平均值,并将所述多个分区中的具有与所述中位数或平均值之差为基准值以上的数据数量的分区识别为所述落后者。
4.如权利要求1所述的在分布式ETL作业中控制倾斜的装置,其中,
在用于执行针对所述多个分区各自的ETL任务的容器的数量小于最大可用容器的数量的情况下,所述再分割部将所述落后者分割。
5.如权利要求1所述的在分布式ETL作业中控制倾斜的装置,其中,
在用于执行针对所述多个分区各自的ETL任务的容器的数量等于最大可用容器的数量的情况下,所述再分割部将所述多个分区中的大小最小的两个分区合并,然后将所述落后者分割。
6.如权利要求5所述的在分布式ETL作业中控制倾斜的装置,其中,
在所述两个分区的大小之和小于所述落后者的大小的情况下,所述再分割部将所述两个分区合并。
7.如权利要求1所述的在分布式ETL作业中控制倾斜的装置,其中,还包括:
合并部,识别没有从所述落后者分割的分区及从所述落后者分割的分区中的大小小于基准值的分区,并将识别的所述分区与其他分区合并而生成大小为所述基准值以上的分区。
8.如权利要求7所述的在分布式ETL作业中控制倾斜的装置,其中,
所述合并部对没有从所述落后者分割的分区以及从所述落后者分割的分区各自所包含的数据的数量进行计数,并识别计数的所述数据的数量小于所述基准值的分区。
9.如权利要求7所述的在分布式ETL作业中控制倾斜的装置,其中,
所述基准值以如下方式被设定,令用于执行任务的容器的启动及销毁所需时间为在所述容器中执行所述任务所需的时间以下。
10.一种在分布式ETL作业中控制倾斜的方法,包括以下步骤:
将原始数据分割而生成将要通过多个ETL任务而被分布式处理的多个分区;
基于所述多个分区各自的大小来识别所述多个分区中的落后者;以及
基于可用容器的数量来将所述落后者分割。
11.如权利要求10所述的在分布式ETL作业中控制倾斜的方法,其中,
所述进行分割的步骤包括以下步骤:
对所述多个分区各自所包含的数据的数量进行计数;以及
将计数的所述数据的数量为基准值以上的分区识别为所述落后者。
12.如权利要求10所述的在分布式ETL作业中控制倾斜的方法,其中,
进行所述识别的步骤包括以下步骤:
计算所述多个分区的数据数量的中位数或平均值;
将所述多个分区中具有与所述中位数或平均值之差为基准值以上的数据数量的分区识别为所述落后者。
13.如权利要求10所述的在分布式ETL作业中控制倾斜的方法,其中,
在进行所述分割的步骤中,在用于执行针对所述多个分区各自的ETL任务的容器的数量小于最大可用容器的数量的情况下,将所述落后者分割。
14.如权利要求10所述的在分布式ETL作业中控制倾斜的方法,其中,
在进行所述分割的步骤中,在用于执行针对所述多个分区各自的ETL任务的容器的数量等于最大可用容器的数量的情况下,将所述多个分区中的大小最小的两个分区合并。
15.如权利要求14所述的在分布式ETL作业中控制倾斜的方法,其中,
在进行所述合并的步骤中,在所述两个分区的大小之和小于所述落后者的大小的情况下,将所述两个分区合并。
16.如权利要求10所述的在分布式ETL作业中控制倾斜的方法,其中,还包括以下步骤:
识别没有从所述落后者分割的分区及从所述落后者分割的分区中的大小小于基准值的分区;以及
将识别的所述分区与其他分区合并而生成大小为所述基准值以上的分区。
17.如权利要求16所述的在分布式ETL作业中控制倾斜的方法,其中,
识别所述分区的步骤包括以下步骤:
对没有从所述落后者分割的分区以及从所述落后者分割的分区各自所包含的数据的数量进行计数;以及
识别计数的所述数据的数量小于所述基准值的分区。
18.如权利要求16所述的在分布式ETL作业中控制倾斜的方法,其中,
所述基准值以如下方式被设定,使用于执行任务的容器的启动及销毁所需时间为在所述容器中执行所述任务所需的时间以下。
19.一种在分布式ETL作业中控制倾斜的装置,包括:
分割部,将原始数据分割而生成将要通过多个ETL任务而被分布式处理的多个分区;
合并部,识别所述多个分区中的大小小于第一基准值的分区,并将识别的所述分区与其他分区合并而生成大小为所述第一基准值以上的分区。
20.如权利要求19所述的在分布式ETL作业中控制倾斜的装置,其中,
所述合并部对所述多个分区各自所包含的数据的数量进行计数,并识别计数的所述数据的数量小于所述第一基准值的分区。
21.如权利要求19所述的在分布式ETL作业中控制倾斜的装置,其中,
所述第一基准值以如下方式被设定,令用于执行针对所述多个分区各自的ETL任务的容器的启动及销毁所需时间为在所述容器中执行所述ETL任务所需的时间以下。
22.如权利要求19所述的在分布式ETL作业中控制倾斜的装置,其中,还包括:
再分割部,基于合并的所述分区及所述多个分区中的没有合并的分区各自的大小来识别合并的所述分区及没有合并的所述分区中的落后者,并基于可用容器的数量来将所述落后者分割。
23.如权利要求22所述的在分布式ETL作业中控制倾斜的装置,其中,
所述再分割部对合并的所述分区及没有合并的所述分区各自所包含的数据的数量进行计数,并将计数的所述数据的数量为第二基准值以上的分区识别为所述落后者。
24.如权利要求22所述的在分布式ETL作业中控制倾斜的装置,其中,
所述再分割部计算合并的所述分区及没有合并的所述分区的数据数量的中位数或平均值,并且将合并的所述分区及没有合并的所述分区中的、具有与所述中位数或平均值之差为第二基准值以上的数据数量的分区识别为所述落后者。
25.如权利要求22所述的在分布式ETL作业中控制倾斜的装置,其中,
在用于执行针对合并的所述分区及没有合并的所述分区各自的ETL任务的容器的数量小于最大可用容器的数量的情况下,所述再分割部将所述落后者分割。
26.如权利要求22所述的在分布式ETL作业中控制倾斜的装置,其中,
在用于执行针对合并的所述分区及没有合并的所述分区各自的ETL任务的容器的数量等于最大可用容器的数量的情况下,所述再分割部将所述多个分区中的大小最小的两个分区合并,然后将所述落后者分割。
27.如权利要求26所述的在分布式ETL作业中控制倾斜的装置,其中,
在所述两个分区的大小之和小于所述落后者的大小的情况下,所述再分割部将所述两个分区合并。
28.一种在分布式ETL作业中控制倾斜的方法,包括以下步骤:
将原始数据分割而生成将要通过多个ETL任务而被分布式处理的多个分区;
识别所述多个分区中的大小小于第一基准值的分区;以及
将识别的所述分区与其他分区合并而生成大小为所述第一基准值以上的分区。
29.如权利要求28所述的在分布式ETL作业中控制倾斜的方法,其中,
进行所述识别的步骤包括以下步骤:
对所述多个分区各自所包含的数据的数量进行计数;以及
识别计数的所述数据的数量小于所述第一基准值的分区。
30.如权利要求28所述的在分布式ETL作业中控制倾斜的方法,其中,
所述第一基准值以如下方式被设定,令用于执行针对所述多个分区各自的ETL任务的容器的启动及销毁所需时间为在所述容器中执行所述ETL任务所需的时间以下。
31.如权利要求28所述的在分布式ETL作业中控制倾斜的方法,其中,还包括以下步骤:
基于合并的所述分区及所述多个分区中的没有合并的分区各自的大小来识别合并的所述分区及没有合并的所述分区中的落后者;以及
基于可用容器的数量来将所述落后者分割。
32.如权利要求31所述的在分布式ETL作业中控制倾斜的方法,其中,
识别所述落后者的步骤包括以下步骤:
对合并的所述分区及没有合并的所述分区各自所包含的数据的数量进行计数;以及
将计数的所述数据的数量为第二基准值以上的分区识别为所述落后者。
33.如权利要求31所述的在分布式ETL作业中控制倾斜的方法,其中,
在识别为所述落后者的步骤中,计算合并的所述分区及没有合并的所述分区的数据数量的中位数或平均值,并且将合并的所述分区及没有合并的所述分区中的、具有与所述中位数或平均值之差为第二基准值以上的数据数量的分区识别为所述落后者。
34.如权利要求31所述的在分布式ETL作业中控制倾斜的方法,其中,
在进行所述分割的步骤中,在用于执行针对合并的所述分区及没有合并的所述分区各自的ETL任务的容器的数量小于最大可用容器的数量的情况下,将所述落后者分割。
35.如权利要求31所述的在分布式ETL作业中控制倾斜的方法,其中,
在进行所述分割的步骤中,在用于执行针对合并的所述分区及没有合并的所述分区各自的ETL任务的容器的数量等于最大可用容器的数量的情况下,将所述多个分区中的大小最小的两个分区合并。
36.如权利要求35所述的在分布式ETL作业中控制倾斜的方法,其中,
在进行所述分割的步骤中,在所述两个分区的大小之和小于所述落后者的大小的情况下,将所述两个分区合并。
CN201710389398.6A 2016-05-27 2017-05-27 用于在分布式etl作业中控制倾斜的装置及方法 Pending CN107436913A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0065325 2016-05-27
KR1020160065325A KR20170133913A (ko) 2016-05-27 2016-05-27 분산 etl 작업에서 스큐 제어를 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
CN107436913A true CN107436913A (zh) 2017-12-05

Family

ID=60418014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710389398.6A Pending CN107436913A (zh) 2016-05-27 2017-05-27 用于在分布式etl作业中控制倾斜的装置及方法

Country Status (3)

Country Link
US (1) US20170344607A1 (zh)
KR (1) KR20170133913A (zh)
CN (1) CN107436913A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102016405B1 (ko) 2017-12-07 2019-09-02 넷마블 주식회사 데이터 처리 시스템 및 방법
US11354330B2 (en) * 2018-12-14 2022-06-07 Sisense Ltd. System and method for partitioning data based on authorization rules
KR102249350B1 (ko) 2019-08-23 2021-05-07 넷마블 주식회사 데이터 처리 시스템 및 방법

Also Published As

Publication number Publication date
KR20170133913A (ko) 2017-12-06
US20170344607A1 (en) 2017-11-30

Similar Documents

Publication Publication Date Title
Salloum et al. Random sample partition: a distributed data model for big data analysis
CN110956272B (zh) 实现数据处理的方法和系统
US20200211106A1 (en) Method, apparatus, and device for training risk management models
Heimel et al. Self-tuning, gpu-accelerated kernel density models for multidimensional selectivity estimation
EP3179415B1 (en) Systems and methods for a multi-core optimized recurrent neural network
KR102225308B1 (ko) 컨볼루션 신경망 내 필터 프루닝 장치 및 방법
CN105074724B (zh) 使用列式数据库中的直方图进行有效查询处理
WO2017190004A1 (en) Differentially private iteratively reweighted least squares
US8074219B2 (en) Order preservation in data parallel operations
US20140101167A1 (en) Creation of Inverted Index System, and Data Processing Method and Apparatus
CN105095247B (zh) 符号数据分析方法和系统
US20150100543A1 (en) Data analysis method, data analysis device, and storage medium storing processing program for same
CN107436913A (zh) 用于在分布式etl作业中控制倾斜的装置及方法
US11176480B2 (en) System and method for partitioning models in a database
Arnaiz-González et al. MR-DIS: democratic instance selection for big data by MapReduce
US11726970B2 (en) Incremental transfer of database segments
Madyatmadja et al. Comparative study of data mining model for credit card application scoring in bank
US11107187B2 (en) Graph upscaling method for preserving graph properties
CN108491774A (zh) 对视频中的多个目标进行跟踪标注的方法和装置
US20150254106A1 (en) Non-transitory computer-readable recording medium recording processing program, processing apparatus, and processing method
US20040220920A1 (en) Edit distance string search
CN109522273A (zh) 一种实现数据写入的方法及装置
CN107690635A (zh) 数据保留框架
CN106682047A (zh) 一种数据导入方法以及相关装置
CN113544683B (zh) 数据一般化装置、数据一般化方法、程序

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20171205

WD01 Invention patent application deemed withdrawn after publication