CN112084014A - 一种数据处理方法、装置、设备及介质 - Google Patents
一种数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112084014A CN112084014A CN202010793561.7A CN202010793561A CN112084014A CN 112084014 A CN112084014 A CN 112084014A CN 202010793561 A CN202010793561 A CN 202010793561A CN 112084014 A CN112084014 A CN 112084014A
- Authority
- CN
- China
- Prior art keywords
- etl
- subtask
- target
- target etl
- subtasks
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 230000001419 dependent effect Effects 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims description 48
- 238000004891 communication Methods 0.000 claims description 43
- 230000036578 sleeping time Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 15
- 230000005059 dormancy Effects 0.000 claims description 15
- 230000007958 sleep Effects 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 6
- 239000002699 waste material Substances 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 5
- 238000004140 cleaning Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
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
- 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
-
- 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
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
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)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种数据处理方法、装置、设备及介质,用以解决当出现前向依赖的ETL子任务运行故障时,目标ETL子任务一直占用调度线程不运行,造成资源浪费的问题。由于本发明实施例中预设有退出条件,当根据获取到的每个其他ETL子任务对应的运行状态,确定目标ETL子任务满足退出条件时,控制该目标ETL子任务退出调度线程,从而可以在目标ETL子任务前向依赖的其他ETL子任务运行故障时,避免该目标ETL子任务一直占用调度线程也不运行的情况发生,减少了资源浪费。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、设备及介质。
背景技术
数据仓库技术(Extract-Transform-Load,ETL)用来描述将数据从来源端经过摘取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)至目的端的过程,即从数据源摘取出所需的数据,经过数据清洗,过滤掉可能错误的数据,最终按照预先定义好的数据仓库模型,将清洗后的数据加载到数据仓库中。因此,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子任务退出调度线程。
进一步地,所述根据每个所述其他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子任务对应的通讯方式;
确定所述目标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子任务停止休眠的第二时间,则确定当前时间满足预设的获取条件。
进一步地,所述获取单元,还用于获取所述目标ETL子任务对应的通讯方式;
所述装置还包括:
通信单元,用于确定所述目标ETL子任务满足退出条件之后,将所述目标ETL子任务退出调度线程的通知信息通过所述通讯方式发送。
本发明实施例还提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一所述数据处理方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一所述数据处理方法的步骤。
由于本发明实施例中预设有退出条件,当根据获取到的每个其他ETL子任务对应的运行状态,确定目标ETL子任务满足退出条件时,控制该目标ETL子任务退出调度线程,从而可以在目标ETL子任务前向依赖的其他ETL子任务运行故障时,避免该目标ETL子任务一直占用调度线程也不运行的情况发生,减少了资源浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1本发明实施例提供的一种数据处理过程示意图;
图2为本发明实施例提供的数据处理过程的总体架构示意图;
图3为本发明实施例提供的具体的数据处理流程示意图;
图4为本发明实施例提供的一种数据处理装置的结构示意图;
图5为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
为了减少资源的浪费,本发明实施例提供了一种数据处理方法、装置、设备及介质。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图1本发明实施例提供的一种数据处理过程示意图,该过程包括:
S101:当确定目标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子任务对应的运行状态。
需要说明的是,目标ETL子任务前向依赖的其他ETL子任务可以是1个,也可以是多个。
S102:根据每个所述其他ETL子任务对应的运行状态,判断所述目标ETL子任务是否满足退出条件。
当进行数据处理的电子设备获取到目标ETL子任务前向依赖的每个其他ETL子任务对应的运行状态之后,进行相应的处理,从而确定目标ETL子任务是否满足退出条件。
在本发明实施例中,为了减少目标ETL子任务长期占用调度线程不运行造成的资源浪费,预设有退出条件。当基于上述实施例获取到目标ETL子任务前向依赖的每个其他ETL子任务对应的运行状态之后,根据每个其他ETL子任务对应的运行状态,确定目标ETL子任务是否满足退出条件。
在一种可能的实施方式中,该退出条件可以是该目标ETL子任务前向依赖的其他ETL子任务对应的运行状态不为运行成功。具体的,根据每个其他ETL子任务对应的运行状态,确定存在任一其他ETL子任务对应的运行状态不为运行成功,则确定该目标ETL子任务满足退出条件;否则,确定该目标ETL子任务不满足退出条件。
例如,某一目标ETL子任务A前向依赖的其他ETL子任务分别为B、C、D,获取到的其他ETL子任务B、C、D分别对应的运行状态为正在运行、运行成功、运行成功,其中,其他ETL子任务B对应的运行状态不为运行成功,确定目标ETL子任务A满足预退出条件。
S103:若所述目标ETL子任务满足所述退出条件,则控制所述目标ETL子任务退出调度线程。
当基于上述实施例获取到目标ETL子任务是否满足退出条件的判断结果之后,基于该判断结果,进行相应的处理,从而实现准确地控制目标ETL子任务。
具体实施中,若确定目标ETL子任务满足退出条件,说明该目标ETL子任务前向依赖的其他ETL子任务可能运行故障,例如延迟、运行失败等,则为了避免该目标ETL子任务长期占用调度线程不运行的情况,控制该目标ETL子任务退出调度线程。
需要说明的是,在本发明实施例中,ETL子任务的运行状态包括未启动、启动、正在运行、未运行已退出、运行成功、运行失败。
在一种可能的实施方式中,若确定目标ETL子任务不满足退出条件,说明该目标ETL子任务前向依赖的其他ETL子任务都运行成功了,则控制该目标ETL子任务运行。
由于本发明实施例中预设有退出条件,当根据获取到的每个其他ETL子任务对应的运行状态,确定目标ETL子任务满足退出条件时,控制该目标ETL子任务退出调度线程,从而可以在目标ETL子任务前向依赖的其他ETL子任务运行故障时,避免该目标ETL子任务一直占用调度线程也不运行的情况发生,减少了资源浪费。
实施例2:
为了减少目标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子任务运行故障,则确定该目标ETL子任务满足退出条件。
例如,某一目标ETL子任务A前向依赖的其他ETL子任务分别为B、C、D,获取到的其他ETL子任务B、C、D分别对应的运行状态为运行失败、运行成功、运行成功,其中,其他ETL子任务B对应的运行状态为运行失败,确定目标ETL子任务A满足退出条件,控制目标ETL子任务A退出调度线程。
在另一种可能的实施方式中,所述根据每个所述其他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子任务一定是无法运行的,则无需再根据目标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子任务已休眠了3分钟,则已休眠时长为3,预设的已休眠时长的最大值为10分钟,则时长阈值为10,也可以是表示为时长是预设单位时长的倍数,比如:预设单位时长为2分钟,当前目标ETL子任务已休眠了4分钟,则已休眠时长为2,预设的已休眠时长的最大值为10分钟,则时长阈值为5等。其中,预设的单位时长可以是任意不大于已休眠时长的最大值的时长。具体实施中,在设置已休眠时长和时长阈值的表示方式时,可以根据实际需求进行灵活设置,在此不做具体限定。
例如,预设的时长阈值为30min,某一目标ETL子任务A前向依赖的其他ETL子任务分别为B、C、D,其他ETL子任务B、C、D分别对应的运行状态为正在运行、运行成功、运行成功,目标ETL子任务A的已休眠时长为30,确定每个其他ETL子任务对应的运行状态均不为运行失败、存在其他ETL子任务B对应的运行状态为未完成运行,并且该目标ETL子任务A的已休眠时长30达到预设的时长阈值30,说明目标ETL子任务A满足退出条件,则控制目标ETL子任务A退出调度线程。
需要说明的是,在设置时长阈值时,可以根据场景的不同,设置不同的值。当希望减少目标ETL子任务占用调度线程的时间,可以将该值设置的小一些;当希望避免频繁出现目标ETL子任务退出调度线程的情况,则可以将该值设置的大一些。具体实施中可以根据实际需求进行灵活设置,在此不做具体限定。
在具体实施过程中,为了更好的减少资源浪费,可以将上述的两种退出条件进行结合,即在每次获取到每个其他ETL子任务对应的运行状态之后,若确定获取到的任一其他ETL子任务对应的运行状态为运行失败,则确定目标ETL子任务满足退出条件,或,若每个其他ETL子任务对应的运行状态均不为运行失败、存在任一其他ETL子任务对应的运行状态为未完成运行,且目标ETL子任务的已休眠时长达到预设的时长阈值,也确定目标ETL子任务满足退出条件。
仍以上述为例,若获取到的其他ETL子任务B、C、D分别对应的运行状态为运行失败、运行成功、正在运行,目标ETL子任务A的已休眠时长为20,其中,其他ETL子任务B对应的运行状态为运行失败,则确定该目标ETL子任务A满足退出条件,控制目标ETL子任务A退出调度线程。
在本发明实施例中,每个ETL子任务在运行状态发生变化时,会主动将自身的运行状态发送给查询配置信息的电子设备,以使查询配置信息的电子设备将该ETL子任务的标识信息与其对应的运行状态对应保存,或者根据接收到的运行状态对保存的该ETL子任务对应的运行状态进行更新,以方便后续目标ETL子任务可以查询到前向依赖的每个其他ETL子任务对应的运行状态。
进一步地,为了方便前向依赖于该目标ETL子任务的ETL子任务查询该目标ETL子任务的运行状态,当目标ETL子任务退出调度线程时,会将未运行已退出的运行状态发送至查询配置信息的电子设备,以使其根据接收到的未运行已退出的运行状态,对保存的该目标ETL子任务对应的运行状态进行更新。
在一种可能的实施方式中,由于退出条件的不同,未运行已退出的运行状态可以分为因前向依赖运行失败退出、和因前向依赖未完成退出两种。当任一其他ETL子任务对应的运行状态为运行失败,则该目标ETL子任务退出程序时的运行状态为因前向依赖运行失败退出;当每个其他ETL子任务对应的运行状态均不为运行失败、存在任一其他ETL子任务对应的运行状态为未完成运行,且目标ETL子任务的已休眠时长达到预设的时长阈值,则该目标ETL子任务退出程序时的运行状态为因前向依赖未完成退出。
由于本发明实施例预设的退出条件可以为确定任一其他ETL子任务对应的运行状态为运行失败,也可以为每个所述其他ETL子任务对应的运行状态均不为运行失败、存在任一其他ETL子任务对应的运行状态为未完成运行,且目标ETL子任务的已休眠时长达到预设的时长阈值,当然也可以为上述两种退出条件的结合,从而可以减少目标ETL子任务一直挂载在调度线程中也不运行,造成资源死锁的情况的发生,使进行数据处理的电子设备后续可以及时根据目标ETL子任务是否满足退出条件,准确地控制调度线程中目标ETL子任务。
实施例3:
为了避免频繁出现目标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子任务停止休眠。
进一步地,当基于上述实施例控制目标ETL子任务进入预设时长的休眠之后,为了方便后续准确地对目标ETL子任务进行控制,还需要对目标ETL子任务的已休眠时长进行更新。具体的,所述控制所述目标ETL子任务进入预设时长的休眠之后,所述方法还包括:
对保存的所述目标ETL子任务的已休眠时长进行更新。
在一种可能的实施方式中,当该已休眠时长表示为目标ETL子任务已休眠时长的具体数值,则在更新当前保存的目标ETL子任务的已休眠时长时,根据当前保存的已休眠时长与预设时长的和,对保存的已休眠时长进行更新。
在另一种可能的实施方式中,当已休眠时长表示为目标ETL子任务休眠时长是预设单位时长的倍数,则在更新当前保存的目标ETL子任务的已休眠时长时,根据当前保存的已休眠时长加1后的值,对保存的已休眠时长进行更新。
此外,时长阈值还可以表示为目标ETL子任务进入预设时长的休眠的最大次数,已休眠时长则表示为当前目标ETL子任务进入预设时长的休眠的次数。因此,在更新当前保存的目标ETL子任务的已休眠时长时,根据当前保存的已休眠时长加1后的值,对保存的已休眠时长进行更新,即对当前目标ETL子任务进入预设时长的休眠的次数进行更新。
实施例4:
为了方便进行后续的数据处理,在上述各实施例的基础上,在本发明实施例中,所述获取每个所述其他ETL子任务对应的运行状态包括:
若确定当前时间满足预设的获取条件,则获取每个所述其他ETL子任务对应的运行状态。
在本发明实施例中,为了方便进行后续的数据处理,预设有获取条件。当确定当前时间是否满足预设的获取条件时,获取目标ETL子任务前向依赖的每个其他ETL子任务对应的运行状态。当确定当前时间满足预设的获取条件时,则生成携带有该其他ETL子任务的标识信息的状态请求信息,并发送至查询配置信息的电子设备,以获取每个其他ETL子任务对应的运行状态。
其中,预设的获取条件可以是当前时间与目标ETL子任务对应的启动时间的差值,是否为预设时间间隔的整数倍。
比如,预设的时间间隔为2,当前时间为16点34分,某目标ETL子任务900对应的启动时间为16点28分,确定当前时间16点30分与目标ETL子任务900对应的启动时间16点28分的差值为6,该差值2是预设时间间隔2分钟的3倍,确定当前时间满足预设的获取条件,则获取该目标ETL子任务900前向依赖的其他ETL子任务889、888、899分别对应的运行状态。
仍以上述为例,若当前时间为16点37分,确定当前时间16点37分与目标ETL子任务900对应的启动时间16点28分的差值为9,该差值9不是预设时间间隔2的整数倍,确定当前时间不满足预设的获取条件。
在实际应用中,当目标ETL子任务获取到第一信息中携带的其他ETL子任务的标识信息,或者是该目标ETL子任务停止休眠时,一般会获取其他ETL子任务对应的运行状态。因此,在本发明实施例中,所述确定当前时间满足预设的获取条件,包括:
若当前时间为获取到每个所述其他ETL子任务的标识信息时的第一时间,则确定当前时间满足预设的获取条件;或
若当前时间为所述目标ETL子任务停止休眠的第二时间,则确定当前时间满足预设的获取条件。
在一种可能的实施方式中,当获取到查询配置信息的电子设备反馈的第一信息后,解析出该第一信息中携带的每个其他ETL子任务的标识信息的时间,即为获取到每个其他ETL子任务的标识信息时的时间(为了方便描述,记为第一时间)。具体的,若确定当前时间为第一时间,则确定当前时间满足预设的获取条件,生成携带有其他ETL子任务的标识信息的状态请求信息,并发送至查询配置信息的电子设备,以获取其他ETL子任务对应的运行状态。
在另一种可能的实施方式中,在上述实施例中,目标ETL子任务会进入预设时长的休眠,当每次目标ETL子任务休眠了预设时长后,目标ETL子任务会停止休眠,并生成携带有该其他ETL子任务的标识信息的状态请求信息,并发送至查询配置信息的电子设备,以获取其他ETL子任务对应的运行状态。因此,若确定当前时间为目标ETL子任务停止休眠的时间(为了方便描述,记为第二时间),则确定当前时间满足预设的获取条件。
实施例5:
为了方便负责目标ETL子任务的工作人员及时了解到目标ETL子任务的运行状态,在上述各实施例的基础上,在本发明实施例中,所述方法还包括:
获取所述目标ETL子任务对应的通讯方式;
确定所述目标ETL子任务满足退出条件之后,所述方法还包括:
将所述目标ETL子任务退出调度线程的通知信息通过所述通讯方式发送。
在实际应用场景中,可能出现目标ETL子任务退出了调度线程之后,运行故障的其他ETL子任务经过工作人员的检查和维护后,可以运行成功了,则此时需要负责目标ETL子任务的工作人员重新将该目标ETL子任务加入到调度线程中。而负责目标ETL子任务的工作人员如果不知道该目标ETL子任务已经退出了调度线程的情况下,则后续将无法及时把该目标ETL子任务重新加入到调度线程中。
基于此,在本发明实施例中,工作人员还在任一ETL子任务对应的配置信息中设置了负责该ETL子任务的工作人员的通讯方式,即该ETL子任务对应的通讯方式。其中,该通讯方式可以是短信、邮箱等,也可以是应用推送消息等,只要可以及时联系到负责该ETL子任务的工作人员的通讯方式均可以应用于本发明实施例中,具体实施中可以根据需求进行灵活设置,在此不作具体限定。
具体实施中,在确定目标ETL子任务是否满足退出条件之前,获取该目标ETL子任务对应的通讯方式。若后续确定目标ETL子任务满足退出条件,则可以将目标ETL子任务退出调度线程的通知信息通过获取的通讯方式发送,以及时通知负责该目标ETL子任务的工作人员。
例如,通讯方式以邮箱为例,当确定目标ETL子任务A满足退出条件,则将“目标ETL子任务A未运行,已退出调度线程”的通知信息通过邮箱发送,以及时通知负责该目标ETL子任务A的工作人员。
在一种可能的实施方式中,为了可以提高工作人员的用户体验,使其可以获取到目标ETL子任务更精确地信息,可以根据退出条件的不同,设置不同的通知信息。具体的,当任一其他ETL子任务对应的运行状态为运行失败,确定目标ETL子任务满足退出条件时,则通过通讯方式,将该目标ETL子任务因前向依赖的其他ETL子任务运行失败而退出调度线程的通知信息发送给通讯方式对应的工作人员。
当每个其他ETL子任务对应的运行状态均不为运行失败、存在任一其他ETL子任务对应的运行状态为未运行完成,且目标ETL子任务的已休眠时长未达到预设的时长阈值时,确定目标ETL子任务满足退出条件,则通过通讯方式,将该目标ETL子任务因前向依赖的其他ETL子任务长时间未完成运行而退出调度线程的通知信息发送给通讯方式对应的工作人员。
此外,为了能够运行目标ETL子任务,在本发明实施例中,在任一ETL子任务对应的配置信息中还设置了该ETL子任务对应的运行条件。当确定每个其他ETL子任务对应的运行状态均满足预设的目标ETL子任务对应的运行条件,则控制该目标ETL子任务运行。
其中,该运行条件可以是在目标ETL子任务启动前预设时间段内,每个其他ETL子任务均有运行,且最后一次运行的运行状态均为运行成功,比如:目标ETL子任务启动前的两小时内,每个其他ETL子任务均有运行,且最后一次运行的运行状态均为运行成功,也可以是在预设时间之后,每个其他ETL子任务均有运行,且最后一次运行的运行状态均为运行成功,比如:9月17号0点之后,每个其他ETL子任务均有运行,且最后一次运行的运行状态均为运行成功。具体实施中,该运行条件的设置可以根据实际需求进行灵活设置,在此不做具体限定。
在另一种可能的实施方式中,在设置该目标ETL子任务对应的运行条件时,还可以针对每个其他ETL子任务,分别设置运行条件。当每个其他ETL子任务均满足对应的运行条件,才控制该目标ETL子任务运行。
例如,某一目标ETL子任务900,前向依赖的其他ETL子任务分别为899、888、887,则在设置目标ETL子任务900对应的运行条件时,可以设置其他ETL子任务888在目标ETL子任务900启动前的两小时内有运行,且最后一次运行的运行状态为运行成功,设置其他ETL子任务887和其他ETL子任务899在8月9号0点之后有运行,且最后一次运行的运行状态均为运行成功。
进一步地,为了方便工作人员及时对运行故障的目标ETL子任务进行检查,当根据其他ETL子任务对应的运行状态,确定目标ETL子任务满足预设的目标ETL子任务对应的运行条件,并控制该目标ETL子任务运行之后,若获取到的该目标ETL子任务对应的运行状态为运行失败,则也可以将目标ETL子任务运行失败的通知信息通过通讯方式发送,以提醒负责该目标ETL子任务的工作人员及时检查该目标ETL子任务。
实施例6:
下面通过具体的实施方式对本发明实施例提供的数据处理方法进行说明:
图2为本发明实施例提供的数据处理过程的总体架构示意图。如图2所示,针对每个ETL子任务,工作人员设置了该ETL子任务对应的启动时间、该ETL子任务前向依赖的其他ETL子任务、启动条件、以及运行所需工具等配置信息,将该ETL子任务的标识信息与对应的配置信息对应保存在用于查询配置信息的电子设备上。其中,运行所需工具包括SSIS、Kettle、Hive脚本、Datax脚本、Sqoop脚本等调度工具中的至少一种。
由于不同的ETL子任务所执行的功能不同,有些ETL子任务在运行时是没有前向依赖的其他ETL子任务的,比如,用于从来源端抽取数据的ETL子任务一般不需要前向依赖其他ETL子任务,而对于这些不存在前向依赖的ETL子任务,可以在该ETL子任务对应的配置信息中,设置该ETL子任务前向依赖的其他ETL子任务为预设的无效标识值,比如,“0”,也可以为其他形式,比如“null”,只要可以标识该ETL子任务不存在前向依赖的其他ETL子任务,均可被应用于本发明实施例。
需要说明的是,用于查询配置信息的电子设备可以与上述进行数据处理的电子设备相同,也可以不同。
后续进行数据处理的电子设备基于本发明实施例提供的数据处理方法,对目标ETL子任务进行相应的处理。具体的,下面结合图3对本发明实施例提供的数据处理方法进行详细的说明,图3为本发明实施例提供的具体的数据处理流程示意图,该流程包括:
S301:获取目标ETL子任务运行所需的配置信息。
为了方便进行数据处理,进行数据处理的电子设备,预先保存了当前调度线程中的每个ETL子任务对应的启动时间以及标识信息。当进行数据处理的电子设备确定当前时间为调度线程中队首的ETL子任务对应的预设的启动时间时,确定该ETL子任务为目标ETL子任务。然后生成携带有该目标ETL子任务的标识信息、以及用于标识该目标ETL子任务启动的标签(为了方便描述,记为第一标签)的请求通知,并将该请求通知发送给查询配置信息的电子设备。
其中,为了方便对每个ETL子任务的启动信息的追溯,该请求通知中还可以携带有该目标ETL子任务所在的调度线程的标识信息、实际启动的时间、当前调用的工具等信息。
需要说明的是,第一标签可以表示为标识值,比如“1”,也可以表示为其他形式的,只要可以唯一标识该目标ETL子任务的运行状态为启动即可。
查询配置信息的电子设备基于接收到的请求通知,获取目标ETL子任务的标识信息、以及第一标签。根据预先保存的标识信息与配置信息的对应关系,确定该目标ETL子任务的标识信息对应的配置信息。然后根据该目标ETL子任务对应的配置信息,获取保存的该目标ETL子任务前向依赖的其他ETL子任务对应的标识信息,并对应保存该目标ETL子任务的标识信息以及第一标签,以方便前向依赖于该目标ETL子任务的ETL子任务可以查询到该目标ETL子任务的运行状态。最后,查询配置信息的电子设备生成携带有该目标ETL子任务前向依赖的其他ETL子任务的标识信息、目标ETL子任务对应的启动条件以及通讯方式的第一信息给电子设备。
S302:获取每个其他ETL子任务对应的运行状态。
电子设备根据接收到的第一信息中携带的该目标ETL子任务前向依赖的每个其他ETL子任务的标识信息,若确定每个标识信息均不为预设的无效标识值,则确定目标ETL子任务存在前向依赖的其他ETL子任务,生成携带有每个其他ETL子任务的标识信息的状态请求信息,并发送至查询配置信息的电子设备。
查询配置信息的电子设备根据接收到的状态请求信息中携带的每个其他ETL子任务的标识信息、以及本地保存的标识信息与运行状态的对应关系,确定每个其他ETL子任务对应的运行状态。然后生成携带有每个其他ETL子任务的标识信息及其对应的运行状态的第二信息反馈给进行数据处理的电子设备。
进行数据处理的电子设备对接收到的第二信息进行解析,获取该目标ETL子任务前向依赖的每个其他ETL子任务对应的运行状态。
S303:根据每个其他ETL子任务对应的运行状态,判断目标ETL子任务是否满足运行条件,若是,执行S307,否则,执行S304。
S304:根据每个其他ETL子任务对应的运行状态,判断任一其他ETL子任务对应的运行状态是否为运行失败,若是,执行S308,否则,执行S305。
S305:判断任一其他ETL子任务对应的运行状态是否为未完成运行,且目标ETL子任务的已休眠时长是否达到预设的时长阈值,若是,执行S309,否则,执行S306。
S306:确定目标ETL子任务不满足退出条件,控制目标ETL子任务进入预设时长的休眠,然后执行S302。
S307:控制目标ETL子任务运行,并将正在运行的运行状态发送至查询配置信息的电子设备,以使查询配置信息的电子设备将保存的目标ETL子任务的运行状态更新为正在运行,然后执行S311。
本发明实施例严格要求预设的依赖关系和目标ETL子任务运行所需的运行条件,可以使目标ETL子任务在运行时,所需的数据都是正确的,提高后续建立的数据仓库的准确性。
S308:控制目标ETL子任务退出调度线程,并将因前向依赖运行失败退出的运行状态发送至查询配置信息的电子设备,以使查询配置信息的电子设备将保存的目标ETL子任务的运行状态更新为因前向依赖运行失败退出,然后执行S310。
S309:控制目标ETL子任务退出调度线程,并将因前向依赖未完成退出的运行状态发送至查询配置信息的电子设备,以使查询配置信息的电子设备将保存的目标ETL子任务的运行状态更新为因前向依赖未完成退出,然后执行S310。
S310:将目标ETL子任务退出调度线程的通知信息通过获取的通讯方式发送。
S311:当确定目标ETL子任务的运行完成时,判断目标ETL子任务的运行状态是否为运行成功,若是,执行S312,否则,执行S313。
S312:将运行成功的运行状态发送至查询配置信息的电子设备,以使查询配置信息的电子设备将保存的目标ETL子任务的运行状态更新为运行成功。
S313:将运行失败的运行状态发送至查询配置信息的电子设备,以使查询配置信息的电子设备将保存的目标ETL子任务的运行状态更新为运行失败,然后执行S314。
S314:将目标ETL子任务运行失败的通知信息通过获取的通讯方式发送。
实施例7:
图4为本发明实施例提供的一种数据处理装置的结构示意图,本发明实施例提供了一种数据处理装置,所述装置包括:
获取单元41,用于当确定目标ETL子任务存在前向依赖的其他ETL子任务时,获取每个所述其他ETL子任务对应的运行状态;
处理单元42,用于根据每个所述其他ETL子任务对应的运行状态,判断所述目标ETL子任务是否满足退出条件;
控制单元43,用于若所述目标ETL子任务满足所述退出条件,则控制所述目标ETL子任务退出调度线程。
进一步地,所述处理单元42,具体用于若任一所述其他ETL子任务对应的运行状态为运行失败,则确定所述目标ETL子任务满足退出条件。
进一步地,所述处理单元42,具体用于根据每个所述其他ETL子任务对应的运行状态、及所述目标ETL子任务已休眠时长,判断所述目标ETL子任务是否满足退出条件。
进一步地,所述处理单元42,具体用于若每个所述其他ETL子任务对应的运行状态均不为运行失败、存在任一所述其他ETL子任务对应的运行状态为未完成运行,且所述目标ETL子任务的已休眠时长达到预设的时长阈值,则确定所述目标ETL子任务满足退出条件。
进一步地,所述控制单元43,还用于若所述目标ETL子任务不满足退出条件,控制所述目标ETL子任务进入预设时长的休眠。
进一步地,所述装置还包括:
更新单元,用于控制所述目标ETL子任务进入预设时长的休眠之后,对保存的所述目标ETL子任务的已休眠时长进行更新。
进一步地,所述获取单元41,具体用于若确定当前时间满足预设的获取条件,则获取每个所述其他ETL子任务对应的运行状态。
进一步地,所述获取单元41,具体用于若当前时间为获取到每个所述其他ETL子任务的标识信息时的第一时间,则确定当前时间满足预设的获取条件;或,若当前时间为所述目标ETL子任务停止休眠的第二时间,则确定当前时间满足预设的获取条件。
进一步地,所述获取单元41,还用于获取所述目标ETL子任务对应的通讯方式;
所述装置还包括:
通信单元,用于确定所述目标ETL子任务满足退出条件之后,将所述目标ETL子任务退出调度线程的通知信息通过所述通讯方式发送。
由于本发明实施例中预设有退出条件,当根据获取到的每个其他ETL子任务对应的运行状态,确定目标ETL子任务满足退出条件时,控制该目标ETL子任务退出调度线程,从而可以在目标ETL子任务前向依赖的其他ETL子任务运行故障时,避免该目标ETL子任务一直占用调度线程也不运行的情况发生,减少了资源浪费。
实施例8:
图5为本发明实施例提供的一种电子设备结构示意图,在上述各实施例的基础上,本发明实施例还提供了一种电子设备,如图5所示,包括:处理器51、通信接口52、存储器53和通信总线54,其中,处理器51,通信接口52,存储器53通过通信总线54完成相互间的通信;
所述存储器53中存储有计算机程序,当所述程序被所述处理器51执行时,使得所述处理器51执行如下步骤:
当确定目标ETL子任务存在前向依赖的其他ETL子任务时,获取每个所述其他ETL子任务对应的运行状态;
根据每个所述其他ETL子任务对应的运行状态,判断所述目标ETL子任务是否满足退出条件;
若所述目标ETL子任务满足所述退出条件,则控制所述目标ETL子任务退出调度线程。
进一步地,所述处理器51,具体用于若任一所述其他ETL子任务对应的运行状态为运行失败,则确定所述目标ETL子任务满足退出条件。
进一步地,所述处理器51,具体用于根据每个所述其他ETL子任务对应的运行状态、及所述目标ETL子任务已休眠时长,判断所述目标ETL子任务是否满足退出条件。
进一步地,所述处理器51,具体用于若每个所述其他ETL子任务对应的运行状态均不为运行失败、存在任一所述其他ETL子任务对应的运行状态为未完成运行,且所述目标ETL子任务的已休眠时长达到预设的时长阈值,则确定所述目标ETL子任务满足退出条件。
进一步地,所述处理器51,还用于当所述其他ETL子任务对应的运行状态均不满足退出条件时,若存在任一所述其他ETL子任务对应的运行状态为未完成运行,则控制所述目标ETL子任务进入预设时长的休眠。
进一步地,所述处理器51,还用于控制所述目标ETL子任务进入预设时长的休眠之后,对保存的所述目标ETL子任务的已休眠时长进行更新。
进一步地,所述处理器51,具体用于若确定当前时间满足预设的获取条件,则获取每个所述其他ETL子任务对应的运行状态。
进一步地,所述处理器51,具体用于若当前时间为获取到每个所述其他ETL子任务的标识信息时的第一时间,则确定当前时间满足预设的获取条件;或,若当前时间为所述目标ETL子任务停止休眠的第二时间,则确定当前时间满足预设的获取条件。
进一步地,所述处理器51,还用于获取所述目标ETL子任务对应的通讯方式;
所述处理器51,还用于确定所述目标ETL子任务满足退出条件之后,将所述目标ETL子任务退出调度线程的通知信息通过所述通讯方式发送。
由于上述电子设备解决问题的原理与数据处理方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口52用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
由于本发明实施例中预设有退出条件,当根据获取到的每个其他ETL子任务对应的运行状态,确定目标ETL子任务满足退出条件时,控制该目标ETL子任务退出调度线程,从而可以在目标ETL子任务前向依赖的其他ETL子任务运行故障时,避免该目标ETL子任务一直占用调度线程也不运行的情况发生,减少了资源浪费。
实施例9:
在上述各实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行时实现如下步骤:
当确定目标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子任务进入预设时长的休眠。
进一步地,所述控制所述目标ETL子任务进入预设时长的休眠之后,所述方法还包括:
对保存的所述目标ETL子任务的已休眠时长进行更新。
进一步地,所述获取每个所述其他ETL子任务对应的运行状态包括:
若确定当前时间满足预设的获取条件,则获取每个所述其他ETL子任务对应的运行状态。
进一步地,所述确定当前时间满足预设的获取条件,包括:
若当前时间为获取到每个所述其他ETL子任务的标识信息时的第一时间,则确定当前时间满足预设的获取条件;或
若当前时间为所述目标ETL子任务停止休眠的第二时间,则确定当前时间满足预设的获取条件。
进一步地,所述方法还包括:
获取所述目标ETL子任务对应的通讯方式;
确定所述目标ETL子任务满足退出条件之后,所述方法还包括:
将所述目标ETL子任务退出调度线程的通知信息通过所述通讯方式发送。
由于本发明实施例中预设有退出条件,当根据获取到的每个其他ETL子任务对应的运行状态,确定目标ETL子任务满足退出条件时,控制该目标ETL子任务退出调度线程,从而可以在目标ETL子任务前向依赖的其他ETL子任务运行故障时,避免该目标ETL子任务一直占用调度线程也不运行的情况发生,减少了资源浪费。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (20)
1.一种数据处理方法,其特征在于,所述方法包括:
当确定目标ETL子任务存在前向依赖的其他ETL子任务时,获取每个所述其他ETL子任务对应的运行状态;
根据每个所述其他ETL子任务对应的运行状态,判断所述目标ETL子任务是否满足退出条件;
若所述目标ETL子任务满足所述退出条件,则控制所述目标ETL子任务退出调度线程。
2.根据权利要求1所述的方法,其特征在于,所述根据每个所述其他ETL子任务对应的运行状态,判断所述目标ETL子任务是否满足退出条件,包括:
若任一所述其他ETL子任务对应的运行状态为运行失败,则确定所述目标ETL子任务满足退出条件。
3.根据权利要求1所述的方法,其特征在于,所述根据每个所述其他ETL子任务对应的运行状态,判断所述目标ETL子任务是否满足退出条件包括:
根据每个所述其他ETL子任务对应的运行状态、及所述目标ETL子任务已休眠时长,判断所述目标ETL子任务是否满足退出条件。
4.根据权利要求3所述的方法,其特征在于,所述根据每个所述其他ETL子任务对应的运行状态及所述目标ETL子任务已休眠时长,判断所述目标ETL子任务是否满足退出条件包括:
若每个所述其他ETL子任务对应的运行状态均不为运行失败、存在任一所述其他ETL子任务对应的运行状态为未完成运行,且所述目标ETL子任务的已休眠时长达到预设的时长阈值,则确定所述目标ETL子任务满足退出条件。
5.根据权利要求4所述的方法,其特征在于,若所述目标ETL子任务不满足退出条件,所述方法还包括:
控制所述目标ETL子任务进入预设时长的休眠。
6.根据权利要求5所述的方法,其特征在于,所述控制所述目标ETL子任务进入预设时长的休眠之后,所述方法还包括:
对保存的所述目标ETL子任务的已休眠时长进行更新。
7.根据权利要求1所述的方法,其特征在于,所述获取每个所述其他ETL子任务对应的运行状态包括:
若确定当前时间满足预设的获取条件,则获取每个所述其他ETL子任务对应的运行状态。
8.根据权利要求7所述的方法,其特征在于,所述确定当前时间满足预设的获取条件,包括:
若当前时间为获取到每个所述其他ETL子任务的标识信息时的第一时间,则确定当前时间满足预设的获取条件;或
若当前时间为所述目标ETL子任务停止休眠的第二时间,则确定当前时间满足预设的获取条件。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标ETL子任务对应的通讯方式;
确定所述目标ETL子任务满足退出条件之后,所述方法还包括:
将所述目标ETL子任务退出调度线程的通知信息通过所述通讯方式发送。
10.一种数据处理装置,其特征在于,所述装置包括:
获取单元,用于当确定目标ETL子任务存在前向依赖的其他ETL子任务时,获取每个所述其他ETL子任务对应的运行状态;
处理单元,用于根据每个所述其他ETL子任务对应的运行状态,判断所述目标ETL子任务是否满足退出条件;
控制单元,用于若所述目标ETL子任务满足所述退出条件,则控制所述目标ETL子任务退出调度线程。
11.根据权利要求10所述的装置,其特征在于,所述处理单元,具体用于若任一所述其他ETL子任务对应的运行状态为运行失败,则确定所述目标ETL子任务满足退出条件。
12.根据权利要求10所述的装置,其特征在于,所述处理单元,具体用于根据每个所述其他ETL子任务对应的运行状态、及所述目标ETL子任务已休眠时长,判断所述目标ETL子任务是否满足退出条件。
13.根据权利要求12所述的装置,其特征在于,所述处理单元,具体用于若每个所述其他ETL子任务对应的运行状态均不为运行失败、存在任一所述其他ETL子任务对应的运行状态为未完成运行,且所述目标ETL子任务的已休眠时长达到预设的时长阈值,则确定所述目标ETL子任务满足退出条件。
14.根据权利要求13所述的装置,其特征在于,所述控制单元,还用于若所述目标ETL子任务不满足退出条件,控制所述目标ETL子任务进入预设时长的休眠。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
更新单元,用于控制所述目标ETL子任务进入预设时长的休眠之后,对保存的所述目标ETL子任务的已休眠时长进行更新。
16.根据权利要求10所述的装置,其特征在于,所述获取单元,具体用于若确定当前时间满足预设的获取条件,则获取每个所述其他ETL子任务对应的运行状态。
17.根据权利要求16所述的装置,其特征在于,所述获取单元,具体用于若当前时间为获取到每个所述其他ETL子任务的标识信息时的第一时间,则确定当前时间满足预设的获取条件;或,若当前时间为所述目标ETL子任务停止休眠的第二时间,则确定当前时间满足预设的获取条件。
18.根据权利要求10所述的装置,其特征在于,所述获取单元,还用于获取所述目标ETL子任务对应的通讯方式;
所述装置还包括:
通信单元,用于确定所述目标ETL子任务满足退出条件之后,将所述目标ETL子任务退出调度线程的通知信息通过所述通讯方式发送。
19.一种电子设备,其特征在于,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-9中任一所述数据处理方法的步骤。
20.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-9中任一所述数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010793561.7A CN112084014A (zh) | 2020-08-10 | 2020-08-10 | 一种数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010793561.7A CN112084014A (zh) | 2020-08-10 | 2020-08-10 | 一种数据处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112084014A true CN112084014A (zh) | 2020-12-15 |
Family
ID=73735701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010793561.7A Pending CN112084014A (zh) | 2020-08-10 | 2020-08-10 | 一种数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084014A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667383A (zh) * | 2020-12-31 | 2021-04-16 | 北京高途云集教育科技有限公司 | 一种任务执行及调度方法、系统、装置、计算设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034554A (zh) * | 2012-12-30 | 2013-04-10 | 焦点科技股份有限公司 | 一种纠错重启以及自动判断启动的etl调度系统及方法 |
CN106959895A (zh) * | 2016-01-12 | 2017-07-18 | 阿里巴巴集团控股有限公司 | 快速释放线程的资源调度方法和系统 |
CN107025224A (zh) * | 2016-01-29 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 一种监控任务运行的方法和设备 |
CN109034668A (zh) * | 2018-09-05 | 2018-12-18 | 平安科技(深圳)有限公司 | Etl任务调度方法、装置、计算机设备及存储介质 |
CN110795479A (zh) * | 2019-10-08 | 2020-02-14 | 中国建设银行股份有限公司 | 基于数据的分布式etl调度的方法和装置 |
-
2020
- 2020-08-10 CN CN202010793561.7A patent/CN112084014A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034554A (zh) * | 2012-12-30 | 2013-04-10 | 焦点科技股份有限公司 | 一种纠错重启以及自动判断启动的etl调度系统及方法 |
CN106959895A (zh) * | 2016-01-12 | 2017-07-18 | 阿里巴巴集团控股有限公司 | 快速释放线程的资源调度方法和系统 |
CN107025224A (zh) * | 2016-01-29 | 2017-08-08 | 阿里巴巴集团控股有限公司 | 一种监控任务运行的方法和设备 |
CN109034668A (zh) * | 2018-09-05 | 2018-12-18 | 平安科技(深圳)有限公司 | Etl任务调度方法、装置、计算机设备及存储介质 |
CN110795479A (zh) * | 2019-10-08 | 2020-02-14 | 中国建设银行股份有限公司 | 基于数据的分布式etl调度的方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667383A (zh) * | 2020-12-31 | 2021-04-16 | 北京高途云集教育科技有限公司 | 一种任务执行及调度方法、系统、装置、计算设备及介质 |
CN112667383B (zh) * | 2020-12-31 | 2024-02-09 | 北京高途云集教育科技有限公司 | 一种任务执行及调度方法、系统、装置、计算设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782360B (zh) | 分布式任务调度方法及装置 | |
CN103034554B (zh) | 一种纠错重启以及自动判断启动的etl调度系统及方法 | |
CN101510167B (zh) | 一种插件运行的方法、装置及系统 | |
CN111625331B (zh) | 任务调度方法、装置、平台、服务器及存储介质 | |
CN108123851B (zh) | 分布式系统中主从节点同步链路的存活检测方法及装置 | |
CN110795254A (zh) | 一种基于php处理高并发io的方法 | |
CN110611707B (zh) | 一种任务调度的方法及装置 | |
CN111258746B (zh) | 资源分配方法和服务设备 | |
CN111988240B (zh) | 一种数据发送方法、装置、电子设备及存储介质 | |
CN111338770A (zh) | 一种任务调度的方法、服务器和计算机可读存储介质 | |
RU2009139312A (ru) | Способ устранения исключительной ситуации в одном из ядер многоядерной системы | |
CN110955506A (zh) | 一种分布式作业调度处理方法 | |
TWI671640B (zh) | 分散式系統中的任務處理方法和裝置 | |
WO2017193964A1 (zh) | 一种组件升级方法、装置和系统 | |
CN111580948A (zh) | 任务调度方法、装置及计算机设备 | |
CN112286664A (zh) | 任务调度方法、装置、计算机设备及可读存储介质 | |
CN112084014A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN114816709A (zh) | 任务调度方法、装置、服务器及可读存储介质 | |
CN113424154A (zh) | 边缘侧模型处理的方法、边缘计算设备和计算机可读介质 | |
CN113703929B (zh) | 一种任务调度方法、系统、计算设备和存储介质 | |
CN112600842A (zh) | 集群shell方法、装置、电子设备及计算机可读存储介质 | |
CN112559155A (zh) | 批量作业处理方法、系统、计算机设备及可读存储介质 | |
CN111190708A (zh) | 一种自动调度任务的方法及装置 | |
EP2120120B1 (en) | Method for modelling and executing a production rule in a discrete manufacturing scenario | |
CN112148420B (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 |