CN110287245A - 用于分布式etl任务调度执行的方法及系统 - Google Patents
用于分布式etl任务调度执行的方法及系统 Download PDFInfo
- Publication number
- CN110287245A CN110287245A CN201910401322.XA CN201910401322A CN110287245A CN 110287245 A CN110287245 A CN 110287245A CN 201910401322 A CN201910401322 A CN 201910401322A CN 110287245 A CN110287245 A CN 110287245A
- Authority
- CN
- China
- Prior art keywords
- etl task
- etl
- execution
- task
- node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 239000000284 extract Substances 0.000 title claims abstract description 9
- 230000004044 response Effects 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 3
- 241000238876 Acari Species 0.000 claims description 2
- 230000010354 integration Effects 0.000 abstract description 8
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 230000000712 assembly Effects 0.000 description 5
- 238000000429 assembly Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011158 quantitative evaluation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明的实施例提供了用于分布式ETL任务调度执行的方法和系统,其从获取的待调度执行的ETL任务包含的目标表提取该ETL任务中涉及的实体与附属表之间的关联、实体与维度表之间的关联、实体与实体之间一对多的关联;基于为每种关联预设的权重和每种关联在该ETL任务中的个数确定该ETL任务的调度优先级;以及按照调度优先级从高到低的次序将各个ETL任务分配至各执行节点。本发明实施例的技术方案中基于与ETL任务对应的业务的复杂性、待集成的业务数据的重要程度等因素将ETL任务按不同权重分配至执行节点,满足了核心数据加载的及时性和节点之间的负载均衡性,改善了数据集成的效率和资源的利用率。
Description
技术领域
本发明涉及数据仓库,尤其涉及用于ETL任务调度执行的方法及系统。
背景技术
目前,数据抽取转换加载技术(Extract-Transform-Load,ETL)是大数据环境下构建数据仓库的关键步骤之一,是将分散、异构的数据经过抽取、转换、加载集成到统一标准库的过程。数据的抽取、转换、加载步骤可以组合成一个可调度的ETL脚本作业(也可以称为ETL任务)。在大数据环境下,常常需要执行数十乃至数万个ETL任务,如何高效率的调度这些任务是构建数据仓库的重要组成部分。目前主要采用分布式集群调度方案来进行ETL任务调度,利用诸如轮询算法、先来先服务算法、Min-Min算法之类的调度算法将ETL任务分配到集群中的各个执行节点。然而由于各ETL任务执行时间不同、任务所含数据量不同、各个执行节点当前负载不同等,容易造成集群资源负载不均衡,资源利用率低等问题,从而导致数据集成效率低下。
发明内容
经发明人研究发现,在进行数据集成时,不同ETL任务涉及的业务及相关业务数据的重要性不同,如果涉及与核心业务数据相关的集成业务的ETL任务在调度执行时等待时间过长,会直接影响数据集成的效率。而现有的ETL任务调度方法并没有考虑与ETL任务对应的业务的复杂性以及待集成的业务数据的重要性。因此,本发明实施例的目的在于克服上述现有技术的缺陷,提供一种新的用于分布式ETL任务调度执行的方法及系统。
上述目的是通过以下技术方案实现的:
根据本发明实施例的第一方面,提供了一种用于分布式ETL任务调度执行的方法,该方法包括:对于获取的待调度执行的每个ETL任务,基于该ETL任务中数据加载的目标表,提取该ETL任务中涉及的实体与附属表之间的关联、实体与维度表之间的关联、实体与实体之间一对多的关联;基于为每种关联预设的权重和每种关联在该ETL任务中的个数确定该ETL任务的调度优先级;以及按照调度优先级从高到低的次序将各个ETL任务分配至各执行节点。
在本发明的一些实施例中,该方法还可包括在进行ETL任务的分配之前,查询各个执行节点的性能指标;以及根据获得的各执行节点的性能指标确定各个执行节点的当前负载,按照执行节点的当前负载从低至高选择相应执行节点来进行ETL任务的分配。
在本发明的一些实施例中,该ETL任务的调度优先级可以通过下面的公式来计算:
其中,Wl1表示实体与附属表之间的关联的权重;Wl2表示实体与维度表之间的关联的权重;Wl3表示实体与实体之间的关联的权重;其中ni表示ETL任务中出现的第i种关联的个数。
在本发明的一些实施例中,所述将各个ETL任务分配至各执行节点可以包括:
a)统计待调度执行的每个ETL任务的数据量;
b)统计每个执行节点上所有ETL任务的数据总量;
c)从待调度执行的ETL任务中选择最大数据量对应的ETL任务;
d)选择数据总量最小且当前还没有被分配ETL任务的执行节点;
e)将所选择的ETL任务分配至所选择的执行节点,并将该执行节点标记为已分配;
f)重复步骤c)-e)直到待调度执行的ETL任务被分配完毕或者直到所有执行节点都被标记为已分配;
g)检测是否还有待调度执行的ETL任务,如果有,则将所有执行节点重新标记为未分配,重复步骤c)-g)直到待调度执行的ETL任务被分配完毕。
在本发明的一些实施例中,该方法还可以包括:响应于执行节点收到新的ETL任务,将该待执行的ETL任务存入任务缓存队列中,并记录该ETL的到达时间;基于该ETL任务中的数据量来预估该ETL任务的执行时间;响应于执行节点的当前任务执行完毕,对于待执行的每个ETL任务,根据该ETL任务的等待时间和预估的执行时间确定该ETL任务的执行优先级;以及从待执行的ETL任务中选出执行优先级最高的ETL任务来执行。
在本发明的一些实施例中,基于该ETL任务中的数据量来预估该ETL任务的执行时间可包括:确定该ETL任务中的数据量;从该执行节点上最近一段时间内已完成执行的ETL任务中,筛选出一批与待执行的ETL任务具有相似数据量的ETL任务;这批ETL任务的执行时间求平均值,将所得到的平均值作为所预估的该ETL任务的执行时间。
在本发明的一些实施例中,ETL任务的执行优先级可以利用下面的公式来确定:
其中EPi表示第i个ETL任务ei的执行优先级;Tei表示该ETL任务ei的执行时间;Twi表示该ETL任务ei的等待时间,其等于当前时间减去该ETL任务到达执行节点的时间。
根据本发明实施例的第二方面,还提供了一种用于分布式ETL任务调度执行的系统,包括调度器和多个执行器,调度器用于将待调度执行的一个或多个ETL任务分配至多个执行器,执行器用于执行收到的ETL任务。其中调度器包括关系分析模块、优先级确定模块和调度模块。关系分析模块用于对于获取的待调度执行的每个ETL任务,基于该ETL任务中数据加载的目标表,提取该ETL任务中涉及的实体与附属表之间的关联、实体与维度表之间的关联、实体与实体之间一对多的关联。优先级确定模块用于基于为每种关联预设的权重和每种关联在该ETL任务中的个数确定该ETL任务的调度优先级。调度模块用于按照调度优先级从高到低的次序将各个ETL任务分配至各执行器。
在本发明的一些实施例中,所述调度器还可包括负载监控模快,用于查询各个执行器的性能指标,以及根据获得的各执行器的性能指标确定各个执行器的当前负载;以及所述调度模块还可被配置为按照执行器的当前负载从低至高选择相应执行器来进行ETL任务的分配。
在本发明的一些实施例中,所述执行器可以被配置为:响应于收到新的ETL任务,将该待执行的ETL任务存入任务缓存队列中,并记录该ETL的到达时间;基于该ETL任务中的数据量来预估该ETL任务的执行时间;响应于当前任务执行完毕,对于待执行的每个ETL任务,根据该ETL任务的等待时间和预估的执行时间确定该ETL任务的执行优先级;以及从待执行的ETL任务中选出执行优先级最高的ETL任务来执行。
本发明实施例的技术方案可以包括以下有益效果:
依据与ETL任务对应的业务的复杂性、待集成的业务数据的重要程度、节点性能等因素在节点之间进行ETL任务分配,以及还可以在各执行节点上依据ETL任务执行时间以及待处理的数据量等调整ETL任务的执行顺序,既满足了核心数据加载的及时性和各执行节点之间的负载均衡性,又在整体上提高了数据集成的效率和资源的利用率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了根据本发明一个实施例的用于分布式ETL任务调度执行的方法的流程示意图。
图2示出了根据本发明一个实施例的确定ETL任务权重的过程示意图。
图3示出了根据本发明一个实施例的执行节点上ETL任务执行过程示意图。
图4示出了根据本发明一个实施例的用于分布式ETL任务调度执行的系统的结构示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动下获得的所有其他实施例,都属于本发明保护的范围。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了根据本发明一个实施例的用于分布式ETL任务调度执行的方法的流程示意图。如图1所示,该方法主要包括:步骤S101)对于获取的待调度执行的每个ETL任务,基于该ETL任务中数据加载的目标表,提取该ETL任务中涉及的实体与附属表之间的关联、实体与维度表之间的关联、实体与实体之间的关联;步骤S102)基于为每种关联预设的权重和每种关联在该ETL任务中的个数确定该ETL任务的调度优先级;步骤S103)按照调度优先级从高到低的次序将各个ETL任务分配至执行ETL任务的执行节点。
更具体地,在步骤S101),首先可以从ETL任务资源库中获取待调度执行的多个ETL任务。ETL任务构建完成以后,通常会将ETL任务相关信息以元数据的形式存储到ETL任务资源库中。这些元数据包括ETL任务的名字、文件名、目录、状态、描述、扩展描述等元数据描述信息。ETL任务的状态可用于指示ETL任务是否已被调度执行,其具体取值可根据实际调度执行情况来进行设置或更改,例如已经被调度执行的ETL任务状态通常可设置为1,而还未被调度执行的ETL任务状态通常可设置为0。在一个实施例中,可以根据每个ETL任务的状态和创建时间来从ETL任务资源库中获取待调度执行的ETL任务。通过ETL任务的状态能够得知ETL任务是否等待被调度执行,同时根据ETL任务的创建时间,可以得到该ETL任务的等待时间。这样,在每次进行调度时,可以按等待时间长短从ETL任务资源库中选择一批未被调度执行的ETL任务。ETL任务的获取可以是基于请求响应机制或周期性进行的。例如,可以周期性地读取ETL任务资源库,从中提取待调度执行的一批ETL任务。该周期可以根据实际情况进行设置或改变,例如,可设置为2小时、1小时、0.5小时、10分钟等等。
在数据仓库中,对于实体的描述以及实体与实体之间的关系通常都是以各种各样的表格的形式来体现的。在利用ETL任务进行数据的抽取转换和加载时,主要是将从各个分布的数据源抽取所需要的数据,对其进行转换后加载到设定的目标表中。每个ETL任务中通常会包含一个或多个目标表,例如包括对实体及其属性进行描述的目标表,对实体之间一对多关系进行描述的目标表,对实体之间多对多关系进行描述的目标表(也可以称为附属表)。另外,在数据仓库中,关于实体的属性所有可能的取值通常保存在维度表中,因此ETL任务中在加载指定实体的相关数据时通常也会将与该实体关联的一个或多个维度表设置为目标表进行加载。核心业务相关的ETL任务往往会涉及的实体种类比较多,并且实体之间的关系也比较复杂和多样化。在本发明的实施例中,通过ETL任务中涉及的实体及实体与实体之间的各种关联关系来衡量该ETL任务对应业务的重要程度,并由此设置ETL任务的调度优先级(也可以称为权重)。
在步骤S101),在获取到待调度执行的ETL任务后,可以基于每个ETL任务中数据加载的目标表,提取该ETL任务中涉及的实体与附属表之间的关联、实体与维度表之间的关联、实体与实体之间一对多的关联,并统计每种关联在该ETL任务中的个数。例如,通过遍历ETL任务中的目标表可以统计到该ETL涉及的多个实体并且可以同时确定各个实体之间的关系(包括一对多的关系和多对多的关系)。其中对于具有多对多关系的两个实体,二者之间的多对多的对应关系通常以数据记录的形式保存在附属表中,这两个实体都与该附属表关联。在统计实体与附属表之间的关联的个数时,对于每个实体都需要计数一次。对于具有一对多关系的两个实体,可以直接确定这两个实体互相关联,在统计实体与实体之间的关联的个数时,对于这两个实体只需要计数一次。每个实体还可能具有多个属性,维度表用于保存每种属性的所有可能的取值,因此基于目标表中出现的实体的属性可确定该实体与哪个或哪些维度表相关联,在统计实体与维度表之间的关联的个数时,对于每个维度表需要计数一次。
在确定了每个ETL任务中涉及的实体与附属表之间的关联、实体与维度表之间的关联、实体与实体之间的关联的个数之后,在步骤S102),可对于每个待调度执行的ETL任务,基于为每种关联预设的权重和每种关联在该ETL任务中的个数确定该ETL任务的调度优先级或权重。例如,可以通过如下公式(1)进行计算:
其中,Wl1表示实体与附属表之间的关联的权重;Wl2表示实体与维度表之间的关联的权重;Wl3表示实体与实体之间的关联的权重;其中ni表示ETL任务中出现的第i种关联的个数,在公式中也可理解为Wli的个数,i为自然数。Wl1、Wl2、Wl3是根据具体的业务需求情境预先设定的权重,这些权值取值范围通常在2-10之间不等,并且这些权值的取值可根据业务变化而相应进行变化。
下面以科技管理数据集成业务为例,对上述的ETL任务权重进行举例说明。图2给出了根据本发明实施例的确定ETL任务权重的过程示意图。如图2所示,该ETL任务包括四个实体:项目,课题,单位,人员,在构建该ETL任务时,设置的要加载的目标表中,项目和课题之间是一对多的关系(图中以“1.n”指示),即对于一个项目可以有多个课题,但对于每个课题仅能对应一个项目,不能同时归属于两个项目。而项目与人员之间、项目与单位之间、课题与单位之间、课题与人员之间都是多对多的关系,例如,同一人员可以同时参加多个项目和多个课题,同一单位可以对应多个项目和多个课题。在该ETL任务中对于每个实体设置为分别加载一个维度表。从图2可以统计出在该ETL任务中,实体与附属表之间的关联有8个,实体与维度表之间的关联有4个;实体与实体之间的关联有1个,假定Wl1、Wl2、Wl3分别赋值为6、5、10,则相应地可以确定该ETL任务的权重为:
继续参考图1,步骤S103)按照经步骤S102)确定的各个ETL任务的调度优先级对待调度执行的ETL任务进行排序。例如新一批ETL任务权重分别为{2,6,8,4,10,3,9},则经过排序之后的ETL任务序列为{10,9,8,6,4,3,2}。经排序后得到按照权重从大到小依次排列的ETL任务序列,然后按照这样次序将ETL任务分配至分布式环境中的各执行节点上进行执行。
在该实施例中,通过该ETL任务中包含的目标表提取该ETL任务中实体与附属表之间的关联、实体与维度表之间的关联、实体与实体之间的关联,对于该ETL任务对应的业务的复杂性、待集成的业务数据的重要程度进行了有效的量化评估,形成了按权重大小排序的最优期待被调度的任务序列,能满足核心业务数据的及时性加载需求,改善了数据集成的效率。
又一个实施例中,在步骤S103)还可以包括获取各个执行节点的性能指标,以及基于各执行节点的性能指标,将待调度执行的ETL任务分配至各个执行节点。这是因为在将ETL任务调度分配到分布式环境下各个执行节点时,当前不同执行节点运行任务数和任务所含数据量不同,也就是同一时刻的各个执行节点的性能和当前负载是不同的,如果能根据执行节点的性能来合理控制分配给各执行节点的任务数量,不仅能保证各个执行节点乃至整个分布式环境的负载均衡,而且还能在整体上提高了任务执行的效率。因此,在步骤S103)在分配ETL任务之前,可以先查询各个执行节点的性能指标,根据获得的各执行节点的性能指标对于每个执行节点的当前负载进行等级划分,按照执行节点的当前负载从低至高排序,选择相应执行节点来进行ETL任务的分配。其中每个执行节点的当前负载可以根据所获取的该执行节点的性能指标来确定,例如,假设以CPU使用率、内存使用率作为性能指标为例,可以如下公式(2)来确定执行节点的当前负载:
其中,C为执行节点的CPU使用率;R为执行节点的内存使用率,L指示执行节点的当前负载,L越大,则指示执行节点的当前负载越小;L越小,则指示执行节点的当前负载越大。因此可按照L的取值从大到小排列来得到各执行节点的优先分配序列。在又一个实施例中,也可以通过各性能指标的加权平均来确定执行节点的当前负载,例如L=w1*C+w2*R,其中w1和w2是为性能指标C和R设定的权重,其取值在0-1之间。L越大,则指示执行节点的当前负载越大;L越小,则指示执行节点的当前负载越小。因此可按照L的取值从小到大排列来得到各执行节点的优先分配序列。应理解,使用CPU使用率、内存使用率作为性能指标确定节点的当前负载仅是举例说明,而非进行任何限定,本领域技术人员可以根据实际需求进行调整或修改。
在又一个实施例中,还可以根据所确定的各执行节点的当前负载来对各执行节点进行分类,例如采用上面公式(2)确定的L将各执行节点分为高负载节点、中负载节点、低负载节点:
也就是将分布式集群环境中的执行节点划分为三个小组,每个组由零至多个节点组成,同组的节点成员它们的负载量类似。低负载节点中的执行节点,其负载量低,当前可再接受任务执行的能力最强。应当优先考虑将ETL任务调度分配到低负载执行器节点上。若低负载节点的小组为空,则分配ETL任务到中负载节点组成的小组,以此类推。如上述低、中负载节点都为空,则说明整个分布式环境中所有执行节点当前负载都很高。如果所有执行节点长时间划分到高负载节点的小组,则需要设置报警机制来提示分布式环境长期处于高负载的情况,从而提示系统管理人员将分布式环境的性能进行提升或增加相应执行器节点的数量,以此来改善整个分布式环境的可负载能力。
在上述实施例的方案中,由低负载到高负载依次选择执行节点进行ETL任务分配,使得调度优先级高的ETL任务优先分配到当前负载低的执行节点上执行,不仅有利于各执行节点之间的负载均衡,还可改善ETL任务的执行效率。
在又一个实施例中,在步骤S103)可以基于ETL任务的数据量来将参与调度的ETL任务分配至各执行节点。不同的ETL任务涉及的数据总量不同,相应地ETL任务的执行时间也不同,如果将任务数据量大的多个ETL任务集中分配给一个或几个执行节点,那么这些执行节点上ETL任务的等待时间会变长,各执行节点的资源并不能保持有效的均衡利用。因此,在该实施例中,引入了ETL任务的数据量作为分配的参考因素,采用贪心平衡算法来进行ETL任务的分配。假设分布式集群下各个执行节点初始处理能力相同,且每个节点都可以独立工作,即不需要其他节点的辅助,E={e1,e2,e3...,en}表示新获取的一批待参与调度的相互独立的ETL任务集合,其中共有n个ETL任务,ei表示第i个任务;D={d1,d2,d3...,dn}表示n个ETL任务所含数据量的集合,其中di为第i个任务ei所含的数据量;N={n1,n2,n3...nj}表示分布式集群中执行节点的集合,共j个节点,其中ni为第i个执行器节点,dnipre表示第i个执行节点ni上已有ETL任务所含的数据量,dniaft表示当任务分配完毕后第i个执行节点ni上所有ETL任务所含的数据量,所有参与执行的执行节点上的ETL任务所含数据总量为第i个执行节点最优期待分配任务数据量Opti可表示为:
通过下面公式计算的数据量的方差表示执行节点的数据负载指数μi,则第i个执行器节点ni的数据负载指数μi可表示为:
μi=(dniaft-dnipre-Opti)2 (5)
分布式集群中执行节点总体的数据负载指数μ可表示为:
在ETL任务的分发过程中,要尽量保证集群资源的数据负载均衡,即μ相对较小。可通过定义阈值δ来限定任务分发过程中μ的最大值,如果μ超过δ,则认为该节点数据负载很重,无法接受新的任务。这样在任务分发过程中实时计算μ的值,每次选择μi<δ的节点来分配任务,从而保证集群资源负载均衡。在一个示例中,基于贪心平衡算法分配ETL任务主要包括如下步骤:
(1)初始化ETL任务集合E={e1,e2,e3...,en},ETL任务所含数据量集合D={d1,d2,d3...,dn},执行器节点集合N={n1,n2,n3...nj};
(2)对ETL任务按照数据量从大到小进行排序,存入到队列Q中,Q={q1,q2,q3,q4,...qn},其中q1为(e1,d1),q2为(e2,d2),...qn为(en,dn),d1≥d2≥dn;
(3)实时计算执行节点集合中所有执行节点的数据负载指数μ1,μ2,μ3,...μj;根据数据负载指数调整节点顺序为从小到大,达到如下效果:如有μ1<μ2<μ3<...<μj,则调整节点顺序为n1,n2,n3,...,nj;
(4)将μi<δ的节点个数赋值给变量K,表示这一次可分配执行的节点个数;如果K=0,则表明此时分布式环境负载过高,需暂时停止任务的继续分发或增设新的执行节点;
(5)对于Q中n个任务,如果n>K,则取出K个任务,依次分到K个节点,n=n-K;否则如果0<n≤K,则取出全部任务依次分发到前n个执行节点,例如e1分发到n1,e2分发到n2。如果n≤0,则说明本批所有任务均执行完毕,算法结束,否则执行(3)。
在又一个实施例中,步骤S103)可以包括a)获取各个执行节点的性能指标,并根据各执行节点的性能指标确定各执行节点的当前负载;b)基于各执行节点的当前负载将分布式环境中执行节点划分为三个组:高负载节点组、中负载节点组、低负载节点组;c)首先在低负载节点组进行任务分配,统计待调度执行的每个ETL任务的数据量和低负载节点组中各执行节点上已有ETL任务的数据量,利用上文介绍的贪心平衡算法对于低负载节点组中的执行节点分配任务;若低负载节点的小组为空且还有ETL任务需要进行分配,则利用上文介绍的贪心平衡算法继续分配剩余的ETL任务到中负载节点组中的执行节点上,以此类推。如上述低、中负载节点都为空,则说明整个分布式环境中所有执行节点当前负载都很高,还可以设置报警机制来提示分布式环境长期处于高负载的情况,从而提示系统管理人员将分布式环境的性能进行提升或增加相应执行器节点的数量,以此来改善整个分布式环境的可负载能力。在又一个实施例中,当任务分发失败时,如果失败原因是分发的目的执行节点所导致的,可以设置在一段时间内(惩罚时间)不再执行向该执行节点的任务执行请求分发操作。通过这种方式,可以在一定程度上减少任务分发的失败率。
在将ETL任务分配到各执行节点后,每个执行器节点都有一个执行队列负责存储任务,每个任务占用该队列上的一个线程资源。由于ETL任务所含数据量不同导致相应的执行时间不同。在又一个实施例中,通过平衡ETL任务的执行时间与等待时间来提高ETL任务执行效率,从而间接地改善了整个分布式环境中数据集成的效率。在该实施例中,基于ETL任务的执行时间和等待时间来设置ETL任务的执行优先级,使得执行节点按照ETL任务的执行优先级从高到低的顺序来执行ETL任务,而且所设置的ETL任务的执行优先级会随着其执行时间和等待时间而不断进行调整。下面结合图3针对某一执行节点上的ETL任务的执行过程展开叙述。
如图3所示,该过程主要包括步骤S301)响应于执行节点收到新的ETL任务,将该ETL任务存入任务缓存队列中,并记录该ETL的到达时间。步骤S302)基于该ETL任务中的数据量来预估该ETL任务的执行时间。首先获取该ETL任务中涉及的数据量,接着从该执行节点上最近一段时间内已完成执行的ETL任务中,筛选出一批与待执行的ETL任务具有相似数据量的ETL任务,通过这些选出的ETL任务的执行时间来预估该尚未执行的ETL任务的执行时间,例如对这批ETL任务的执行时间求平均值作为对待执行的ETL任务的执行时间的估计。步骤S303)响应于执行节点的当前任务执行完毕,对于待执行的每个ETL任务,根据该ETL任务的等待时间和预估的执行时间确定该ETL任务的执行优先级。假设目前执行节点上有n个ETL任务正在等待执行,设定Tei表示第i个ETL任务ei的执行时间(根据所含数据量进行估算),Twi表示第i个ETL任务ei的等待时间,则n个ETL任务在执行节点上执行时的目标函数TotalTime可表示为:
通过优先级调整ETL任务的执行次序的目的在于在该执行节点执行ETL任务的过程中,尽可能保证整个执行流程所耗费的时间最低(即TotalTime最小),也就是使Tei、Twi尽可能达到相对平衡。在实施例中,对于任务缓存队列中待执行的每个ETL任务,通过在步骤S302)预估的任务执行时间和该ETL任务的等待时间来计算该ETL任务的执行优先级。例如,采用下面的公式来确定第i个ETL任务ei的执行优先级EPi:
其中Tti表示该任务ei到达执行节点时间,可取在步骤S302)中基于ETL任务中的数据量预估的任务执行之间;而每个ETL任务的等待时间Twi可以通过下面的方式来计算:Twi=Tni-Tti,也就是每个任务的等待时间等于当前时间减去该ETL任务到达执行节点的时间。从公式(8)可以看出:EPi一定是大于1的,当Twi一定时,Tei越小,优先级EPi越高,类似短作业优先算法;当Tei一定时,Twi越大,优先级EPi越高,类似先来先服务算法;当Twi和Tei都处于不可定的状态时,这种优先级设置综合了执行节点上当前任务执行情况和任务的等待时间,达到ETL任务执行时间和等待时间整体上的相对平衡。继续参考图3,在步骤S304)从待执行的ETL任务中选出执行优先级最高的ETL任务来执行。
图4为根据本发明一个实施例的用于分布式ETL任务调度执行的系统的结构示意图。如图4所示,该系统调度器401和多个执行器402a-n(统称为402),调度器401从ETL任务资源库获取一个或多个待调度执行的ETL任务,并将其分配至分布式环境中多个执行器上进行执行。执行器402用于执行收到的ETL任务。尽管该框图以功能上分开的方式来描述组件,但这样的描述仅为了说明的目的。图中所示的组件可以任意地进行组合或被分为独立的软件、固件和/或硬件组件。而且,无论这样的组件是如何被组合或划分的,它们都可以在同一计算装置或多个计算装置上执行,其中多个计算装置可以是由一个或多个网络连接。
其中调度器401包括关系分析模块、优先级确定模块、调度模块。关系分析模块用于对于获取的待调度执行的每个ETL任务,基于该ETL任务中数据加载的目标表,提取该ETL任务中涉及的实体与附属表之间的关联、实体与维度表之间的关联、实体与实体之间一对多的关联;优先级确定模块,用于基于为每种关联预设的权重和每种关联在该ETL任务中的个数确定该ETL任务的调度优先级;调度模块,用于按照调度优先级从高到低的次序将各个ETL任务分配至各执行器402。
在又一个实施例中,调度器401还可以包括负载监控模快,用于查询各个执行器的性能指标,以及根据获得的各执行器的性能指标确定各个执行器的当前负载。其中调度模块还可以被配置为按照执行器的当前负载从低至高选择相应执行器来进行ETL任务的分配。在又一个实施例中,执行器402可以被配置为响应于收到新的ETL任务,将该待执行的ETL任务存入任务缓存队列中,并记录该ETL的到达时间;基于该ETL任务中的数据量来预估该ETL任务的执行时间;响应于当前任务执行完毕,对于待执行的每个ETL任务,如上文介绍的那样根据该ETL任务的等待时间和预估的执行时间确定该ETL任务的执行优先级;从待执行的ETL任务中选出执行优先级最高的ETL任务来执行。
在本发明的又一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序或可执行指令,当所述计算机程序或可执行指令被执行时实现如前述实施例中所述的技术方案,其实现原理类似,此处不再赘述。在本发明的实施例中,计算机可读存储介质可以是任何能够存储数据且可以被计算装置读取的有形介质。计算机可读存储介质的实例包括硬盘驱动器、网络附加存储器(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其它光学或非光学数据存储装置。计算机可读存储介质也可以包括分布在网络耦合计算机系统上的计算机可读介质,以便可以分布式地存储和执行计算机程序或指令。
本说明书中针对“各个实施例”、“一些实施例”、“一个实施例”、或“实施例”等的参考指代的是结合所述实施例所描述的特定特征、结构、或性质包括在至少一个实施例中。因此,短语“在各个实施例中”、“在一些实施例中”、“在一个实施例中”、或“在实施例中”等在整个说明书中各地方的出现并非必须指代相同的实施例。此外,特定特征、结构、或性质可以在一个或多个实施例中以任何合适方式组合。因此,结合一个实施例中所示出或描述的特定特征、结构或性质可以整体地或部分地与一个或多个其他实施例的特征、结构、或性质无限制地组合,只要该组合不是非逻辑性的或不能工作。
本说明书中“包括”和“具有”以及类似含义的术语表达,意图在于覆盖不排他的包含,例如包含了一系列步骤或单元的过程、方法、系统、产品或设备并不限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。“一”或“一个”也不排除多个的情况。另外,本申请附图中的各个元素仅仅为了示意说明,并非按比例绘制。
虽然本发明已经通过上述实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。
Claims (10)
1.一种用于分布式ETL任务调度执行的方法,包括:
对于获取的待调度执行的每个ETL任务,基于该ETL任务中数据加载的目标表,提取该ETL任务中涉及的实体与附属表之间的关联、实体与维度表之间的关联、实体与实体之间一对多的关联;
基于为每种关联预设的权重和每种关联在该ETL任务中的个数确定该ETL任务的调度优先级;
按照调度优先级从高到低的次序将各个ETL任务分配至各执行节点。
2.根据权利要求1所述的方法,还包括在进行ETL任务的分配之前,查询各个执行节点的性能指标;以及根据获得的各执行节点的性能指标确定各个执行节点的当前负载,按照执行节点的当前负载从低至高选择相应执行节点来进行ETL任务的分配。
3.根据权利要求1所述的方法,其中该ETL任务的调度优先级通过下面的公式来计算:
其中,Wl1表示实体与附属表之间的关联的权重;Wl2表示实体与维度表之间的关联的权重;Wl3表示实体与实体之间的关联的权重;其中ni表示ETL任务中出现的第i种关联的个数。
4.根据权利要求2所述的方法,所述将各个ETL任务分配至各执行节点包括:
a)统计待调度执行的每个ETL任务的数据量;
b)统计每个执行节点上所有ETL任务的数据总量;
c)从待调度执行的ETL任务中选择最大数据量对应的ETL任务;
d)选择数据总量最小且当前还没有被分配ETL任务的执行节点;
e)将所选择的ETL任务分配至所选择的执行节点,并将该执行节点标记为已分配;
f)重复步骤c)-e)直到待调度执行的ETL任务被分配完毕或者直到所有执行节点都被标记为已分配;
g)检测是否还有待调度执行的ETL任务,如果有,则将所有执行节点重新标记为未分配,重复步骤c)-g)直到待调度执行的ETL任务被分配完毕。
5.根据权利要求1所述的方法,还包括:
响应于执行节点收到新的ETL任务,将该待执行的ETL任务存入任务缓存队列中,并记录该ETL的到达时间;
基于该ETL任务中的数据量来预估该ETL任务的执行时间;
响应于执行节点的当前任务执行完毕,对于待执行的每个ETL任务,根据该ETL任务的等待时间和预估的执行时间确定该ETL任务的执行优先级;
从待执行的ETL任务中选出执行优先级最高的ETL任务来执行。
6.根据权利要求5所述的方法,其中基于该ETL任务中的数据量来预估该ETL任务的执行时间包括:
确定该ETL任务中的数据量;
从该执行节点上最近一段时间内已完成执行的ETL任务中,筛选出一批与待执行的ETL任务具有相似数据量的ETL任务;
这批ETL任务的执行时间求平均值,将所得到的平均值作为所预估的该ETL任务的执行时间。
7.根据权利要求6所述的方法,其中ETL任务的执行优先级利用下面的公式来确定:
其中EPi表示第i个ETL任务ei的执行优先级;Tei表示该ETL任务ei的执行时间;Twi表示该ETL任务ei的等待时间,其等于当前时间减去该ETL任务到达执行节点的时间。
8.一种用于分布式ETL任务调度执行的系统,包括调度器和多个执行器,调度器用于将待调度执行的一个或多个ETL任务分配至多个执行器,执行器用于执行接收到的ETL任务;其中调度器包括:
关系分析模块,用于对于获取的待调度执行的每个ETL任务,基于该ETL任务中数据加载的目标表,提取该ETL任务中涉及的实体与附属表之间的关联、实体与维度表之间的关联、实体与实体之间一对多的关联;
优先级确定模块,用于基于为每种关联预设的权重和每种关联在该ETL任务中的个数确定该ETL任务的调度优先级;
调度模块,用于按照调度优先级从高到低的次序将各个ETL任务分配至各执行器。
9.根据权利要求8所述的系统,其中所述调度器还包括负载监控模快,用于查询各个执行器的性能指标,以及根据获得的各执行器的性能指标确定各个执行器的当前负载;以及所述调度模块还被配置为按照执行器的当前负载从低至高选择相应执行器来进行ETL任务的分配。
10.根据权利要求8所述的系统,其中所述执行器被配置为:
响应于收到新的ETL任务,将该待执行的ETL任务存入任务缓存队列中,并记录该ETL的到达时间;
基于该ETL任务中的数据量来预估该ETL任务的执行时间;
响应于当前任务执行完毕,对于待执行的每个ETL任务,根据该ETL任务的等待时间和预估的执行时间确定该ETL任务的执行优先级;
从待执行的ETL任务中选出执行优先级最高的ETL任务来执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910401322.XA CN110287245B (zh) | 2019-05-15 | 2019-05-15 | 用于分布式etl任务调度执行的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910401322.XA CN110287245B (zh) | 2019-05-15 | 2019-05-15 | 用于分布式etl任务调度执行的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110287245A true CN110287245A (zh) | 2019-09-27 |
CN110287245B CN110287245B (zh) | 2021-03-19 |
Family
ID=68002128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910401322.XA Active CN110287245B (zh) | 2019-05-15 | 2019-05-15 | 用于分布式etl任务调度执行的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287245B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111063405A (zh) * | 2019-12-19 | 2020-04-24 | 南京医睿科技有限公司 | 任务调度方法、装置、设备及存储介质 |
CN111176840A (zh) * | 2019-12-20 | 2020-05-19 | 青岛海尔科技有限公司 | 分布式任务的分配优化方法和装置、存储介质及电子装置 |
CN111176810A (zh) * | 2019-12-19 | 2020-05-19 | 胡友彬 | 基于优先级的气象水文数据处理调度系统 |
CN111198757A (zh) * | 2020-01-06 | 2020-05-26 | 北京小米移动软件有限公司 | Cpu内核调度方法、cpu内核调度装置及存储介质 |
CN111399826A (zh) * | 2020-03-19 | 2020-07-10 | 北京三维天地科技股份有限公司 | 一种可视化拖拽流程图式etl在线数据交换方法和系统 |
CN111552569A (zh) * | 2020-04-28 | 2020-08-18 | 咪咕文化科技有限公司 | 系统资源调度方法、装置及存储介质 |
CN111625414A (zh) * | 2020-04-29 | 2020-09-04 | 江苏瑞中数据股份有限公司 | 一种数据转换整合软件的自动调度监控系统实现方法 |
CN111897865A (zh) * | 2020-08-13 | 2020-11-06 | 工银科技有限公司 | 一种etl工作负载的动态调整方法及装置 |
CN112231314A (zh) * | 2020-11-05 | 2021-01-15 | 深圳市丽湖软件有限公司 | 一种基于etl的质量数据评估方法 |
CN112380024A (zh) * | 2021-01-18 | 2021-02-19 | 天道金科股份有限公司 | 一种基于分布式计数的线程调度方法 |
CN113806053A (zh) * | 2021-09-24 | 2021-12-17 | 国家石油天然气管网集团有限公司华南分公司 | 一种任务调度的方法、装置、及计算机可读存储介质 |
CN114780648A (zh) * | 2022-04-19 | 2022-07-22 | 湖南长银五八消费金融股份有限公司 | 任务调度方法、装置、计算机设备、存储介质和程序产品 |
CN115145591A (zh) * | 2022-08-31 | 2022-10-04 | 之江实验室 | 一种基于多中心的医疗etl任务调度方法、系统及装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324522A (zh) * | 2013-06-20 | 2013-09-25 | 北京奇虎科技有限公司 | 对从各服务器抓取数据的任务进行调度的方法和设备 |
CN105593818A (zh) * | 2014-10-03 | 2016-05-18 | 数据梅尔公司 | 用于调度分布式工作流程任务的装置和方法 |
CN106951315A (zh) * | 2017-03-17 | 2017-07-14 | 北京搜狐新媒体信息技术有限公司 | 一种基于etl的数据任务调度方法及系统 |
CN107291544A (zh) * | 2017-08-03 | 2017-10-24 | 山东浪潮云服务信息科技有限公司 | 任务调度的方法及装置、分布式任务执行系统 |
CN107665144A (zh) * | 2016-07-29 | 2018-02-06 | 北京京东尚科信息技术有限公司 | 分布式任务的均衡调度中心、方法、系统和装置 |
CN107818407A (zh) * | 2017-10-20 | 2018-03-20 | 平安科技(深圳)有限公司 | 任务分配方法、装置、存储介质和计算机设备 |
CN108255595A (zh) * | 2018-01-16 | 2018-07-06 | 北京中关村科金技术有限公司 | 一种数据任务的调度方法、装置、设备及可读存储介质 |
CN108345501A (zh) * | 2017-01-24 | 2018-07-31 | 全球能源互联网研究院 | 一种分布式资源调度方法和系统 |
US20180293098A1 (en) * | 2017-04-10 | 2018-10-11 | Bank Of America Corporation | Digital Processing System for Event and/or Time Based Triggering Management, and Control of Tasks |
US20180300174A1 (en) * | 2017-04-17 | 2018-10-18 | Microsoft Technology Licensing, Llc | Efficient queue management for cluster scheduling |
CN108762905A (zh) * | 2018-05-24 | 2018-11-06 | 苏州乐麟无线信息科技有限公司 | 一种多任务事件的处理方法和装置 |
CN109739893A (zh) * | 2018-12-28 | 2019-05-10 | 上海连尚网络科技有限公司 | 一种元数据管理方法、设备及计算机可读介质 |
-
2019
- 2019-05-15 CN CN201910401322.XA patent/CN110287245B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324522A (zh) * | 2013-06-20 | 2013-09-25 | 北京奇虎科技有限公司 | 对从各服务器抓取数据的任务进行调度的方法和设备 |
CN105593818A (zh) * | 2014-10-03 | 2016-05-18 | 数据梅尔公司 | 用于调度分布式工作流程任务的装置和方法 |
CN107665144A (zh) * | 2016-07-29 | 2018-02-06 | 北京京东尚科信息技术有限公司 | 分布式任务的均衡调度中心、方法、系统和装置 |
CN108345501A (zh) * | 2017-01-24 | 2018-07-31 | 全球能源互联网研究院 | 一种分布式资源调度方法和系统 |
CN106951315A (zh) * | 2017-03-17 | 2017-07-14 | 北京搜狐新媒体信息技术有限公司 | 一种基于etl的数据任务调度方法及系统 |
US20180293098A1 (en) * | 2017-04-10 | 2018-10-11 | Bank Of America Corporation | Digital Processing System for Event and/or Time Based Triggering Management, and Control of Tasks |
US20180300174A1 (en) * | 2017-04-17 | 2018-10-18 | Microsoft Technology Licensing, Llc | Efficient queue management for cluster scheduling |
CN107291544A (zh) * | 2017-08-03 | 2017-10-24 | 山东浪潮云服务信息科技有限公司 | 任务调度的方法及装置、分布式任务执行系统 |
CN107818407A (zh) * | 2017-10-20 | 2018-03-20 | 平安科技(深圳)有限公司 | 任务分配方法、装置、存储介质和计算机设备 |
CN108255595A (zh) * | 2018-01-16 | 2018-07-06 | 北京中关村科金技术有限公司 | 一种数据任务的调度方法、装置、设备及可读存储介质 |
CN108762905A (zh) * | 2018-05-24 | 2018-11-06 | 苏州乐麟无线信息科技有限公司 | 一种多任务事件的处理方法和装置 |
CN109739893A (zh) * | 2018-12-28 | 2019-05-10 | 上海连尚网络科技有限公司 | 一种元数据管理方法、设备及计算机可读介质 |
Non-Patent Citations (7)
Title |
---|
JUN QING LI ET.AL: "Solving complex task scheduling by a hybrid genetic algorithm", 《PROCEEDING OF THE 11TH WORLD CONGRESS ON INTELLIGENT CONTROL AND AUTOMATION》 * |
WEI YU ET.AL: "A Task Scheduling Mechanism Based on Quartz of Power Consumption Information Acquisition System", 《2018 5TH INTERNATIONAL CONFERENCE ON INFORMATION SCIENCE AND CONTROL ENGINEERING》 * |
师金钢: "基于MapReduce架构的实时数据仓库关键技术研究", 《中国博士学位论文全文数据库信息科技辑》 * |
张晓磊: "云计算独立任务及关联任务调度算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
李磊: "ETL任务集群调度方法", 《计算机技术与发展》 * |
王荣丽: "基于云平台的测试任务调度策略的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
陈林 等编著: "《"互联网+"智慧校园技术与工程实施》", 30 September 2017, 成都:电子科技大学出版社 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111063405A (zh) * | 2019-12-19 | 2020-04-24 | 南京医睿科技有限公司 | 任务调度方法、装置、设备及存储介质 |
CN111176810A (zh) * | 2019-12-19 | 2020-05-19 | 胡友彬 | 基于优先级的气象水文数据处理调度系统 |
CN111176810B (zh) * | 2019-12-19 | 2023-04-07 | 胡友彬 | 基于优先级的气象水文数据处理调度系统 |
CN111176840A (zh) * | 2019-12-20 | 2020-05-19 | 青岛海尔科技有限公司 | 分布式任务的分配优化方法和装置、存储介质及电子装置 |
CN111176840B (zh) * | 2019-12-20 | 2023-11-28 | 青岛海尔科技有限公司 | 分布式任务的分配优化方法和装置、存储介质及电子装置 |
CN111198757A (zh) * | 2020-01-06 | 2020-05-26 | 北京小米移动软件有限公司 | Cpu内核调度方法、cpu内核调度装置及存储介质 |
CN111198757B (zh) * | 2020-01-06 | 2023-11-28 | 北京小米移动软件有限公司 | Cpu内核调度方法、cpu内核调度装置及存储介质 |
CN111399826B (zh) * | 2020-03-19 | 2020-12-01 | 北京三维天地科技股份有限公司 | 一种可视化拖拽流程图式etl在线数据交换方法和系统 |
CN111399826A (zh) * | 2020-03-19 | 2020-07-10 | 北京三维天地科技股份有限公司 | 一种可视化拖拽流程图式etl在线数据交换方法和系统 |
CN111552569B (zh) * | 2020-04-28 | 2023-10-20 | 咪咕文化科技有限公司 | 系统资源调度方法、装置及存储介质 |
CN111552569A (zh) * | 2020-04-28 | 2020-08-18 | 咪咕文化科技有限公司 | 系统资源调度方法、装置及存储介质 |
CN111625414A (zh) * | 2020-04-29 | 2020-09-04 | 江苏瑞中数据股份有限公司 | 一种数据转换整合软件的自动调度监控系统实现方法 |
CN111897865A (zh) * | 2020-08-13 | 2020-11-06 | 工银科技有限公司 | 一种etl工作负载的动态调整方法及装置 |
CN112231314A (zh) * | 2020-11-05 | 2021-01-15 | 深圳市丽湖软件有限公司 | 一种基于etl的质量数据评估方法 |
CN112380024A (zh) * | 2021-01-18 | 2021-02-19 | 天道金科股份有限公司 | 一种基于分布式计数的线程调度方法 |
CN112380024B (zh) * | 2021-01-18 | 2021-05-25 | 天道金科股份有限公司 | 一种基于分布式计数的线程调度方法 |
CN113806053A (zh) * | 2021-09-24 | 2021-12-17 | 国家石油天然气管网集团有限公司华南分公司 | 一种任务调度的方法、装置、及计算机可读存储介质 |
CN114780648A (zh) * | 2022-04-19 | 2022-07-22 | 湖南长银五八消费金融股份有限公司 | 任务调度方法、装置、计算机设备、存储介质和程序产品 |
CN115145591A (zh) * | 2022-08-31 | 2022-10-04 | 之江实验室 | 一种基于多中心的医疗etl任务调度方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110287245B (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110287245A (zh) | 用于分布式etl任务调度执行的方法及系统 | |
WO2021208546A1 (zh) | Kubernetes集群架构系统下多维资源调度方法 | |
US10664308B2 (en) | Job distribution within a grid environment using mega-host groupings of execution hosts | |
US20200104377A1 (en) | Rules Based Scheduling and Migration of Databases Using Complexity and Weight | |
US9703285B2 (en) | Fair share scheduling for mixed clusters with multiple resources | |
US20180198855A1 (en) | Method and apparatus for scheduling calculation tasks among clusters | |
CN104102543B (zh) | 一种云计算环境中负载调整的方法和装置 | |
WO2016082370A1 (zh) | 一种分布式节点组内任务调度方法及系统 | |
CN107291545A (zh) | 计算集群中多用户的任务调度方法及设备 | |
US8756309B2 (en) | Resource information collecting device, resource information collecting method, program, and collection schedule generating device | |
US20070247659A1 (en) | Print job management system | |
CN109471705A (zh) | 任务调度的方法、设备及系统、计算机设备 | |
CN103491024B (zh) | 一种面向流式数据的作业调度方法及装置 | |
US8984521B2 (en) | Computer system performance by applying rate limits to control block tenancy | |
CN110297699A (zh) | 调度方法、调度器、存储介质及系统 | |
CN104298550A (zh) | 一种面向Hadoop的动态调度方法 | |
JP6083290B2 (ja) | 分散処理システム | |
CN103699433B (zh) | 一种于Hadoop平台中动态调整任务数目的方法及系统 | |
CN110347602B (zh) | 多任务脚本执行方法及装置、电子设备及可读存储介质 | |
Castillo et al. | On the design of online scheduling algorithms for advance reservations and QoS in grids | |
CN115220916B (zh) | 视频智能分析平台的自动算力调度方法、装置及系统 | |
CN114911613A (zh) | 一种云际计算环境中跨集群资源高可用调度方法及系统 | |
CN104346220B (zh) | 一种任务调度方法与系统 | |
CN105740077B (zh) | 一种适用于云计算的任务分配方法 | |
CN106708624B (zh) | 一种多工作域计算资源的自适应调整方法 |
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 |