CN115145591B - 一种基于多中心的医疗etl任务调度方法、系统及装置 - Google Patents
一种基于多中心的医疗etl任务调度方法、系统及装置 Download PDFInfo
- Publication number
- CN115145591B CN115145591B CN202211051570.4A CN202211051570A CN115145591B CN 115145591 B CN115145591 B CN 115145591B CN 202211051570 A CN202211051570 A CN 202211051570A CN 115145591 B CN115145591 B CN 115145591B
- Authority
- CN
- China
- Prior art keywords
- etl
- task
- machine
- execution
- scheduling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012360 testing method Methods 0.000 claims abstract description 44
- 230000000694 effects Effects 0.000 claims abstract description 19
- 238000012216 screening Methods 0.000 claims abstract description 7
- 239000013598 vector Substances 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H40/00—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
- G16H40/20—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the management or administration of healthcare resources or facilities, e.g. managing hospital staff or surgery rooms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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
- 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/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
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/60—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Business, Economics & Management (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Epidemiology (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明公开了一种基于多中心的医疗ETL任务调度方法、系统及装置,包括以下步骤:步骤S1:对ETL任务进行测试与验证;步骤S2:将ETL任务部署至医院中心,将ETL任务调度到若干个执行机执行;步骤S3:筛选满足待调度ETL任务的资源需求的执行机集合;步骤S4:计算所述执行机集合中各个执行机的当前任务负载;步骤S5:选择当前任务负载最小的所述执行机执行ETL任务;步骤S6:所述调度机根据优先级从所述执行机活动队列中选择ETL任务执行。本发明通过分析出任指标为当前调度机上的待调度任务选择最合适的执行机器。执行机从执行队列中选择任务进行执行,同时监测当前任务的阶段信息,从而实现集群资源利用的最大化。
Description
技术领域
本发明涉及一种医疗数据ETL技术领域,尤其涉及一种基于多中心的医疗ETL任务调度方法、系统及装置。
背景技术
ETL(Extract-Transform-Load的缩写)用来描述将数据从来源端经过抽取、转换、加载至目的端的过程,目的是将机构中分散、零乱、标准不统一的数据进行整合,从而实现数据的进一步挖掘与利用,并为机构的决策分析提供依据。
医疗ETL是指应用于医院的ETL过程,近些年医院信息化迅速发展,随着各种医院业务系统的建立,生成了海量的医疗相关数据,如何实现对这些数据的挖掘与处理对于医院及相关研究机构有着十分重要的意义。同时,多中心模式,即利用多家医疗机构的数据进行协同分析与研究也是业内的一个趋势。而要实现对多中心的海量医疗数据的ETL处理,需要建立大量的ETL任务,但通常医疗机构内部的机器性能有限,不能支持大量的计算任务,所以常用方案是将ETL任务发送到集群环境中进行调度执行。
医疗ETL任务的执行过程通常分为多个密切相关的子阶段,各个子阶段有先后依赖关系,并且会有一些中间结果的生成与使用,所以为了方便任务的设计与实施,通常将多个子阶段作为一个整体任务执行。其中每个子阶段执行一个设计逻辑,比如第一阶段负责数学计算相关处理,第二阶段负责深度学习相关处理等。通常情况下,单个阶段对某种机器资源有比较大的依赖(如CPU、GPU、内存),但是同一任务不同阶段对机器资源的依赖可能差异较大。与此同时,执行任务的集群通常为异构集群,机器间的资源性能存在差异,不同机器与不同任务及同一任务的不同阶段的适应性都可能不一致。所以为了最大化地利用异构集群的资源,提高多阶段任务整体调度性能,需要充分利用医疗ETL任务及集群机器的特性。
目前现有的医疗数据ETL系统在大部分情况下,并没有区分任务在不同阶段对机器资源的需求差异,并结合异构集群中机器的资源特性及任务负载等信息来进行动态调度。本发明旨在针对多家医院的集群化ETL任务调度的场景下,针对任务多阶段的特点,通过构建调度机与执行机两级调度机制,最大化地利用集群资源、提高集群作业的吞吐率。
发明内容
本发明为了解决上述技术问题,提供一种基于多中心的医疗ETL任务调度方法、系统及装置。
本发明采用的技术方案如下:
一种基于多中心的医疗ETL任务调度方法,包括以下步骤:
步骤S1:生成ETL任务,利用测试机收集ETL任务的资源需求和确定时间预估方程,并对ETL任务进行测试与验证;
步骤S2:将ETL任务部署至医院中心,所述医院中心通过调度机将ETL任务调度到若干个执行机执行;
步骤S3:所述调度机收集并统计各个所述执行机上报的资源指标向量和待调度ETL任务在当前阶段的资源需求向量,筛选满足待调度ETL任务的资源需求的执行机集合;
步骤S4:计算所述执行机集合中各个执行机的当前任务负载;
步骤S5:根据各个所述执行机的当前任务负载,所述调度机选择当前任务负载最小的所述执行机执行ETL任务;
步骤S6:所述调度机将ETL任务添加至所述执行机活动队列中,所述执行机活动队列中的ETL任务根据所述预估方程确定的预估时间确定优先级,所述调度机根据优先级从所述执行机活动队列中选择ETL任务执行。
进一步地,所述步骤S1具体包括以下子步骤:
步骤S11:生成ETL任务,并将ETL任务通过测试机运行,将ETL任务运行过程中的数据分为测试数据与验证数据,分别收集所述测试数据的资源需求与所述验证数据的资源需求;
步骤S12:利用所述测试机读取所述测试数据的数据量和数据读取速率,根据所述数据量和所述数据读取速率确定时间预估方程;
步骤S13:利用所述时间预估方程得到所述测试数据对应ETL任务的预估时间;
步骤S14:对所述资源需求和所述预估时间进行验证,当所述测试数据的资源需求满足所述验证数据的资源需求,同时所述预估时间与所述验证数据对应ETL任务的实际执行时间的差值小于预设阈值,则完成ETL任务的测试与验证。
进一步地,所述步骤S2具体包括以下子步骤:
步骤S21:将ETL任务部署至医院中心;
步骤S22:利用所述时间预估方程确定ETL任务的预估时间;
步骤S23:利用所述预估时间确定ETL任务的优先级;
步骤S24:ETL任务根据所述优先级通过调度机将ETL任务调度到执行机执行。
进一步地,所述步骤S22 具体包括利用所述时间预估方程,通过ETL任务在当前阶段的剩余待处理数量和所述医院中心的数据读取速率确定ETL任务的预估时间。
进一步地,所述步骤S24具体包括以下子步骤:
步骤S241:所述调度机初始化活动任务队列和过期任务队列;
步骤S242:根据所述优先级将ETL任务添加至所述活动任务队列中;
步骤S243:当所述活动任务队列中ETL任务为空,则对调所述活动任务队列和所述过期任务队列,所述调度机继续从所述活动任务队列中进行分发调度。
进一步地,所述步骤S3具体包括以下子步骤:
步骤S31:所述调度机收集并统计任一所述执行机的资源指标向量;
步骤S32:所述调度机收集并统计待调度ETL任务在当前阶段的资源需求向量;
步骤S33:利用所述资源指标向量和所述资源需求向量筛选满足待调度ETL任务资源需求的执行机集合。
进一步地,所述步骤S4具体包括以下子步骤:
步骤S41:利用所述时间预估方程计算各个所述执行机集合中各执行机活动队列和执行机过期队列中所有ETL任务的预估时间之和;
步骤S42:通过所述预估时间之和和所有ETL任务的合集计算对应所述执行机的当前任务负载。
进一步地,所述步骤S5中当多个所述执行机的当前任务负载相同,则根据当前阶段执行机的资源指标向量和当前阶段ETL任务的资源需求向量,并结合所述执行机的资源权重取值,筛选出值最小的所述执行机进行调度执行ETL任务。
进一步地,所述步骤S5当筛选出的所述执行机依旧为多个,则随机选择其中所述执行机进行调度执行ETL任务。
进一步地,所述步骤S6的ETL任务执行过程中,设置ETL任务运行时间阈值,当ETL任务执行时间大于等于ETL任务运行时间阈值,则暂停ETL任务执行,并将ETL任务添加至所述执行机过期队列中,等待下次调度。
进一步地,所述步骤S6的ETL任务执行过程中,检测ETL任务阶段信息,当阶段发生切换,则暂停ETL任务执行,并将ETL任务添加至所述调度机的过期任务队列中,等待所述调度机重新调度。
进一步地,所述步骤S6的ETL任务执行过程中,当所述执行机调度后所述执行机活动队列为空,则对调所述执行机活动队列和所述执行机过期队列,所述调度机继续从所述执行机活动队列进行调度执行。
本发明还提供一种基于多中心的医疗ETL任务调度系统,包括:
测试模块,用于收集ETL任务运行数据,确定ETL任务资源需求及时间预估方程;
医院中心模块,用于ETL任务部署,将ETL任务提交至调度机模块进行ETL任务的调度与分发;
调度机模块,用于计算执行机资源及任务负载,并利用所述时间预估方程计算任务预估时间确定ETL任务的优先级,并按照优先级将ETL任务调度到执行机模块;
执行机模块,用于执行ETL任务,并对ETL任务超时调度及阶段切换调度。
本发明还提供一种基于多中心的医疗ETL任务调度装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中任一项所述的一种基于多中心的医疗ETL任务调度方法。
本发明还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上市实施例中任一项所述的一种基于多中心的医疗ETL任务调度方法。
本发明的有益效果是:本发明通过统计任务在测试机上的各阶段运行数据,分析出任务各阶段的资源需求、数据处理速度等指标。集群机器被划分为一台调度机与多台执行机,调度机和执行机均采用执行队列和等待队列两级队列设计。调度机只负责调度工作,其调度器将多中心提交的任务调度到执行机中进行执行。调度机实时监控集群执行机的资源指标与执行机上排队任务的负载情况,为当前调度机上的待调度任务选择最合适的执行机器。执行机从执行队列中选择任务进行执行,同时为了防止某一任务长期占用机器资源,在指定时间用完之后,会将其调度回当前执行机器的过期队列,然后从活动队列选取新任务进行执行。同时,为了充分利用任务的不同阶段特性与集群资源情况,执行机在执行任务的时候,会监测当前任务的阶段信息,当阶段发生切换时,将任务调度回调度机中,等待重新调度到合适的执行机运行,从而实现集群资源利用的最大化。
附图说明
图1为本发明一种基于多中心的医疗ETL任务调度方法的流程图;
图2为本发明一种基于多中心的医疗ETL任务调度系统的结构图;
图3为本发明实施例的系统架构图;
图4为本发明实施例的多阶段任务调度策略流程图;
图5为本发明一种基于多中心的医疗ETL任务调度装置的结构图。
具体实施方式
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
见图1,一种基于多中心的医疗ETL任务调度方法,包括以下步骤:
步骤S1:生成ETL任务,利用测试机收集ETL任务的资源需求和确定时间预估方程,并对ETL任务进行测试与验证;
步骤S11:生成ETL任务,并将ETL任务通过测试机运行,将ETL任务运行过程中的数据分为测试数据与验证数据,分别收集所述测试数据的资源需求与所述验证数据的资源需求;
步骤S12:利用所述测试机读取所述测试数据的数据量和数据读取速率,根据所述数据量和所述数据读取速率确定时间预估方程;
步骤S13:利用所述时间预估方程得到所述测试数据对应ETL任务的预估时间;
步骤S14:对所述资源需求和所述预估时间进行验证,当所述测试数据的资源需求满足所述验证数据的资源需求,同时所述预估时间与所述验证数据对应ETL任务的实际执行时间的差值小于预设阈值,则完成ETL任务的测试与验证。
步骤S2:将ETL任务部署至医院中心,所述医院中心通过调度机将ETL任务调度到若干个执行机执行;
步骤S21:将ETL任务部署至医院中心;
步骤S22:利用所述时间预估方程确定ETL任务的预估时间;
具体包括利用所述时间预估方程,通过ETL任务在当前阶段的剩余待处理数量和所述医院中心的数据读取速率确定ETL任务的预估时间。
步骤S23:利用所述预估时间确定ETL任务的优先级;
步骤S24:ETL任务根据所述优先级通过调度机将ETL任务调度到执行机执行。
步骤S241:所述调度机初始化活动任务队列和过期任务队列;
步骤S242:根据所述优先级将ETL任务添加至所述活动任务队列中;
步骤S243:当所述活动任务队列中ETL任务为空,则对调所述活动任务队列和所述过期任务队列,所述调度机继续从所述活动任务队列中进行分发调度。
步骤S3:所述调度机收集并统计各个所述执行机上报的资源指标向量和待调度ETL任务在当前阶段的资源需求向量,筛选满足待调度ETL任务的资源需求的执行机集合;
步骤S31:所述调度机收集并统计任一所述执行机的资源指标向量;
步骤S32:所述调度机收集并统计待调度ETL任务在当前阶段的资源需求向量;
步骤S33:利用所述资源指标向量和所述资源需求向量筛选满足待调度ETL任务资源需求的执行机集合。
步骤S4:计算所述执行机集合中各个执行机的当前任务负载;
步骤S41:利用所述时间预估方程计算各个所述执行机集合中各执行机活动队列和执行机过期队列中所有ETL任务的预估时间之和;
步骤S42:通过所述预估时间之和和所有ETL任务的合集计算对应所述执行机的当前任务负载。
步骤S5:根据各个所述执行机的当前任务负载,所述调度机选择当前任务负载最小的所述执行机执行ETL任务;
当多个所述执行机的当前任务负载相同,则根据当前阶段执行机的资源指标向量和当前阶段ETL任务的资源需求向量,并结合所述执行机的资源权重取值,筛选出值最小的所述执行机进行调度执行ETL任务。
当筛选出的所述执行机依旧为多个,则随机选择其中所述执行机进行调度执行ETL任务。
步骤S6:所述调度机将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任务超时调度及阶段切换调度。
实施例,参见图3-图4:
步骤S1:生成ETL任务,利用测试机收集ETL任务的资源需求和确定时间预估方程,并对ETL任务进行测试与验证;
步骤S11:生成ETL任务,并将ETL任务通过测试机运行,将ETL任务运行过程中的数据分为测试数据与验证数据,分别收集所述测试数据的资源需求与所述验证数据的资源需求;
步骤S13:利用所述时间预估方程得到所述测试数据对应ETL任务的预估时间;
通过执行收集部分的数据获得所需资源及预估方程参数a、b,并利用时间预估方程得到所述ETL任务的预估时间。
步骤S14:对所述资源需求和所述预估时间进行验证,当所述测试数据的资源需求满足所述验证数据的资源需求,同时所述预估时间与所述验证数据对应ETL任务的实际执行时间的差值小于预设阈值,则完成ETL任务的测试与验证。
步骤S2:将ETL任务部署至医院中心,所述医院中心通过调度机将ETL任务调度到若干个执行机执行;
步骤S21:将ETL任务部署至医院中心;
步骤S22:利用所述时间预估方程确定ETL任务的预估时间;
具体包括利用所述时间预估方程,通过ETL任务在当前阶段的剩余待处理数量和所述医院中心的数据读取速率确定ETL任务的预估时间。
步骤S23:利用所述预估时间确定ETL任务的优先级;
本发明中使用最短任务优先原则来确定优先级,规定当前阶段剩余处理时间越短的任务优先级越高,以此来降低所有任务的平均等待时间。
步骤S24:ETL任务根据所述优先级通过调度机将ETL任务调度到执行机执行。
步骤S241:所述调度机初始化活动任务队列dispActiveQueue和过期任务队列dispExpireQueue;
步骤S242:根据所述优先级将ETL任务添加至所述活动任务队列dispActiveQueue中;
步骤S243:当所述活动任务队列中ETL任务为空,则对调所述活动任务队列dispActiveQueue和所述过期任务队列dispExpireQueue,所述调度机继续从所述活动任务队列dispActiveQueue中进行分发调度。
步骤S3:所述调度机收集并统计各个所述执行机上报的资源指标向量和待调度ETL任务在当前阶段的资源需求向量,筛选满足待调度ETL任务的资源需求的执行机集合;
步骤S31:所述调度机收集并统计任一所述执行机的资源指标向量;
步骤S32:所述调度机收集并统计待调度ETL任务在当前阶段的资源需求向量;
步骤S33:利用所述资源指标向量和所述资源需求向量筛选满足待调度ETL任务资源需求的执行机集合G={S1, S2, … , Sn}。
步骤S4:计算所述执行机集合中各个执行机的当前任务负载;
步骤S41:利用所述时间预估方程计算各个所述执行机集合中各执行机活动队列activeQueue和执行机过期队列expireQueue中所有ETL任务的预估时间之和;
计算各执行机活动队列activeQueue = [T1, T2, … , Ta]和执行机过期队列expireQueue = [T1, T2, …, Tw]中所有ETL任务的预估时间之和,执行机j的任务负载情况表示为:
步骤S42:通过所述预估时间之和和所有ETL任务的合集计算对应所述执行机的当前任务负载。
其中,L为当前执行机中activeQueue活动队列和expireQueue过期队列中任务的合集,为时间预估方程,表示ETL任务在当前阶段k的预估剩余时间,由根据当前阶段所剩数据量Vk和当前医院中心的具体数据读取速率Ik,a、b为常量指标,均在任务运行数据收集阶段确定。
步骤S5:根据各个所述执行机的当前任务负载,所述调度机选择当前任务负载最小的所述执行机执行ETL任务;
根据执行机集合G中执行机的当前任务负载,使用下述公式选择当前任务负载最小的执行机来执行任务i;
其中,
当筛选出的所述执行机依旧为多个,则随机选择其中所述执行机进行调度执行ETL任务。
步骤S6:所述调度机将ETL任务添加至所述执行机活动队列activeQueue中,所述执行机活动队列activeQueue中的ETL任务根据所述预估方程确定的预估时间确定优先级,所述调度机根据优先级从所述执行机活动队列activeQueue中选择ETL任务执行。
所述ETL任务执行过程中,设置ETL任务运行时间阈值time_slot,当ETL任务执行时间cost_time大于等于ETL任务运行时间阈值time_slot,则暂停ETL任务执行,并将ETL任务添加至所述执行机过期队列中,等待下次调度。
调度机从过期任务队列dispExpireQueue中选择优先级最高的新任务进行执行。通过该机制来防止某一任务长时间占用计算资源。
ETL任务执行过程中,检测ETL任务阶段信息,当阶段发生切换,则暂停ETL任务执行,并将ETL任务添加至所述调度机的过期任务队列dispExpireQueue中,等待所述调度机重新调度,调度机根据任务新阶段的资源需求特性实时选择最合适的执行机进行调度执行。
ETL任务执行过程中,当所述执行机调度后所述执行机活动队列activeQueue为空,则对调所述执行机活动队列activeQueue和所述执行机过期队列expireQueue,所述调度机继续从所述执行机活动队列activeQueue进行调度执行。
综上所述,本发明基于ETL任务在不同阶段对计算节点资源的需求差异,通过对任务资源需求的分析及计算集群中执行机的资源指标,同时结合执行机实时任务负载信息,从而将当前任务调度到最合适的执行机上运行,有效利用了ETL任务自身的多阶段特点和计算机器资源,提高了多阶段任务在异构集群中的执行效率,提升了集群化的ETL任务调度系统的吞吐率。
与前述一种基于多中心的医疗ETL任务调度方法的实施例相对应,本发明还提供了一种基于多中心的医疗ETL任务调度装置的实施例。
参见图5,本发明实施例提供的一种基于多中心的医疗ETL任务调度装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中的一种基于多中心的医疗ETL任务调度方法。
本发明一种基于多中心的医疗ETL任务调度装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明一种基于多中心的医疗ETL任务调度装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种基于多中心的医疗ETL任务调度方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于多中心的医疗ETL任务调度方法,其特征在于,包括以下步骤:
步骤S1:生成ETL任务,利用测试机收集ETL任务的资源需求和确定时间预估方程,并对ETL任务进行测试与验证;
步骤S11:生成ETL任务,并将ETL任务通过测试机运行,将ETL任务运行过程中的数据分为测试数据与验证数据,分别收集所述测试数据的资源需求与所述验证数据的资源需求;
步骤S13:利用所述时间预估方程得到所述测试数据对应ETL任务的预估时间;
步骤S14:对所述资源需求和所述预估时间进行验证,当所述测试数据的资源需求满足所述验证数据的资源需求,同时所述预估时间与所述验证数据对应ETL任务的实际执行时间的差值小于预设阈值,则完成ETL任务的测试与验证;
步骤S2:将ETL任务部署至医院中心,所述医院中心通过调度机将ETL任务调度到若干个执行机执行;
步骤S21:将ETL任务部署至医院中心;
步骤S22:利用所述时间预估方程确定ETL任务的预估时间;
步骤S23:利用所述预估时间确定ETL任务的优先级;
步骤S24:ETL任务根据所述优先级通过调度机将ETL任务调度到执行机执行;
步骤S241:所述调度机初始化活动任务队列和过期任务队列;
步骤S242:根据所述优先级将ETL任务添加至所述活动任务队列中;
步骤S243:当所述活动任务队列中ETL任务为空,则对调所述活动任务队列和所述过期任务队列,所述调度机继续从所述活动任务队列中进行分发调度;
步骤S3:所述调度机收集并统计各个所述执行机上报的资源指标向量和待调度ETL任务在当前阶段的资源需求向量,筛选满足待调度ETL任务的资源需求的执行机集合;
步骤S4:计算所述执行机集合中各个执行机的当前任务负载;
步骤S5:根据各个所述执行机的当前任务负载,所述调度机选择当前任务负载最小的所述执行机执行ETL任务;
步骤S6:所述调度机将ETL任务添加至所述执行机活动队列中,所述执行机活动队列中的ETL任务根据所述预估方程确定的预估时间确定优先级,所述调度机根据优先级从所述执行机活动队列中选择ETL任务执行;
ETL任务执行过程中,设置ETL任务运行时间阈值,当ETL任务执行时间大于等于ETL任务运行时间阈值,则暂停ETL任务执行,并将ETL任务添加至所述执行机过期队列中,等待下次调度;
ETL任务执行过程中,检测ETL任务阶段信息,当阶段发生切换,则暂停ETL任务执行,并将ETL任务添加至所述调度机的过期任务队列中,等待所述调度机重新调度;
ETL任务执行过程中,当所述执行机调度后所述执行机活动队列为空,则对调所述执行机活动队列和所述执行机过期队列,所述调度机继续从所述执行机活动队列进行调度执行。
2.如权利要求1所述的一种基于多中心的医疗ETL任务调度方法,其特征在于,所述步骤S22 具体包括利用所述时间预估方程,通过ETL任务在当前阶段的剩余待处理数量和所述医院中心的数据读取速率确定ETL任务的预估时间。
3.如权利要求1所述的一种基于多中心的医疗ETL任务调度方法,其特征在于,所述步骤S3具体包括以下子步骤:
步骤S31:所述调度机收集并统计任一所述执行机的资源指标向量;
步骤S32:所述调度机收集并统计待调度ETL任务在当前阶段的资源需求向量;
步骤S33:利用所述资源指标向量和所述资源需求向量筛选满足待调度ETL任务资源需求的执行机集合。
4.如权利要求1所述的一种基于多中心的医疗ETL任务调度方法,其特征在于,所述步骤S4具体包括以下子步骤:
步骤S41:利用所述时间预估方程计算各个所述执行机集合中各执行机活动队列和执行机过期队列中所有ETL任务的预估时间之和;
步骤S42:通过所述预估时间之和和所有ETL任务的合集计算对应所述执行机的当前任务负载。
5.如权利要求1所述的一种基于多中心的医疗ETL任务调度方法,其特征在于,所述步骤S5中当多个所述执行机的当前任务负载相同,则根据当前阶段执行机的资源指标向量和当前阶段ETL任务的资源需求向量,并结合所述执行机的资源权重取值,筛选出值最小的所述执行机进行调度执行ETL任务。
6.如权利要求5所述的一种基于多中心的医疗ETL任务调度方法,其特征在于,所述步骤S5当筛选出的所述执行机依旧为多个,则随机选择其中所述执行机进行调度执行ETL任务。
7.一种用于实现权利要求1-6任一项所述的多中心的医疗ETL任务调度方法的系统,其特征在于,包括:
测试模块,用于收集ETL任务运行数据,确定ETL任务资源需求及时间预估方程;
医院中心模块,用于ETL任务部署,将ETL任务提交至调度机模块进行ETL任务的调度与分发;
调度机模块,用于计算执行机资源及任务负载,并利用所述时间预估方程计算任务预估时间确定ETL任务的优先级,并按照优先级将ETL任务调度到执行机模块;
执行机模块,用于执行ETL任务,并对ETL任务超时调度及阶段切换调度。
8.一种基于多中心的医疗ETL任务调度装置,其特征在于,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-6中任一项所述的一种基于多中心的医疗ETL任务调度方法。
9.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-6中任一项所述的一种基于多中心的医疗ETL任务调度方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211051570.4A CN115145591B (zh) | 2022-08-31 | 2022-08-31 | 一种基于多中心的医疗etl任务调度方法、系统及装置 |
US18/363,701 US20240071607A1 (en) | 2022-08-31 | 2023-08-01 | Medical etl task dispatching method, system and apparatus based on multiple centers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211051570.4A CN115145591B (zh) | 2022-08-31 | 2022-08-31 | 一种基于多中心的医疗etl任务调度方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115145591A CN115145591A (zh) | 2022-10-04 |
CN115145591B true CN115145591B (zh) | 2022-12-06 |
Family
ID=83416262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211051570.4A Active CN115145591B (zh) | 2022-08-31 | 2022-08-31 | 一种基于多中心的医疗etl任务调度方法、系统及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240071607A1 (zh) |
CN (1) | CN115145591B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487930A (zh) * | 2015-12-01 | 2016-04-13 | 中国电子科技集团公司第二十八研究所 | 一种基于Hadoop的任务优化调度方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8954968B1 (en) * | 2011-08-03 | 2015-02-10 | Juniper Networks, Inc. | Measuring by the kernel the amount of time a monitored thread spends in a queue in order to monitor scheduler delays in a computing device |
US9442760B2 (en) * | 2014-10-03 | 2016-09-13 | Microsoft Technology Licensing, Llc | Job scheduling using expected server performance information |
CN109408236A (zh) * | 2018-10-22 | 2019-03-01 | 福建南威软件有限公司 | 一种etl在集群上的任务负载均衡方法 |
CN110287245B (zh) * | 2019-05-15 | 2021-03-19 | 北方工业大学 | 用于分布式etl任务调度执行的方法及系统 |
JP7553173B2 (ja) * | 2021-01-19 | 2024-09-18 | 日立ヴァンタラ株式会社 | 管理計算機、管理システム、及び管理プログラム |
CN113778646B (zh) * | 2021-08-22 | 2024-04-05 | 物产中大公用环境投资有限公司 | 一种基于执行时间预测的任务层级调度方法及装置 |
CN113687938B (zh) * | 2021-10-27 | 2022-02-22 | 之江实验室 | 一种医疗数据计算任务智能调度方法及系统 |
CN114518945A (zh) * | 2021-12-31 | 2022-05-20 | 广州文远知行科技有限公司 | 一种资源调度方法、装置、设备及存储介质 |
-
2022
- 2022-08-31 CN CN202211051570.4A patent/CN115145591B/zh active Active
-
2023
- 2023-08-01 US US18/363,701 patent/US20240071607A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487930A (zh) * | 2015-12-01 | 2016-04-13 | 中国电子科技集团公司第二十八研究所 | 一种基于Hadoop的任务优化调度方法 |
Non-Patent Citations (2)
Title |
---|
ETL任务集群调度方法;李磊;《计算机技术与发展》;20180629(第11期);全文 * |
PBS:一种面向集群环境的ETL调度算法;韩文彪等;《计算机与数字工程》;20170520(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20240071607A1 (en) | 2024-02-29 |
CN115145591A (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Salot | A survey of various scheduling algorithm in cloud computing environment | |
Joseph et al. | IntMA: Dynamic interaction-aware resource allocation for containerized microservices in cloud environments | |
US9875135B2 (en) | Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment | |
US8739171B2 (en) | High-throughput-computing in a hybrid computing environment | |
Singh et al. | The journey of QoS-aware autonomic cloud computing | |
US8914805B2 (en) | Rescheduling workload in a hybrid computing environment | |
US9703285B2 (en) | Fair share scheduling for mixed clusters with multiple resources | |
US10108458B2 (en) | System and method for scheduling jobs in distributed datacenters | |
CN105808328B (zh) | 任务调度的方法、装置和系统 | |
CN110287018B (zh) | 批量任务编排方法及装置 | |
CN112114973B (zh) | 一种数据处理方法及装置 | |
CN107430526B (zh) | 用于调度数据处理的方法和节点 | |
WO2020121292A1 (en) | Efficient data processing in a serverless environment | |
Bommala et al. | Machine learning job failure analysis and prediction model for the cloud environment | |
Matani et al. | A fault-tolerant workflow scheduling algorithm for grid with near-optimal redundancy | |
Li et al. | SPIN: Service performance isolation infrastructure in multi-tenancy environment | |
Li et al. | Scheduling multi-tenant cloud workflow tasks with resource reliability | |
Singh et al. | A comparative study of various scheduling algorithms in cloud computing | |
Fard et al. | Budget-constrained resource provisioning for scientific applications in clouds | |
CN115145591B (zh) | 一种基于多中心的医疗etl任务调度方法、系统及装置 | |
Shin et al. | Cloud-native workflow scheduling using a hybrid priority rule and dynamic task parallelism | |
Muthuvelu et al. | An adaptive and parameterized job grouping algorithm for scheduling grid jobs | |
CN112468414B (zh) | 一种云计算多级调度方法、系统及存储介质 | |
Bagchi | Simulation of grid computing infrastructure: challenges and solutions | |
Meyer et al. | Pipel: exploiting resource reorganisation to optimise performance of pipeline-structured applications in the cloud |
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 |