CN107315627A - 一种自动化配置数据仓库并行任务队列的方法和装置 - Google Patents
一种自动化配置数据仓库并行任务队列的方法和装置 Download PDFInfo
- Publication number
- CN107315627A CN107315627A CN201710397740.7A CN201710397740A CN107315627A CN 107315627 A CN107315627 A CN 107315627A CN 201710397740 A CN201710397740 A CN 201710397740A CN 107315627 A CN107315627 A CN 107315627A
- Authority
- CN
- China
- Prior art keywords
- task
- user
- resource
- queue
- duration
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000008569 process Effects 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 5
- 230000006854 communication Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 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 1
- 238000000205 computational method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种自动化配置数据仓库并行任务队列的方法和装置、电子设备和计算机可读介质,其方法包括:采集用户的任务在数据仓库中运行的历史数据;对所述历史数据进行处理,统计出任务的资源占用时长;根据所述资源占用时长对所述任务进行排序;根据排序的结果以及用户的资源进程数,将任务分配到任务队列中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种自动化配置数据仓库并行任务队列的方法和装置、电子设备和计算机可读介质。
背景技术
目前,企业在建立公司内部的数据仓库***后,不同部门的用户获取需要的数据时,会在数据仓库上开发相应的数据任务,每一个任务包括若干业务数据处理逻辑,通过在数据仓库上的执行,最终得到需要的数据结果。
由于使用数据仓库获取数据的人数众多,而***资源有限,为确保每个用户的正常使用,因此给予分配用户一定的任务并发数控制。例如分配给一个用户可以并发执行3个任务,即分配给该用户3个独享的任务进程资源,这样该用户执行自己任务时不被其他用户因抢占资源而无法执行。当用户任务全部执行完成后,释放资源,可以供其他用户使用。这种处理方式,既能保证所有用户的任务可执行,也保证资源的灵活配置。
但是在给一个用户分配任务进程资源后,当用户输入需要执行的一些任务后,这些任务的执行顺序是随机的,这里随机执行产生的原因有可能是用户手动操作执行任务的顺序,也可能用户设置任务自动执行,但服务器端启动任务是随机的。现有技术方法的缺点是用户执行的N个任务输入后,是随机的分配给任务资源进程中处理,并没有考虑每个任务的不同的执行情况,例如对资源的占用情况等,没有考虑对用户的所有任务进行合理的计划,以及用户任务与对其分配的资源进程队列之间的匹配,所以会造成用户占用***资源较长、资源使用率较低,当数据仓库上使用人数众多时,导致整体资源浪费较多。
发明内容
有鉴于此,本发明实施例提供一种自动化配置数据仓库并行任务队列的方法和装置,能够通过计算用户的任务资源占用时长和分配队列总资源占用的情况,将任务分配到任务队列中。
为实现上述目的,根据本发明实施例的一个方面,提供了一种自动化配置数据仓库并行任务队列的方法。
本发明实施例公开的自动化配置数据仓库并行任务队列的方法,包括:采集用户的任务在数据仓库中运行的历史数据;对所述历史数据进行处理,统计出任务的资源占用时长;根据所述资源占用时长对所述任务进行排序;根据排序的结果以及用户的资源进程数,将任务分配到任务队列中。
可选地,根据排序的结果以及用户的资源进程数,将任务分配到任务队列中包括:按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收所述任务的任务队列的总时长中。
可选地,还包括:判断用户的任务个数是否小于或等于用户的资源进程数;若是,则将任务一对一且随机地分配到任务队列中;否则,按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收所述任务的任务队列的总时长中。
可选地,根据所述资源占用时长将用户的任务按照从大到小或从小到大的顺序进行排序;并且,获取用户的资源进程号。
可选地,还包括:根据任务的类型设置采集历史数据的时间段,并将采集到的所述历史数据存储在数据表中,所述历史数据包括:运行的日期、用户名、任务编号、任务名称和任务开始时间、任务结束时间。
可选地,所述对所述历史数据进行处理,统计出任务的资源占用时长包括:根据采集的历史数据,计算出每一个任务的平均资源占用时长。
为实现上述目的,根据本发明实施例的另一方面,提供了一种自动化配置数据仓库并行任务队列的装置。
本发明实施例公开的自动化配置数据仓库并行任务队列的装置,包括:采集模块,用于采集用户的任务在数据仓库中运行的历史数据;处理模块,用于对所述历史数据进行处理,统计出任务的资源占用时长;排序模块,用于根据所述资源占用时长对所述任务进行排序;分配模块,用于根据排序的结果以及用户的资源进程数,将任务分配到任务队列中。
可选地,所述分配模块用于按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收所述任务的任务队列的总时长中。
可选地,还包括判断模块,用于判断用户的任务个数是否小于或等于用户的资源进程数;若是,则所述分配模块将任务一对一且随机地分配到任务队列中;否则,分配模块按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收所述任务的任务队列的总时长中。
可选地,所述排序模块根据所述资源占用时长将用户的任务按照从大到小或从小到大的顺序进行排序;以及,获取用户的资源进程号。
可选地,还包括设置模块,用于根据任务的类型设置采集历史数据的时间段,并将采集到的所述历史数据存储在数据表中,所述历史数据包括:运行的日期、用户名、任务编号、任务名称和任务开始时间、任务结束时间。
可选地,所述处理模块根据采集的历史数据,计算出每一个任务的平均资源占用时长。
为实现上述目的,根据本发明实施例的再一方面,提供了一种自动化配置数据仓库并行任务队列的电子设备。
本发明实施例公开的自动化配置数据仓库并行任务队列的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述自动化配置数据仓库并行任务队列的方法中任一所述的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现上述自动化配置数据仓库并行任务队列的方法中任一所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用了按照任务的资源占用时长的顺序,将任务分配到任务队列中的技术手段,所以克服了现有技术中随机分配任务或按照时间顺序分配任务中执行效率低、***资源浪费的技术问题,同时达到不依赖人工方法,采用自动化配置的方法对用户输入任务进行队列分配,并对分配队列中的任务配置合理的执行顺序,避免随机执行任务造成的资源使用较低的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是现有技术中数据仓库上的数据任务分配执行的流程示意图;
图2是根据本发明实施例一种自动化配置数据仓库并行任务队列的方法主要步骤的示意图;
图3是根据本发明实施例一种自动化配置数据仓库并行任务队列的方法流程图;
图4是根据本发明实施例任务分配过程的示意图;
图5是根据本发明实施例的一种自动化配置数据仓库并行任务队列的装置主要模块的示意图;
图6是适于用来实现本申请实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是现有技术中数据仓库上的数据任务分配执行的流程示意图。
如图1所示,现有技术中数据仓库上的数据任务分配执行的过程包括三部分,第一部分为任务输入,第二部分为任务分发,第三部分为任务执行。第一部分是用户的数据任务,每一个任务都是获取数据仓库的数据,经过业务处理逻辑的加工,最终获取需要的数据结果。将数据任务开发好后,作为输入,等待下一步分配到合适的资源进程中执行。第二部分是任务分发程序,主要是负责将上一步用户输入的任务进行分配,即安排任务进入到对应的进程资源队列中。第三部分是***执行已分配到的资源进程队列中的任务,并输出执行后的数据结果。目前现有的技术方案是用户的任务作为输入,无论是通过人工方式输入还是自动方式,都可以看成任务分发程序将用户输入的任务列队随机的分发给用户已分配的资源进程队列中。
如图1所示,首先,图1中“任务队列”表示用户A的待执行的N个任务。需要说明的是这N个任务之间并不存在相互依赖关系,即彼此是独立的。其次,这N个任务作为输入,将被数据仓库***的“任务分发程序”进行分配。然后,“任务资源队列”就是存放上一步中“任务分发程序”将用户A的N个任务分配到相应的任务资源进程中等待执行的任务。对于不同用户来说,任务资源进程的数量是由数据仓库管理人员事先分配给用户的,即对用户A可以并发执行数据任务的数量为k,通常k<=5。最后,“任务执行”指***执行任务资源进程中的任务,输出相应的数据结果。以上示例中,在“任务资源进程1”中待执行的任务是:任务1、任务3、任务4;在“任务资源进程2”中待执行的任务是:任务2、任务N-1;在“任务资源进程k”中待执行的任务是:任务N;现有情况下,分配给“任务资源进程”中待执行的任务具体是哪个、任务数量、任务顺序都是随机的。
图2是根据本发明实施例一种自动化配置数据仓库并行任务队列的方法主要步骤的示意图。
如图2所示,本发明实施例一种自动化配置数据仓库并行任务队列的方法主要包括:
S21:采集用户的任务在数据仓库中运行的历史数据。根据任务的类型设置采集历史数据的时间段,并将采集到的历史数据存储在数据表中以便于后续数据的处理。其中,历史数据包括:运行的日期、用户名、任务编号、任务名称和任务开始时间、任务结束时间。对于一个新的任务,一般在上线前都会经过测试运行,测试运行时间30天,那么可以采集测试运行每天的日志数据,对于测试任务上线前在测试环境运行不占用正式环境资源。
S22:对历史数据进行处理,统计出任务的资源占用时长。根据采集的历史数据,计算出每一个任务的平均资源占用时长。根据采集的历史数据中任务开始时间和任务结束时间,计算出每个任务的每条日志中的占用时间,并根据以下公式求出该任务的平均值:
其中,i表示用户A的第i个任务;m表示用户的任务个数;
j表示用户第j天的执行情况数据;N表示采集的历史数据为连续N天的任务执行的数据。
S23:根据资源占用时长将任务进行排序,可按照从大到小进行排序,也可按照从小到大进行排序。通过该排序过程,在接下来的步骤中可直接按照该排序结果对任务进行分配,使得分配过程简洁有序。
S24:根据排序的结果以及用户的资源进程数,将任务分配到任务队列中。其具体包括:按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收任务的任务队列的总时长中。
在分配之前,可判断用户的任务个数是否小于或等于用户的资源进程数;若是,则将任务一对一且随机地分配到任务队列中;否则,按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收任务的任务队列的总时长中。
本发明实施通过上述方案,可以使得在数据仓库中任务分配中,不依赖人工方法,采用自动化配置的方法对用户输入任务进行队列分配,并对分配队列中的任务配置合理的执行顺序,避免随机执行任务造成的资源使用较低的问题。同时,通过计算用户的任务资源占用和分配队列总资源占用的情况进行任务分配队列,又可以自动有效的将任务与任务队列(资源进程)进行匹配,避免任务队列与资源进程队列不匹配导致的任务执行效率低、***资源浪费的问题。
图3是根据本发明实施例一种自动化配置数据仓库并行任务队列的方法流程图。
如图3所示,在本发明实施例中,获取用户的任务在数据仓库中运行的历史数据,其中历史数据的内容如下表:
日期 | 用户 | 任务编号 | 任务名称 | 任务开始时间 | 任务结束时间 |
采集到的数据存储到下表,以采集用户A的数据的内容为例:
2016-11-01 | user_A | job_01 | 任务01 | 2016/11/11 7:11:05 | 2016/11/11 7:52:56 |
20161101 | user_A | job_02 | 任务02 | 2016/11/11 7:09:05 | 2016/11/11 7:41:29 |
2016-11-01 | user_A | job_03 | 任务03 | 2016/11/11 7:02:45 | 2016/11/11 7:28:25 |
2016-11-01 | user_A | job_04 | 任务04 | 2016/11/11 9:20:03 | 2016/11/11 9:40:10 |
2016-11-01 | user_A | job_05 | 任务05 | 2016/11/11 9:30:05 | 2016/11/11 9:49:14 |
2016-11-01 | user_A | job_06 | 任务06 | 2016/11/11 9:02:05 | 2016/11/11 9:25:27 |
2016-11-01 | user_A | job_07 | 任务07 | 2016/11/11 9:14:03 | 2016/11/11 9:22:27 |
2016-11-01 | user_A | job_08 | 任务08 | 2016/11/11 9:46:57 | 2016/11/11 9:53:27 |
2016-11-01 | user_A | job_09 | 任务09 | 2016/11/11 9:06:53 | 2016/11/11 9:12:27 |
2016-11-01 | user_A | job_10 | 任务10 | 2016/11/11 9:35:05 | 2016/11/11 9:39:27 |
2016-11-02 | user_A | job_01 | 任务01 | …… | …… |
…… | …… | …… | …… | …… | …… |
2016-11-03 | user_A | job_01 | 任务01 | …… | …… |
…… | …… | …… | …… | …… | …… |
上表是采集的用户A在连续N天内任务执行日志,如N=7,当前前是2016年11月8日的话,则采集2016-11-01至2016-11-07的任务执行日志数据。当然采集历史数据的时间段也可以不连续,其中设置的采集历史数据的时间段和任务的类型有关,比如任务是按天执行,即该任务会每天都执行,如果任务是按周或按月执行,则采集过滤连续几个执行周期的数据。对于一个任务,一天采集到的只有一个执行数据(即使重复执行多次,也只采集最近一次),这个是由于数据仓库目前是按离线T+1的方式执行,正常情况下,任务最多即按天执行一次成功获取昨天之前的数据结果。
采集到历史数据之后,对历史数据的数据表进行处理,得到用户A的每个任务的资源占用时长。计算方法为:用户A的某一个任务的N天执行时长的平均资源占用时长,即:
i表示用户A的第i个任务;m表示用户A的任务个数;
所以,以上例数据用户A有10个任务,m=10,则i从1至10;
j表示用户第j天的执行情况数据;N表示连续N天,本文中用N=7。
按照上述方法对用户A的任务的历史数据处理后,得到下表:
用户 | 任务编号 | 资源占用时长(分钟) |
user_A | job_01 | 41 |
user_A | job_02 | 32 |
user_A | job_03 | 25 |
user_A | job_04 | 20 |
user_A | job_05 | 19 |
user_A | job_06 | 23 |
user_A | job_07 | 8 |
user_A | job_08 | 6 |
user_A | job_09 | 5 |
user_A | job_10 | 4 |
然后根据统计出的资源占用时长,将用户A的任务进行排序,排序结果如下表:
排序(rn) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
任务编号 | job_10 | job_09 | job_08 | job_07 | job_05 | job_04 | job_06 | job_03 | job_02 | job_01 |
占用时长 | 4 | 5 | 6 | 8 | 19 | 20 | 23 | 25 | 32 | 41 |
通过上述一系列的处理,可对任务进行分配。在分配之前,将任务队列(分配队列)进行初始。例如,对于上述用户A,设定数据仓库***管理员分配给用户A的资源进程队列个数为k,举例:k=3。同时,设定Q个任务队列,令Q=k=3时,队列分别命名为:Que_A、Que_B、Que_C;初始化三个队列均为空,即默认队列中任务总时长为0,记为:
SQue_A=0
SQue_B=0
SQue_C=0
下一步将用户A的任务逐个添加到任务队列中,将任务分配到队列的处理逻辑如下:
a.当用户的任务个数m<=任务队列个数Q时,可随机将任务分配到任务队列中,只要保证一个任务队列中只分配到一个任务。由于任务是最小单元,不可拆分,所以如果任务个数小于任务队列个数,相当于每个任务都可以立即得到资源分配和执行,此时肯定是占用资源总时长最小。也可依次获取队尾任务编号的任务加入到任务队列中,即job_[m]加入到Que_A,job_[m-1]加入到Que_B中,……,job_01加入到Que_[k]中。举例如某用户的任务参数为m=2,Q=3,其任务为:
排序(rn) | 1 | 2 |
任务编号 | job_01 | job_02 |
占用时长 | 4 | 7 |
按照上述依次获取队尾任务编号的任务加入到任务队列中的方法,job_02加入到Que_A中,job_01加入到Que_B中,Que_C中没有任务。则任务队列的总时长记为:
SQue_A=7、SQue_B=4、SQue_C=0
b.当队列表“表3”中的用户的任务个数m>任务队列个数Q时,从队列表“表3”的队尾。开始依次获取任务编号和任务占用资源时长数据,进行如下操作:
step-01)获取当前队尾任务排序编号对应的任务信息,如本发明实施例中用户A的当前队尾排序号为10,对应的任务为job_01,占用时长为41。
step-02)计算当前任务加入到各队列中后的总时长:
其中,分别表示消息队列A、B、C的占用时长叠加当前任务后的总时长。
step-03)获取上一步计算的最小总时长结果的队列,将当前任务加入到该队列的队尾,如多个计算结果相同时,取第一个队列。
继续上面的例子,计算得到队列Que_[i]=Que_A,即将当前任务job_01放到队列Que_A的队尾中,即:Que_A={job_01}。则:
当前各队列时长为:SQue_A=41、SQue_B=0、SQue_C=0。
step-04)将排序得出的数据表的队尾的位置设置为当前队列位置减1,即当前队尾对应的任务排序号为m-1,在本发明实施例中,当前队尾位置编号变为:10-1=9。
step-05)重新执行step_01步骤至step_05步骤,依次执行,直至排序的表中队尾的位置排序号为0,即将所有用户的任务分配完成。
执行上述步骤之后,本发明实施例的最终结果如下:
Que_A={job_05->job_01}
Que_B={job_10->job_08->job_04->job_02}
Que_C={job_09->job_07->job_06->job_03}
其中,“->”表示执行顺序,job_05->job_01表示先执行任务job_01,再执行job_05。
图4是根据本发明实施例任务分配过程的示意图。通分配过程之后,将本发明实施的分配结果存储在数据表中,并且输出到“数据仓库数据任务执行***”中的“任务执行队列中”中,等待任务分发程序进行分发和执行。
图5是根据本发明实施例的一种自动化配置数据仓库并行任务队列的装置主要模块的示意图。
如图5所示,本发明实施例的一种自动化配置数据仓库并行任务队列的装置主要包括采集模块、处理模块、排序模块和分配模块。其中,采集模块用于采集用户的任务在数据仓库中运行的历史数据;处理模块用于对历史数据进行处理,统计出任务的资源占用时长;排序模块用于根据资源占用时长将任务进行排序;分配模块用于根据排序的结果以及用户的资源进程数,将任务分配到任务队列中。进一步,分配模块用于按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收任务的任务队列的总时长中。排序模块根据资源占用时长将用户的任务按照从大到小或从小到大的顺序进行排序;以及,获取用户的资源进程号。排序模块获取到用户的资源进程号之后,则可按照任务的个数和排序与资源进行号之间的关系,例如,当任务数量小于用户的资源进程数时,任务序号可与资源进程号之间一对一且随机对应;当任务数量大于资源进程数时,任务序号与进程号之际则按照分配模块的分配原则进行对应。处理模块根据采集的历史数据,计算出每一个任务的平均资源占用时长,则平均资源占用时长即为本发明实施例中的统计出任务的资源占用时长。
本发明实施例的一种自动化配置数据仓库并行任务队列的装置还包括判断模块和设置模块。其中,判断模块用于判断用户的任务个数是否小于或等于用户的资源进程数;若是,则分配模块将任务一对一且随机地分配到任务队列中;否则,分配模块按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收任务的任务队列的总时长中。设置模块用于根据任务的类型设置采集历史数据的时间段,并将采集到的所述历史数据存储在数据表中,所述历史数据包括:运行的日期、用户名、任务编号、任务名称和任务开始时间、任务结束时间。
通过本发明实施例的自动化配置数据仓库并行任务队列的装置,将用户的任务分配到相应的队列,并将结果输出到数据仓库数据任务执行***中的任务执行队列中,下一步即进入任务分发和任务执行的过程。在分配的过程中,任务队列的数量与已给用户分配的资源进程数是一致的,即可保证任务队列与资源进程队列一一对应,在执行过程中需要对任务队列与资源进程进行匹配。任务分发过程:通过获取用户当前分配到资源进程号,将任务执行队列与获取的资源进程号进行映射,如当前进程资源号为process_01,process_02,process_03;映射为Que_A→process_01、Que_B→process_02、Que_C→process_03。之后将每个队列中的任务按顺序分发到对应到的资源进程队列中,等待执行。***按顺序执行任务资源队列中存放的任务,任务执行完成后将数据结果输出。
图6是适于用来实现本申请实施例的终端设备或服务器的计算机***的结构示意图。
下面参考图6,其示出了适于用来实现本申请实施例的终端设备的计算机***600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,参考上文流程图和主要步骤的示意图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图和主要步骤的示意图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的***中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块,可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括采集模块、处理模块、排序模块和分配模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,采集模块还可以被描述为“采集用户的任务在数据仓库中运行的历史数据的模块”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:采集用户的任务在数据仓库中运行的历史数据;对历史数据进行处理,统计出任务的资源占用时长;根据资源占用时长将任务进行排序;根据排序的结果以及用户的资源进程数,将任务分配到任务队列中。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种自动化配置数据仓库并行任务队列的方法,其特征在于,包括:
采集用户的任务在数据仓库中运行的历史数据;
对所述历史数据进行处理,统计出任务的资源占用时长;
根据所述资源占用时长对所述任务进行排序;
根据排序的结果以及用户的资源进程数,将任务分配到任务队列中。
2.根据权利要求1所述的方法,其特征在于,所述根据排序的结果以及用户的资源进程数,将任务分配到任务队列中包括:
按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收所述任务的任务队列的总时长中。
3.根据权利要求2所述的方法,其特征在于,还包括:
判断用户的任务个数是否小于或等于用户的资源进程数;
若是,则将任务一对一且随机地分配到任务队列中;否则,按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收所述任务的任务队列的总时长中。
4.根据权利要求1所述的方法,其特征在于,根据所述资源占用时长将用户的任务按照从大到小或从小到大的顺序进行排序;并且,获取用户的资源进程号。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据任务的类型根据任务的类型设置采集历史数据的时间段,并将采集到的所述历史数据存储在数据表中,所述历史数据包括:运行的日期、用户名、任务编号、任务名称和任务开始时间、任务结束时间。
6.根据权利要求5所述的方法,其特征在于,所述对所述历史数据进行处理,统计出任务的资源占用时长包括:
根据采集的历史数据,计算出每一个任务的平均资源占用时长。
7.一种自动化配置数据仓库并行任务队列的装置,其特征在于,包括:
采集模块,用于采集用户的任务在数据仓库中运行的历史数据;
处理模块,用于对所述历史数据进行处理,统计出任务的资源占用时长;
排序模块,用于根据所述资源占用时长对所述任务进行排序;
分配模块,用于根据排序的结果以及用户的资源进程数,将任务分配到任务队列中。
8.根据权利要求7所述的装置,其特征在于,所述分配模块用于按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收所述任务的任务队列的总时长中。
9.根据权利要求8所述的装置,其特征在于,还包括判断模块,用于判断用户的任务个数是否小于或等于用户的资源进程数;若是,则所述分配模块将任务一对一且随机地分配到任务队列中;否则,分配模块按照任务的资源占用时长从大到小的顺序,依次将任务分配到总时长最小的任务队列中,并且将任务的资源占用时长叠加到接收所述任务的任务队列的总时长中。
10.根据权利要求7所述的装置,其特征在于,所述排序模块根据所述资源占用时长将用户的任务按照从大到小或从小到大的顺序进行排序;以及,获取用户的资源进程号。
11.根据权利要求7所述的装置,其特征在于,还包括设置模块,用于根据任务的类型设置采集历史数据的时间段,并将采集到的所述历史数据存储在数据表中,所述历史数据包括:运行的日期、用户名、任务编号、任务名称和任务开始时间、任务结束时间。
12.根据权利要求7所述的装置,其特征在于,所述处理模块根据采集的历史数据,计算出每一个任务的平均资源占用时长。
13.一种自动化配置数据仓库并行任务队列的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710397740.7A CN107315627A (zh) | 2017-05-31 | 2017-05-31 | 一种自动化配置数据仓库并行任务队列的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710397740.7A CN107315627A (zh) | 2017-05-31 | 2017-05-31 | 一种自动化配置数据仓库并行任务队列的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107315627A true CN107315627A (zh) | 2017-11-03 |
Family
ID=60183535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710397740.7A Pending CN107315627A (zh) | 2017-05-31 | 2017-05-31 | 一种自动化配置数据仓库并行任务队列的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107315627A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090597A (zh) * | 2017-12-29 | 2018-05-29 | 珠海国芯云科技有限公司 | 医疗预约排队优化方法及装置 |
CN108197865A (zh) * | 2017-12-29 | 2018-06-22 | 珠海国芯云科技有限公司 | 物流配送任务快速调度控制方法及装置 |
CN110287018A (zh) * | 2019-07-04 | 2019-09-27 | 中国工商银行股份有限公司 | 批量任务编排方法及装置 |
CN110390464A (zh) * | 2019-06-14 | 2019-10-29 | 平安科技(深圳)有限公司 | 任务分配方法、装置、计算机设备及可读存储介质 |
CN110390450A (zh) * | 2018-04-17 | 2019-10-29 | 北京京东尚科信息技术有限公司 | 仓储排产方法及装置、存储介质、电子设备 |
CN110569313A (zh) * | 2018-05-17 | 2019-12-13 | 北京京东尚科信息技术有限公司 | 数据仓库的模型表级别判定方法及装置 |
CN110750419A (zh) * | 2019-09-30 | 2020-02-04 | 北京百度网讯科技有限公司 | 离线任务的处理方法、装置、电子设备及存储介质 |
CN112114971A (zh) * | 2020-09-28 | 2020-12-22 | 中国建设银行股份有限公司 | 一种任务分配方法、装置及设备 |
CN112328705A (zh) * | 2020-11-03 | 2021-02-05 | 成都中科大旗软件股份有限公司 | 支持任意配置周期的任务调度方法 |
CN112346829A (zh) * | 2019-08-07 | 2021-02-09 | 上海云盾信息技术有限公司 | 一种用于任务调度的方法及设备 |
CN113326114A (zh) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 一种批量任务处理方法及装置 |
CN114168294A (zh) * | 2021-12-10 | 2022-03-11 | 北京鲸鲮信息***技术有限公司 | 编译资源分配方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722417A (zh) * | 2012-06-07 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 一种扫描任务的分配方法和装置 |
CN103488691A (zh) * | 2013-09-02 | 2014-01-01 | 用友软件股份有限公司 | 任务调度装置和任务调度方法 |
-
2017
- 2017-05-31 CN CN201710397740.7A patent/CN107315627A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722417A (zh) * | 2012-06-07 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 一种扫描任务的分配方法和装置 |
CN103488691A (zh) * | 2013-09-02 | 2014-01-01 | 用友软件股份有限公司 | 任务调度装置和任务调度方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090597A (zh) * | 2017-12-29 | 2018-05-29 | 珠海国芯云科技有限公司 | 医疗预约排队优化方法及装置 |
CN108197865A (zh) * | 2017-12-29 | 2018-06-22 | 珠海国芯云科技有限公司 | 物流配送任务快速调度控制方法及装置 |
CN110390450A (zh) * | 2018-04-17 | 2019-10-29 | 北京京东尚科信息技术有限公司 | 仓储排产方法及装置、存储介质、电子设备 |
CN110390450B (zh) * | 2018-04-17 | 2022-07-05 | 北京京东乾石科技有限公司 | 仓储排产方法及装置、存储介质、电子设备 |
CN110569313B (zh) * | 2018-05-17 | 2023-12-05 | 北京京东尚科信息技术有限公司 | 数据仓库的模型表级别判定方法及装置 |
CN110569313A (zh) * | 2018-05-17 | 2019-12-13 | 北京京东尚科信息技术有限公司 | 数据仓库的模型表级别判定方法及装置 |
CN110390464A (zh) * | 2019-06-14 | 2019-10-29 | 平安科技(深圳)有限公司 | 任务分配方法、装置、计算机设备及可读存储介质 |
CN110390464B (zh) * | 2019-06-14 | 2023-09-22 | 平安科技(深圳)有限公司 | 任务分配方法、装置、计算机设备及可读存储介质 |
CN110287018B (zh) * | 2019-07-04 | 2021-08-13 | 中国工商银行股份有限公司 | 批量任务编排方法及装置 |
CN110287018A (zh) * | 2019-07-04 | 2019-09-27 | 中国工商银行股份有限公司 | 批量任务编排方法及装置 |
CN112346829A (zh) * | 2019-08-07 | 2021-02-09 | 上海云盾信息技术有限公司 | 一种用于任务调度的方法及设备 |
CN112346829B (zh) * | 2019-08-07 | 2023-02-17 | 上海云盾信息技术有限公司 | 一种用于任务调度的方法及设备 |
CN110750419A (zh) * | 2019-09-30 | 2020-02-04 | 北京百度网讯科技有限公司 | 离线任务的处理方法、装置、电子设备及存储介质 |
CN112114971A (zh) * | 2020-09-28 | 2020-12-22 | 中国建设银行股份有限公司 | 一种任务分配方法、装置及设备 |
CN112328705A (zh) * | 2020-11-03 | 2021-02-05 | 成都中科大旗软件股份有限公司 | 支持任意配置周期的任务调度方法 |
CN112328705B (zh) * | 2020-11-03 | 2023-10-24 | 成都中科大旗软件股份有限公司 | 支持任意配置周期的任务调度方法 |
CN113326114A (zh) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 一种批量任务处理方法及装置 |
WO2022257435A1 (zh) * | 2021-06-11 | 2022-12-15 | 深圳前海微众银行股份有限公司 | 一种批量任务处理方法、装置、计算设备及存储介质 |
CN114168294A (zh) * | 2021-12-10 | 2022-03-11 | 北京鲸鲮信息***技术有限公司 | 编译资源分配方法、装置、电子设备及存储介质 |
CN114168294B (zh) * | 2021-12-10 | 2024-07-02 | 北京字节跳动网络技术有限公司 | 编译资源分配方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107315627A (zh) | 一种自动化配置数据仓库并行任务队列的方法和装置 | |
Tay et al. | Evolving dispatching rules using genetic programming for solving multi-objective flexible job-shop problems | |
CN106331150B (zh) | 用于调度云服务器的方法和装置 | |
CN107748696A (zh) | 一种任务调度的方法及终端设备 | |
CN105786600B (zh) | 任务调度方法和装置 | |
CN109471727A (zh) | 一种任务处理方法、装置及*** | |
CN107231264A (zh) | 用于管理云服务器的容量的方法和装置 | |
CN109992404A (zh) | 集群计算资源调度方法、装置、设备及介质 | |
CN106933669A (zh) | 用于数据处理的装置和方法 | |
CN109815011A (zh) | 一种数据处理的方法和装置 | |
CN110197351A (zh) | 一种物品出库方法和装置 | |
CN111582531A (zh) | 模型创建方法和分配优化方法、装置、设备及存储介质 | |
CN107369055A (zh) | 订单消息的取货分配方法及装置 | |
CN109978474A (zh) | 一种工作流控制方法及工作流控制装置 | |
CN106874109A (zh) | 一种分布式作业分发处理方法及*** | |
CN107463642A (zh) | 提升数据仓库工具资源利用率的方法和装置 | |
CN110232487A (zh) | 一种任务分派方法和装置 | |
CN110166507A (zh) | 多资源调度方法和装置 | |
CN109543890A (zh) | 基于负载预测均衡的电网费控优化调度方法、装置及*** | |
CN108762735A (zh) | 工作流引擎的管理方法及装置、存储介质、终端 | |
CN109102245A (zh) | 一种审批流程的处理方法、***及装置 | |
CN103037010A (zh) | 一种分布式网络爬虫***及其抓取方法 | |
CN107205248A (zh) | 一种资源分配方法及*** | |
CN110533518A (zh) | 一种贷后催收案件管理的方法 | |
CN107430526A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171103 |