CN108196959B - Etl系统的资源管理方法及装置 - Google Patents
Etl系统的资源管理方法及装置 Download PDFInfo
- Publication number
- CN108196959B CN108196959B CN201810120744.5A CN201810120744A CN108196959B CN 108196959 B CN108196959 B CN 108196959B CN 201810120744 A CN201810120744 A CN 201810120744A CN 108196959 B CN108196959 B CN 108196959B
- Authority
- CN
- China
- Prior art keywords
- task
- resource
- amount
- data
- window period
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 61
- 238000013468 resource allocation Methods 0.000 claims abstract description 26
- 238000000605 extraction Methods 0.000 claims abstract description 11
- 238000011068 loading method Methods 0.000 claims abstract description 11
- 238000006243 chemical reaction Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims description 32
- 230000008859 change Effects 0.000 claims description 16
- 230000009466 transformation Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000015654 memory Effects 0.000 description 10
- 230000009286 beneficial effect Effects 0.000 description 2
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
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)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种ETL系统的资源管理方法及装置,该方法包括:在第一任务的第一窗口周期中,获取抽取转化装载ETL系统在预设时段内对第一任务进行处理的第一数据量;根据第一数据量,确定对第一任务的资源进行调整的资源参考量;在第一任务的第二窗口周期中,根据第一任务的当前资源量和资源参考量,为第一任务进行资源分配,其中,第二窗口周期为第一窗口周期之后的一个窗口周期。用于提高资源的利用率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种ETL系统的资源管理方法及装置。
背景技术
抽取转换装载(Extract-Transform-Load,简称ETL)系统可以从数据源系统(例如业务系统、第三方系统等)获取数据,并对获取得到的数据进行抽取、转换和装载处理,并将处理后的数据存储至目标数据库。
ETL系统可以并行执行多个任务,每一个任务用于对一种类型的数据进行处理。在现有技术中,在ETL系统执行任务之前,根据预设的配置信息为任务分配资源,例如中央处理器(Central Processing Unit,简称CPU)资源、内存资源以及硬盘资源等,并根据为任务配置的资源执行任务,直至任务执行结束。然而,在现有技术中,在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为本发明实施例提供的确定资源参考量方法的流程示意图一;
图4为本发明实施例提供的确定资源参考量方法的流程示意图二;
图5为本发明实施例提供的第二数据量对应的拟合直线示意图;
图6为本发明实施例提供的ETL系统架构图;
图7为本发明实施例提供的ETL系统的资源管理装置的结构示意图一;
图8为本发明实施例提供的ETL系统的资源管理装置的结构示意图二。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的ETL系统的资源管理方法的应用场景图。请参见图1,包括数据源系统101、ETL系统102和数据库103。可选的,数据源系统101可以包括业务系统、第三方系统、预设数据库等,数据源系统101用于向ETL系统提供数据。ETL系统102用于从数据源系统101获取数据,并对获取得到的数据进行处理(抽取、转换及装载),并将处理后的数据存储至数据库103。
在本申请中,在ETL系统处理任务的过程中,可以获取一段时间内对任务进行处理的数据量,并根据数据量估计为该任务分配的资源是否合理,当确定为该任务分配的资源不合理时,则根据获取得到的数据量重新为该任务分配资源,进而避免为任务分配的资源不足或者资源过多的现象,进而提高资源的利用率。
下面,通过具体实施例,对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。
图2为本发明实施例提供的ETL系统的资源管理方法的流程示意图。请参见图2,该方法可以包括:
S201、在第一任务的第一窗口周期中,获取ETL系统在预设时段内对第一任务进行处理的第一数据量。
本发明实施例的执行主体可以为ETL系统,也可以为设置在ETL系统中的资源管理装置。可选的,资源管理装置可以通过软件实现,或者,资源管理装置也可以通过软件和硬件的结合实现。
可选的,窗口周期为ETL系统的处理周期。窗口周期可以为3秒、5秒等。当然,在实际应用过程中,可以根据实际需要设置窗口周期的时长,本发明实施例对此不作具体限定。
可选的,第一窗口周期为第一任务在运行过程中的任意一个窗口周期。
可选的,预设时段可以为当前时刻之前、预设时长的一个时段。例如,预设时段可以为当前时刻之前的三天、一天、1个小时、N个窗口周期等,N为大于1的整数。其中,窗口周期是指ETL系统对数据的处理周期,例如,窗口周期可以为3秒、5秒等。
需要说明的是,在实际应用过程中,可以根据实际需要设置预设时段,本发明实施例对此不作具体限定。
在实际应用过程中,ETL系统对任意一个任务的资源管理方法相同,本发明实施例以对ETL系统中的任意一个第一任务的管理方法为例进行说明。
可选的,ETL系统通常通过一个任务对一种类型的数据进行处理。第一数据量为ETL系统在预设时段内处理的、第一任务对应数据的数据量。
可选的,第一数据量可以通过数据行数、数据比特数等标识。
可选的,可以按照数据源对ETL系统处理的数据进行分类。例如,按照数据源,数据类型可以包括kafka类型、db类型、文件类型等。也可以按照数据格式对ETL系统处理的数据进行分类。例如,按照数据格式,数据类型可以包括json类型、自定义类型、nginx格式日志类型等。
对于不同类型的数据,使用的数据结构也可能不同,例如数据结构可以包括数据标识、数据格式、数据转化格式等。其中,数据标识用于唯一确定一种数据类型,例如,当数据标识为1时表示一种数据,当数据标识为2时表示另一种数据。数据格式可以包括字段名、字段类型等。数据转化格式可以包括转化后字段名、转化规则方法、依赖字段名等。
以智能电视视频app数据采集为例,app运行期间发生异常导致用户不能购买某一影片,这里可以产生以下数据:
数据1:用户购买影片数据(业务数据),可以如下数据项:应用程序名称:视频app;数据名称:影片支付;影片标识:00001;用户标识:00002;时间:2017-12-12 10:00:00。该数据1的及时性要求高,可以将数据1的格式设置为json格式,并采用kafka存储。
数据2:支付异常数据(支付模块运行数据),可以包含应用程序内记录该动作发生时的所有异常信息,例如,程序代码中发生异常的代码行数、发生异常的代码所属的方法、发生异常时的网络、发生异常时的内存等。该数据2的偶然性较大,可以将数据2设置为自定义个数,并采用独立文件存储。
S202、根据第一数据量,确定对第一任务的资源进行调整的资源参考量。
可选的,本发明实施例所涉及的资源可以包括CPU资源、内存资源、硬盘资源、网络资源等。当然,还可以包括其它类型的资源,本发明实施例对此不作具体限定。
可选的,可以根据第一数据量确定实际应该为第一任务分配的资源量,并根据实际应该为第一任务分配的资源量和第一任务的当前资源量确定资源参考量。该资源参考量为需要对第一任务的资源进行调整的资源量。当需要为第一任务增加资源时,资源参考量为正数,当需要为第一任务减少资源时,资源参考量为负数。
需要说明的是,在图3-图4所示的实施例中对确定对第一任务的资源进行调整的资源参考量进行详细说明,此处不再进行说明。
S203、在第一任务的第二窗口周期中,根据第一任务的当前资源量和资源参考量,为第一任务进行资源分配。
其中,第二窗口周期为第一窗口周期之后的任意一个窗口周期。例如,第二窗口周期可以为确定得到资源参考量之后的一个窗口周期。
可选的,可以通过如下可行的实现方式为第一任务进行资源分配:
若资源参考量为负数,则在第二窗口周期将第一任务的执行状态设置为暂停状态;根据当前资源量和资源参考量为第一任务进行资源分配,并将暂停状态切换至可执行状态。
若资源参考量为正数,则判断资源池中的剩余资源量是否大于资源参考量;若是,则在第二窗口周期将第一任务的执行状态设置为暂停状态;根据当前资源量和资源参考量为第一任务进行资源分配,并将暂停状态切换至可执行状态。
需要说明的是,当资源参考量为正数,且资源池中的剩余资源量小于资源参考量时,说明没有足够的资源分配给第一任务,此时,可以先不为第一任务进行资源调整,或者,也可以将资源池中剩余的所有资源量确定为第一任务的资源参考量。
本发明实施例提供的ETL系统的资源管理方法,在第一任务的第一窗口周期中,获取ETL系统在预设时段内对第一任务进行处理的第一数据量;根据第一数据量,确定对第一任务的资源进行调整的资源参考量;在第一任务的第二窗口周期中,根据第一任务的当前资源量和资源参考量,为第一任务进行资源分配,第二窗口周期为第一窗口周期之后的一个窗口周期。在上述过程中,在第一任务的第一窗口周期中,ETL系统可以根据第一数据量估计为第一任务分配的资源是否合理,当确定为第一任务分配的资源不合理时,则在第一任务的第二窗口周期中,重新为第一任务分配资源,在第一任务运行的过程中,通过动态调整第一任务的资源量,可以避免为第一任务分配的资源不足或者资源过多的现象,进而提高资源的利用率。
在上述任意一个实施例的基础上,可选的,可以通过如下可行的实现方式确定对第一任务的资源进行调整的资源参考量(图2所示实施例中的S202),具体的,请参见图3-图4所示的实施例。
图3为本发明实施例提供的确定资源参考量方法的流程示意图一。请参见图3,该方法可以包括:
S301、获取ETL系统执行第一任务时,在预设时段中的各窗口周期的至少一个实际处理时长。
在实际应用过程中,ETL系统以窗口周期为处理单位对第一任务进行处理。ETL系统在一个窗口周期的实际处理时长是指ETL系统在一个窗口周期实际进行数据处理所消耗的时长。
窗口周期对应的实际处理时长可能大于窗口周期的时长。例如,假设第一任务对应的窗口周期为3秒、预定义数据量为1万行数据,当为第一任务分配的资源较少时,ETL系统可能需要4秒才能处理完成1万行数据,此时,该窗口周期对应的实际处理时长为4秒。在该种情况下,ETL系统处理完该1万行数据之后,直接进入下一个窗口周期。
窗口周期对应的实际处理时长可能小于窗口周期的时长。例如,假设第一任务对应的窗口周期为3秒、预定义数据量为1万行数据,当为第一任务分配的资源较多时,ETL系统可能2秒即可处理完成1万行数据,此时,该窗口周期对应的实际处理时长为2秒。在该种情况下,ETL系统需要等待1秒之后,在下一个窗口周期再处理下一个1万行数据。
需要说明的是,在实际应用过程中,可能数据源系统提供的数据量不够,此时,ETL系统在一个窗口周期处理的数据量则可能小于预定义数据量。例如,假设窗口周期为3秒、预定义数据量为1万行数据,再假设数据源系统在一个窗口周期中仅向ETL系统提供的5千行数据,则就算为第一任务分配的资源足够,ETL系统在该窗口周期处理的第一任务的数据量也最多为5千行数据。
由上可知,当为第一任务分配的资源较多,或者,数据源系统提供的第一任务的数据量不足时,均可能导致窗口周期对应的实际处理时长小于窗口周期。当为第一任务分配的资源较少、且数据源系统提供的第一任务的数据量充足时,可能会导致窗口周期对应的实际处理时长大于窗口周期。
S302、根据至少一个实际处理时长和一个窗口周期的时长,确定资源参考量。
可选的,可以先获取每一个实际处理时长和窗口周期的时长的差值。若获取得到的差值中大于预设比例的差值大于第一预设阈值(第一预设阈值为正数),或者获取得到的差值中大于预设比值的差值小于第二预设阈值时(第二预设阈值为负数),才需要对第一任务的资源进行调整。
可选的,当确定需要对第一任务的资源进行资源调整时,可以计算获取得到的差值的平均值,根据该平均值确定资源参考量。其中,当该平均值为正数时,确定资源参考量为正数,当该平均值为负数时,确定资源参考量为负数。可选的,平均值越大,资源参考量越大,平均值越小,资源参考量越小。
例如,假设预设时段内包括10个窗口周期,分别记为窗口周期1-窗口周期10,窗口周期1-窗口周期10对应的实际处理时长分别记为实际处理时长1-实际处理时长10,一个窗口周期的时长为3秒。再假设预设比例为80%,第一预设阈值为1秒,第二预设阈值为1秒。
可以先获取该10个窗口周期中每一个窗口周期对应的实际处理时长,假设该10个窗口周期对应的实际处理时长如表1所示:
表1
由上可知,实际处理时长1-实际处理时长10中,存在8个实际处理时长的差值大于1(第一阈值),则确定需要对第一任务的资源进行调整。可以再计算各差值的平均值为0.81,根据该平均值0.81确定资源参考量,例如,可以确定资源参考量为CPU个数加2,内存数加2。
在图3所示的实施例中,根据预设时段内各窗口周期对应的实际处理时长,可以估计在预设时段内为第一任务分配的资源是否合理,在确定为第一任务分配的资源不合理时,根据实际处理时长为第一任务分配合理的资源,进而提高资源利用率。
图4为本发明实施例提供的确定资源参考量方法的流程示意图二。请参见图4,该方法可以包括:
S401、获取第一任务对应的、在一个窗口周期处理的预定义数据量。
可选的,第一任务对应的任务定义中定义了第一任务的处理过程、窗口周期、预定义数据量等。相应的,可以在第一任务对应的任务定义中获取预定义数据量。
在实际应用过程中,预设有第一任务在一个窗口周期需要处理的预定义数据量,例如,预定义数据量可以为1万行数据。当然,在实际应用过程中,可以根据实际需要设置预定义数据量,本发明实施例对此不作具体限定。
S402、分别获取ETL系统在预设时段中的各窗口周期处理第一任务的至少一个第二数据量。
可选的,第二数据量可以通过数据行数表示,也可以通过比特表示,本发明实施例对此不作具体限定。
在实际应用过程中,当数据源系统为ETL系统提供的第一任务的数据量不足时,ETL系统在各窗口周期处理的第一任务的第二数据量小于预定义数据量。当数据源系统为ETL系统提供的第一任务的数据量充足时,ETL系统在各窗口周期处理的第一任务的第二数据量等于预定义数据量。
由上可知,第二数据量通常小于或等于预定义数据量。
S403、根据至少一个第二数据量和预定义数据量,确定资源参考量。
可选的,可以通过如下可行的实现方式根据至少一个第二数据量和预定义数据量,确定资源参考量:
获取至少一个第二数据量的变化率,根据至少一个第二数据量的变化率,确定在下一个预设时段内的预估数据量,根据预估数据量和预定义数据量,确定资源参考量。
可选的,可以获取至少一个第二数据量对应的拟合直线,将该拟合直线的斜率确定为第二数据量的变化率。
例如,假设在窗口周期1-窗口周期7获取得到的7个第二数据量分别为:1万、1.1万、1.2万、1.3万、1.35万、1.4万等,则根据该至少一个第二数据量可以拟合该至少一个第二数据量所在的执行如图5所示。
图5为本发明实施例提供的第二数据量对应的拟合直线示意图。请参见图5,横坐标为窗口周期数,纵坐标为第二数据量。图5中所示的拟合直线为根据上述7个第二数据量拟合得到的,以使该7个第二数据量对应的坐标与拟合直线之间的距离尽可能的小。
可选的,当第二数据量的变化率大于第一阈值、且小于第二阈值时,可以确定第二数据量的变化趋势为水平趋势,此时,可以不对第一任务的资源进行调整。其中,第一阈值为负数,第二阈值为正数。
可选的,当第二数据量的变化率大于第二阈值时,第二数据量的变化趋势为递增趋势,此时,可以根据变化率和至少一个第二数据量,确定在下一个预设时段内的预估数据量,判断在下一个预设时段内的预估数据量是否大于预定义数据量,若是,则确定需要增加第一任务的资源,此时,资源参考量为正数。具体的,可以根据预估数据量和预定义数据量之间的差值确定资源参考量,差值越大,资源参考量越大。
可选的,当第二数据量的变化率小于第一阈值时,第二数据量的变化趋势为递减趋势,此时,可以根据变化率和至少一个第二数据量,确定在下一个预设时段内的预估数据量,当预估数据量小于预定义数据量,且预定义数据量与预估数据量的差值大于预设阈值时,确定需要减少第一任务的资源,此时,资源参考量为负数。具体的,预定义数据量与预估数据量的差值越大,资源参考量越小。
在图4所示的实施例中,根据预设时段内的至少一个第二数据量的变化率,可以预估在下一个预设时段内需要处理的预估数据量,根据预估数据量和预定义数据量可以确定下一个预设时段内需要调整为第一任务分配的资源,进而提高资源利用率。
在上述任意一个实施例的基础上,可以周期性执行图2-图4实施例所示的方法。当然,还可以在确定所述第一任务的配置信息发生变化,或者,确定所述ETL系统中的第二任务发生更新,且资源池的剩余资源量小于所述第二任务的资源需求量时,再执行图2-图4实施例所示的方法。在该种情况下,可以在ETL系统中设置任务配置模块、任务调度模块以及资源监控模块,具体的,请参见图5所示的ETL系统架构图。
图6为本发明实施例提供的ETL系统架构图。请参见图6,包括任务配置模块、任务调度模块、资源监控模块和ETL处理模块。
任务配置模块可以为任务分配唯一的标识,并设置任务的状态,例如,任务的状态可以包括新增任务、删除任务和更新任务。任务配置模块还可以设置任务的参数,例如,资源默认值、是否自动调节资源、任务模块等。
其中,任务模板是ETL处理流程的引擎模板,根据不同的业务特点选择对应的模板,配置ETL处理流程各环节使用参数的配置数据库,构造各环节执行时的参数数据。这种方式将数据结构与具体处理流程拆分,适用于不同的技术平台,当具体ETL处理架构发生变化时,只要修改、增加对应的模板即可。
在ETL处理模块对任务进行处理的过程中,可以生成过程数据。例如,过程数据可以包括处理时间、处理的正确数据量、处理的错误数据量、异常信息、存储数据量等。
资源监控模块可以获取ETL处理模块在处理过程中产生的过程数据,并根据过程数据分析为各个任务分配的资源是否合理,可选的,在ETL处理模块生成过程数据之后,可以将生成的过程数据发送给资源监控模块,或者,资源监控模块也可以向ETL处理模块请求获取过程数据。若不合理,可以根据过程数据计算出优化资源配置。资源监控模块还可以将优化资源配置发送给任务调度模块,或者资源监控模块还可以将优化资源配置存储至优化资源列表,以使任务调度模块可以从优化资源列表获取得到优化资源配置。
可选的,资源监控模块在进行资源监控的过程中,可以先获取TEL模块在一个时段内产生的过程数据,并对该一个时段内产生的过程数据进行分析,以判断为各个任务分配的资源是否合理,当确定为任务分配的资源不合理时,则根据过程数据计算优化资源配置。即,在任务运行的过程中,资源监控模块可以根据任务在一个时段内的运行情况对为任务分配的资源进行分析,进而可以实现在任务运行过程中对任务的资源进行动态调整,进而提高资源的利用率。
任务调度模块可以获取任务配置模块对任务的任务配置信息、以及资源监控模块生成优化资源配置,并根据任务配置信息和优化资源配置,对执行的任务进行调度。
例如,任务调度模块可以实时获取更新的任务配置信息,将任务状态追加到任务定义列表。例如,任意一个任务的任务定义结构可以包括:任务名、任务状态(add、update、del)、资源参数(cpu数:n,执行内存数:x,驱动内存数:y,批次记录数:z,窗口周期:t)、是否自动调整资源flag、任务时间戳、执行状态:新添加。
任务调度模块还可以读取任务定义列表,与当前正在执行的任务列表做匹配,任务名称一致的更新任务状态,其中,任务状态包括删除状态、更新状态和新增状态,无变更的任务状态为default状态。将当前任务列表存储在临时任务列表中。进一步的,发生参数变更的任务同时更新任务时间戳;待删除任务的资源合入待分配资源池;执行状态全部为待执行。
任务调度模块还可以读取优化后任务资源配置列表,与临时任务列表中的任务配置做匹配,匹配规则如下:
更新当前任务状态为删除状态的任务,执行状态更新为可执行。
匹配当前任务状态为default状态的任务,且优化资源参数为减少的任务,且自动调整资源flag为是,则更新资源参数、任务状态更新为更新状态、执行状态为可执行。
匹配当前任务状态为更新状态的任务,且优化资源参数为减少的任务,则更新资源参数、任务状态更新为更新状态,执行状态为可执行。
匹配当前任务状态为更新状态的任务,且优化资源参数为增加的任务,如果待分配资源池的资源数充足,则更新资源参数、任务状态更新更新状态、执行状态为可执行;如果待分配资源池的资源数不充足,则保持原状。
匹配当前任务状态为default状态的任务,且优化资源参数为增加的任务,且自动调整资源flag为是,且待分配资源池的资源数充足,则更新资源参数、任务状态更新为更新状态、执行状态为可执行;如果待分配资源池的资源数不充足,则保持当前资源参数,执行状态更新为可执行;如果自动调整资源flag为否,则保持当前资源参数,执行状态更新为可执行;如果资源参数未发生变更,则执行状态更新为可执行。
匹配当前任务状态为新增状态的任务,如果待分配资源池的资源数充足,则更新资源参数、任务状态更新为新增状态、执行状态为可执行;如果待分配资源池的资源数不充足,则保持原状。
对临时任务列表中状态为可执行的任务逐个生成任务控制命令。
对于新增状态和更新状态的任务:根据任务模板和具体任务定义参数,生成supervisor的任务配置文件,执行supervisorctl-s supervisorurl update,重新启动sprak解析任务。对于删除状态任务:执行supervisorctl-s supervisorurl stop任务名,停止spark解析任务。对于default状态任务:不做处理。
对于spark任务启动异常时,发送告警信息,将临时任务列表中任务的执行状态更新为未执行,将任务定义列表中的状态更新为未执行;正常启动时,将该任务从临时任务列表移除,从任务定义列表移除,从优化后任务配置列表移除,添加或更新当前任务列表,状态更新为执行中。
图7为本发明实施例提供的ETL系统的资源管理装置的结构示意图一。请参见图7,该装置可以包括获取模块11、第一确定模块12和分配模块13,其中,
所述获取模块11用于,在第一任务的第一窗口周期中,获取抽取转化装载ETL系统在预设时段内对所述第一任务进行处理的第一数据量;
所述第一确定模块12用于,根据所述第一数据量,确定对所述第一任务的资源进行调整的资源参考量;
所述分配模块13用于,在所述第一任务的第二窗口周期中,根据所述第一任务的当前资源量和所述资源参考量,为所述第一任务进行资源分配,其中,所述第二窗口周期为所述第一窗口周期之后的一个窗口周期。
本发明实施例提供的ETL系统的资源管理装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述第一确定模块12具体用于:
获取所述ETL系统执行所述第一任务时,在所述预设时段中的各窗口周期的至少一个实际处理时长;
根据所述至少一个实际处理时长和一个窗口周期的时长,确定所述资源参考量。
在另一种可能的实施方式中,所述第一确定模块12具体用于:
获取所述第一任务对应的、在一个窗口周期处理的预定义数据量;
获取所述ETL系统在所述预设时段中各窗口周期处理所述第一任务的至少一个第二数据量;
根据所述至少一个第二数据量和所述预定义数据量,确定所述资源参考量。
在另一种可能的实施方式中,所述第一确定模块12具体用于:
根据所述至少一个第二数据量的变化率,确定在下一个预设时段内的预估数据量;
根据所述预估数据量和所述预定义数据量,确定资源参考量。
在另一种可能的实施方式中,所述分配模块13具体用于:
若所述资源参考量为负数,则在所述第二窗口周期将所述第一任务的执行状态设置为暂停状态;
根据所述当前资源量和所述资源参考量为所述第一任务进行资源分配,并将所述暂定状态执行状态切换至可执行状态;
在另一种可能的实施方式中,所述分配模块13具体用于:
若所述资源参考量为正数,则判断资源池中的剩余资源量是否大于所述资源参考量;
若是,则在所述第二窗口周期将所述第一任务的执行状态设置为暂停状态;
根据所述当前资源量和所述资源参考量为所述第一任务进行资源分配,并将所述暂停状态切换至可执行状态。
图8为本发明实施例提供的ETL系统的资源管理装置的结构示意图二。在图7所示实施例的基础上,请参见图8,所述装置还包括第二确定模块14,其中,
所述第二确定模块14用于,在所述获取模块11获取抽取转化装载ETL系统在预设时段内对第一任务进行处理的第一数据量之前,确定所述第一任务的配置信息发生变化;或者,确定所述ETL系统中的第二任务发生更新,且资源池的剩余资源量小于所述第二任务的资源需求量。
本发明实施例提供的ETL系统的资源管理装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例方案的范围。
Claims (10)
1.一种ETL系统中的任务资源管理方法,其特征在于,包括:
在第一任务的第一窗口周期中,获取抽取转化装载ETL系统在预设时段内对所述第一任务进行处理的第一数据量;
根据所述第一数据量,确定对所述第一任务的资源进行调整的资源参考量;所述资源参考量为需要对所述第一任务的资源进行调整的资源量,所述第一数据量为所述ETL系统在所述预设时段内处理的、所述第一任务对应数据的数据量;
在所述第一任务的第二窗口周期中,根据所述第一任务的当前资源量和所述资源参考量,为所述第一任务进行资源分配,其中,所述第二窗口周期为所述第一窗口周期之后的一个窗口周期。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据量,确定对所述第一任务的资源进行调整的资源参考量,包括:
获取所述ETL系统执行所述第一任务时,在所述预设时段中的各窗口周期的至少一个实际处理时长;
根据所述至少一个实际处理时长和一个窗口周期的时长,确定所述资源参考量。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一数据量,确定对所述第一任务的资源进行调整的资源参考量,包括:
获取所述第一任务对应的、在一个窗口周期处理的预定义数据量;
获取所述ETL系统在所述预设时段中各窗口周期处理所述第一任务的至少一个第二数据量;
根据所述至少一个第二数据量和所述预定义数据量,确定所述资源参考量。
4.根据权利要求3所述的方法,其特征在于,根据所述至少一个第二数据量和所述预定义数据量,确定所述资源参考量,包括:
根据所述至少一个第二数据量的变化率,确定在下一个预设时段内的预估数据量;
根据所述预估数据量和所述预定义数据量,确定资源参考量。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述在所述第一任务的第二窗口周期中,根据所述第一任务的当前资源量和所述资源参考量,为所述第一任务进行资源分配,包括:
若所述资源参考量为负数,则在所述第二窗口周期将所述第一任务的执行状态设置为暂停状态;
根据所述当前资源量和所述资源参考量为所述第一任务进行资源分配,并将所述暂停状态切换至可执行状态。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述在所述第一任务的第二窗口周期,根据所述第一任务的当前资源量和所述资源参考量,为所述第一任务进行资源分配,包括:
若所述资源参考量为正数,则判断资源池中的剩余资源量是否大于所述资源参考量;
若是,则在所述第二窗口周期将所述第一任务的执行状态设置为暂停状态;
根据所述当前资源量和所述资源参考量为所述第一任务进行资源分配,并将所述暂停状态切换至可执行状态。
7.根据权利要求1-4任一项所述的方法,其特征在于,获取抽取转化装载ETL系统在预设时段内对第一任务进行处理的第一数据量之前,还包括:
确定所述第一任务的配置信息发生变化;或者,
确定所述ETL系统中的第二任务发生更新,且资源池的剩余资源量小于所述第二任务的资源需求量。
8.一种ETL系统中的任务资源管理装置,其特征在于,包括获取模块、第一确定模块和分配模块,其中,
所述获取模块用于,在第一任务的第一窗口周期中,获取抽取转化装载ETL系统在预设时段内对所述第一任务进行处理的第一数据量;
所述第一确定模块用于,根据所述第一数据量,确定对所述第一任务的资源进行调整的资源参考量;所述资源参考量为需要对所述第一任务的资源进行调整的资源量,所述第一数据量为所述ETL系统在所述预设时段内处理的、所述第一任务对应数据的数据量;
所述分配模块用于,在所述第一任务的第二窗口周期中,根据所述第一任务的当前资源量和所述资源参考量,为所述第一任务进行资源分配,其中,所述第二窗口周期为所述第一窗口周期之后的一个窗口周期。
9.根据权利要求8所述的装置,其特征在于,所述第一确定模块具体用于:
获取所述ETL系统执行所述第一任务时,在所述预设时段中的各窗口周期的至少一个实际处理时长;
根据所述至少一个实际处理时长和一个窗口周期的时长,确定所述资源参考量。
10.根据权利要求9所述的装置,其特征在于,所述第一确定模块具体用于:
获取所述第一任务对应的、在一个窗口周期处理的预定义数据量;
获取所述ETL系统在所述预设时段中各窗口周期处理所述第一任务的至少一个第二数据量;
根据所述至少一个第二数据量和所述预定义数据量,确定所述资源参考量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810120744.5A CN108196959B (zh) | 2018-02-07 | 2018-02-07 | Etl系统的资源管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810120744.5A CN108196959B (zh) | 2018-02-07 | 2018-02-07 | Etl系统的资源管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108196959A CN108196959A (zh) | 2018-06-22 |
CN108196959B true CN108196959B (zh) | 2021-06-01 |
Family
ID=62593174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810120744.5A Active CN108196959B (zh) | 2018-02-07 | 2018-02-07 | Etl系统的资源管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108196959B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7259288B2 (ja) * | 2018-11-28 | 2023-04-18 | 日本電気株式会社 | ジョブスケジューリング装置、管理システム、及びスケジューリング方法 |
CN109871336B (zh) * | 2019-01-14 | 2021-02-02 | 珠海金山网络游戏科技有限公司 | 一种动态缓存调整方法及系统 |
CN110362392A (zh) * | 2019-07-15 | 2019-10-22 | 深圳乐信软件技术有限公司 | 一种etl任务调度方法、系统、设备及存储介质 |
CN111309468B (zh) * | 2020-02-27 | 2024-09-13 | 腾讯云计算(北京)有限责任公司 | 资源调度方法、装置及存储介质 |
CN112101714B (zh) * | 2020-08-06 | 2023-12-29 | 长沙市到家悠享家政服务有限公司 | 任务分配方法、装置、设备和存储介质 |
CN114035940A (zh) * | 2021-10-18 | 2022-02-11 | 阿里巴巴(中国)有限公司 | 资源分配方法以及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541656A (zh) * | 2010-12-31 | 2012-07-04 | 中国银联股份有限公司 | 生成多维分析Cube的方法和系统 |
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
CN104050042A (zh) * | 2014-05-30 | 2014-09-17 | 北京先进数通信息技术股份公司 | Etl作业的资源分配方法及装置 |
CN105843679A (zh) * | 2016-03-18 | 2016-08-10 | 西北工业大学 | 自适应众核资源调度方法 |
CN106911592A (zh) * | 2016-06-01 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种自适应资源分配方法及装置 |
CN107045456A (zh) * | 2016-02-05 | 2017-08-15 | 华为技术有限公司 | 一种资源分配方法及资源管理器 |
-
2018
- 2018-02-07 CN CN201810120744.5A patent/CN108196959B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541656A (zh) * | 2010-12-31 | 2012-07-04 | 中国银联股份有限公司 | 生成多维分析Cube的方法和系统 |
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
CN104050042A (zh) * | 2014-05-30 | 2014-09-17 | 北京先进数通信息技术股份公司 | Etl作业的资源分配方法及装置 |
CN107045456A (zh) * | 2016-02-05 | 2017-08-15 | 华为技术有限公司 | 一种资源分配方法及资源管理器 |
CN105843679A (zh) * | 2016-03-18 | 2016-08-10 | 西北工业大学 | 自适应众核资源调度方法 |
CN106911592A (zh) * | 2016-06-01 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种自适应资源分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108196959A (zh) | 2018-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108196959B (zh) | Etl系统的资源管理方法及装置 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
US10515326B2 (en) | Database systems and related queue management methods | |
CN109271435B (zh) | 一种支持断点续传的数据抽取方法及系统 | |
WO2019205371A1 (zh) | 服务器、消息分配的方法及存储介质 | |
US9870269B1 (en) | Job allocation in a clustered environment | |
CN109901918B (zh) | 一种处理超时任务的方法和装置 | |
WO2020140634A1 (zh) | 存储空间优化方法、装置、计算机设备及存储介质 | |
CN111381970B (zh) | 集群任务的资源分配方法及装置、计算机装置及存储介质 | |
CN110445828B (zh) | 一种基于Redis的数据分布式处理方法及其相关设备 | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
US9292336B1 (en) | Systems and methods providing optimization data | |
US8583608B2 (en) | Maximum allowable runtime query governor | |
CN107688626B (zh) | 慢查询日志处理方法、装置及电子设备 | |
CN112052082B (zh) | 任务属性优化方法、装置、服务器及存储介质 | |
CN110297820B (zh) | 一种数据处理方法、装置、设备和存储介质 | |
CN114223189A (zh) | 时长统计方法、装置、电子设备和计算机可读介质 | |
WO2021036319A1 (zh) | 数据清洗方法和系统 | |
CN110347546B (zh) | 监控任务动态调整方法、装置、介质及电子设备 | |
CN112948081B (zh) | 延时处理任务的方法、装置、设备以及存储介质 | |
CN113010310B (zh) | 作业数据的处理方法、装置和服务器 | |
CN109144989B (zh) | 一种数据清洗的方法及用于数据清洗的装置 | |
CN114090409A (zh) | 一种消息处理方法及装置 | |
CN108958926B (zh) | 一种基于达尔文流媒体服务器的虚拟内存池设计方法 | |
US7805326B2 (en) | System to resolve scheduling constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240725 Address after: 266104 No. 399, Songling Road, Laoshan District, Qingdao, Shandong Province (the third floor of A6) Patentee after: QINGDAO JUKANYUN TECHNOLOGY CO.,LTD. Country or region after: China Address before: 266061 Songling Road, Laoshan District, Qingdao, Shandong Province, No. 399 Patentee before: JUHAOKAN TECHNOLOGY Co.,Ltd. Country or region before: China |
|
TR01 | Transfer of patent right |