
1.本技术涉及sas系统应用技术领域,尤其涉及一种脚本作业提交控制方法及装置、存储介质及电子设备。
背景技术:2.sas(statistics analysis system,统计分析系统)是一个模块化、集成化的大型应用软件系统。因其具有强大的分析计算功能,得到了广泛应用。
3.sas系统中用户数较多,业务人员编写的脚本作业均直接提交至sas系统,而业务人员的脚本作业编写能力和质量参差不齐,当出现低效的脚本作业时,会在sas系统中长时间运行,从而占用大量计算资源,致使内存使用率升高,甚至导致sas系统出现内存低效也不会被强制停止,直至消耗内存至整个系统变为不可用状态,进而导致系统性能降低。
技术实现要素:4.本技术提供了一种脚本作业提交控制方法及装置、存储介质及电子设备,目的在于解决直接提交脚本作业至sas系统,导致sas系统的内存使用率升高,系统性能降低的问题。
5.为了实现上述目的,本技术提供了以下技术方案:
6.一种脚本作业提交控制方法,包括:
7.获取待提交至sas系统的脚本作业;
8.利用预先构建的预估模型,对所述脚本作业进行处理,得到所述脚本作业的预估运行时长和作业类别;所述预估模型基于机器学习算法预先构建得到;
9.基于所述预估运行时长和目标运行时长,判断所述脚本作业是否为低效作业;所述目标运行时长为所述作业类别对应的预设运行时长;
10.若所述脚本作业为低效作业,则不将所述脚本作业提交至所述sas系统;若所述脚本作业不为低效作业,则将所述脚本作业提交至所述sas系统。
11.上述的方法,可选的,所述获取待提交至sas系统的脚本作业,包括:
12.实时监测是否存在待提交至sas系统的脚本作业;
13.当监测到存在待提交至sas系统的脚本作业时,对所述脚本作业进行拦截,获得待提交至所述sas系统的脚本作业。
14.上述的方法,可选的,所述利用预先构建的预估模型,对所述脚本作业进行处理,得到所述脚本作业的预估运行时长和作业类别,包括:
15.对所述脚本作业进行关键字解析,得到所述脚本作业中包括的各个关键字;
16.从所述脚本作业包括的各个关键字中,确定目标关键字;所述目标关键字用于表征脚本作业的作业类别;
17.基于所述目标关键字,确定所述脚本作业的作业类别;
18.基于所述脚本作业中包括的各个关键字,对所述脚本作业的运行时长进行预估,
得到所述脚本作业的预估运行时长。
19.上述的方法,可选的,所述基于所述脚本作业中包括的各个关键字,对所述脚本作业的运行时长进行预估,得到所述脚本作业的预估运行时长,包括:
20.获取预设的与所述脚本作业中包括的每个关键字对应的时长;
21.基于每个关键字对应的时长,计算所述脚本作业的预估运行时长。
22.上述的方法,可选的,所述基于所述预估运行时长和目标运行时长,判断所述脚本作业是否为低效作业,包括:
23.判断所述预估运行时长是否大于目标运行时长;
24.若所述预估运行时长不大于目标运用时长,则确定所述脚本作业不为低效作业;
25.若所述预估运行时长大于目标运行时长,则判断所述预估运行时长与目标运行时长之间的差值是否大于预设阈值;
26.若所述预估运行时长与目标运行时长之间的差值大于预设阈值,则确定所述脚本作业为低效作业;
27.若所述预估运行时长与目标运行时长之间的差值不大于预设阈值,则确定脚本作业不为低效作业。
28.一种脚本作业提交控制装置,包括:
29.获取单元,用于获取待提交至sas系统的脚本作业;
30.处理单元,用于利用预先构建的预估模型,对所述脚本作业进行处理,得到所述脚本作业的预估运行时长和作业类别;所述预估模型基于机器学习算法预先构建得到;
31.判断单元,用于基于所述预估运行时长和目标运行时长,判断所述脚本作业是否为低效作业;所述目标运行时长为所述作业类别对应的预设运行时长;
32.提交单元,用于若所述脚本作业为低效作业,则不将所述脚本作业提交至所述sas系统;若所述脚本作业不为低效作业,则将所述脚本作业提交至所述sas系统。
33.上述的装置,可选的,所述获取单元具体用于:
34.实时监测是否存在待提交至sas系统的脚本作业;
35.当监测到存在待提交至sas系统的脚本作业时,对所述脚本作业进行拦截,获得待提交至所述sas系统的脚本作业。
36.上述的装置,可选的,所述处理单元具体用于:
37.对所述脚本作业进行关键字解析,得到所述脚本作业中包括的各个关键字;
38.从所述脚本作业包括的各个关键字中,确定目标关键字;所述目标关键字用于表征脚本作业的作业类别;
39.基于所述目标关键字,确定所述脚本作业的作业类别;
40.基于所述脚本作业中包括的各个关键字,对所述脚本作业的运行时长进行预估,得到所述脚本作业的预估运行时长。
41.一种存储介质,述存储介质存储有指令集,其中,所述指令集被处理器执行时实现如上述的脚本作业提交控制方法。
42.一种电子设备,包括:
43.存储器,用于存储至少一组指令集;
44.处理器,用于执行所述存储器中存储的指令集,通过执行所述指令集实现如上述
的脚本作业提交控制方法。
45.与现有技术相比,本技术包括以下优点:
46.本技术提供了一种脚本作业提交控制方法及装置、存储介质及电子设备,包括:利用预先构建的预估模型,对待提交至sas系统的脚本作业进行处理,得到脚本作业的预估运行时长和作业类别,基于预估运行时长和预设的与作业类别对应的运行时长,判断脚本作业是否为低效作业,若脚本作业为低效作业,则不将脚本作业提交至所述sas系统;若脚本作业不为低效作业,则将脚本作业提交至所述sas系统。可见,本技术方案,通过对待提交至sas系统的脚本作业进行判断,以在该脚本作业为低效作业的情况下,不将该脚本作业提交至sas系统,从而避免低效的脚本作业在sas系统中运行,减少sas系统的内存使用率,进而提高sas系统的系统性能。
附图说明
47.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
48.图1为本技术提供的一种脚本作业提交控制方法的方法流程图;
49.图2为本技术提供的一种脚本作业提交控制方法的又一方法流程图;
50.图3为本技术提供的一种脚本作业提交控制方法的再一方法流程图;
51.图4为本技术提供的一种脚本作业提交控制方法的另一方法流程图;
52.图5为本技术提供的一种脚本作业提交控制方法的示例图;
53.图6为本技术提供的一种脚本作业提交控制装置的结构示意图;
54.图7为本技术提供的一种电子设备的结构示意图。
具体实施方式
55.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
56.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
57.需要注意,本技术公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
58.需要注意,本技术公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
59.现有的脚本作业提交控制方案中,业务人员编写的脚本作业均直接提交至sas系
统,而业务人员的脚本作业编写能力和质量参差不齐,当出现低效的脚本作业时,会在sas系统中长时间运行,从而占用大量计算资源,致使内存使用率升高,甚至导致sas系统出现内存低效也不会被强制停止,直至消耗内存至整个系统变为不可用状态,进而导致系统性能降低。例如,当用户提交了一个简单的sql查询语句,进行全表搜索和指定表的搜索,所需的运行时间将会相差巨大,尤其是对于用户量众多的sas系统,连接的gp(greenplum,数据仓库)的数据量巨大,表的数量规模之大,不加以限制的全表搜索则会占据大量的计算资源,若不慎将一些死循环语句提交至集群上进行运行,则会导致系统内存被大量占据,严重导致监控告警,整个系统处于不可用状态。
60.因此,本技术提供一种脚本作业提交控制方法及装置、存储介质及电子设备,能够解决直接提交脚本作业至sas系统,导致sas系统的内存使用率升高,系统性能降低的问题。
61.本技术实施例提供了一种脚本作业提交控制方法,该脚本作业提交控制方法的方法流程图如图1所示,具体包括:
62.s101、获取待提交至sas系统的脚本作业。
63.本实施例中,获取待提交至sas系统的脚本作业,具体的,对待提交至sas系统的脚本作业进行拦截,从而得到待提交至sas系统的脚本作业。
64.参阅图2,获取待提交至sas系统的脚本作业的过程,具体包括以下步骤:
65.s201、实时监测是否存在待提交至sas系统的脚本作业。
66.本实施例中,实时监测是否存在待提交至sas系统的脚本作业,具体的,预设监测程序,通过监测程序,对sas系统的接口进行监测,以确定是否存在待提交至sas系统的脚本作业。
67.本实施例中,当监测到发送至sas系统的接口的脚本文件时,确定出监测到存在待提交至sas系统的脚本作业,否则,确定出监测到未存在提交至sas系统的脚本作业。
68.s202、当监测到存在待提交至sas系统的脚本作业时,对脚本作业进行拦截,获得待提交至sas系统的脚本作业。
69.本实施例中,当监测到存在待提交至sas系统的脚本作业时,在sas系统的接口外对脚本作业进行拦截,从而得到待提交至sas系统的脚本作业。
70.s102、利用预先构建的预估模型,对脚本作业进行处理,得到脚本作业的预估运行时长和作业类别。
71.本实施例中,预先构建预估模型,预估模型基于机器学习算法预先构建得到。
72.本实施例中,基于预先构建的预估模型,对脚本作业进行处理,得到脚本作业的预估运行时长和作业类别,也就是,将脚本作业输入至预先构建的预估模型中,得到预估模型输出的脚本作业的预估运行时长和作业类别。
73.其中,作业类别用于说明脚本作业实现的功能。
74.参阅图3,利用预先构建的预估模型,对脚本作业进行处理,得到脚本作业的预估运行时长和作业类别的过程,具体包括以下步骤:
75.s301、对脚本作业进行关键字解析,得到脚本作业中包括的各个关键字。
76.本实施例中,按预设的解析规则,对脚本作业进行关键字解析,得到脚本作业中包括的各个关键字。关键字包括但不限于select(选择)、和/或delete(删除),和/或insert(插入)。
77.s302、从脚本作业包括的各个关键字中,确定目标关键字;目标关键字用于表征脚本作业的作业类别。
78.本实施例中,获取表征每类作业类别的预设关键字。
79.本实施例中,从脚本作业包括的各个关键字中,确定目标关键字,具体的,针对每个预设关键字,将脚本作业包括的各个关键字与该预设关键字进行匹配,若存在与预设关键字相匹配的关键字,则将与预设关键字相匹配的关键字确定目标关键字。
80.s303、基于目标关键字,确定脚本作业的作业类别。
81.本实施例中,基于目标关键字,确定脚本作业的作业类别,即将目标关键字作为脚本作业的作业类别。
82.s304、基于脚本作业中包括的各个关键字,对脚本作业的运行时长进行预估,得到脚本作业的预估运行时长。
83.本实施例中,预设关键字对应的时长,基于脚本作业中包括的各个关键字,以及预设的关键字对应的时长,对脚本作业的运行时长进行预估,得到脚本作业的预估运行时长。
84.具体的,基于脚本作业中包括的各个关键字,对脚本作业的运行时长进行预估,得到脚本作业的预估运行时长的过程,具体包括以下步骤:
85.获取预设的与脚本作业中包括的每个关键字对应的时长;
86.基于每个关键字对应的时长,计算脚本作业的预估运行时长。
87.本实施例中,将预设关键字对应的时长,基于脚本作业中包括的各个关键字,获取预设的与脚本作业中包括的每个关键字对应的时长,并基于每个关键字对应的时长,计算脚本作业的预估运行时长,具体的,将各个关键字对应的时长进行累加计算,得到脚本作业的预估运行时长。
88.s103、基于预估运行时长和目标运行时长,判断脚本作业是否为低效作业,若是,执行s104,若否,执行s105。
89.本实施例中,预先设置每类作业类别对应的预设运行时长,其中,具体的设置过程,包括:获取每类作业类别对应的历史作业脚本的运行时长,针对每个作业类别,计算该类作业类别对应的历史脚本的运行时长的平均值,将计算得到的平均值作为该类作业类别对应的预设运行时长。
90.本实施例中,基于预估运行时长和目标运行时长,判断脚本作业是否为低效作业,其中,目标运行时长为与作业类别对应的预设运行时长。
91.参阅图4,判断基于预估运行时长和目标运行时长,判断脚本作业是否为低效作业的过程,具体包括以下步骤:
92.s401、判断预估运行时长是否大于目标运行时长,若否,执行s402,若是,执行s403。
93.判断预估运行时长是否大于目标运行时长,具体的,将预估运行时长和目标运行时长进行比较。
94.s402、确定脚本作业不为低效作业。
95.本实施例中,若预估运行时长不大于目标运行时长,则确定脚本作业不为低效作业。
96.本实施例中,若预估运行时长大于目标运行时长,但预估运行时长与目标运行时
长之间的差值不大于预设阈值,则确定脚本作业不为低效作业。
97.s403、判断预估运行时长与目标运行时长之间的差值是否大于预设阈值,若是,执行s404,若否,执行s402。
98.本实施例中,若预估运行时长大于目标运行时长,则进一步判断预估运行时长与目标运行时长之间的差值是否大于预设阈值。需要说明的是,预设阈值可以根据需求进行调整。
99.s404、确定脚本作业为低效作业。
100.本实施例中,若预估运行时长大于目标运行时长,且预估运行时长与目标运行时长之间的差值大于预设阈值,则说明脚本作业的预估运行时长过于长,并确定脚本作业为低效作业。
101.s104、不将脚本作业提交至sas系统。
102.本实施例中,若确定脚本作业为低效作业,则限制将脚本作业提交做sas系统中,以避免低效作业在sas系统中运行。
103.s105、将脚本作业提交至sas系统。
104.本实施例中,若确定脚本作业不为低效作业,则将脚本作业提交至sas系统。
105.本实施例中,sas系统包括管理节点和多个计算节点,sas系统中的关管理节点接收脚本作业,并将脚本作业随机分发至任意任一个计算节点上,由计算节点运行该脚本作业。
106.需要说明的是,一个计算节点可以运行多个脚本作业,一个脚本作业只能由一个计算节点运行。
107.本技术实施例提供的脚本作业提交控制方法,利用预先构建的预估模型,对待提交至sas系统的脚本作业进行处理,得到脚本作业的预估运行时长和作业类别,基于预估运行时长和预设的与作业类别对应的运行时长,判断脚本作业是否为低效作业,若脚本作业为低效作业,则不将脚本作业提交至所述sas系统;若脚本作业不为低效作业,则将脚本作业提交至所述sas系统。应用本技术实施例提供的脚本作业提交控制方法,通过对待提交至sas系统的脚本作业进行判断,以在该脚本作业为低效作业的情况下,不将该脚本作业提交至sas系统,从而避免低效的脚本作业在sas系统中运行,减少sas系统的内存使用率,进而提高sas系统的系统性能。
108.参阅图5,对本技术实施例提及的脚本作业提交控制方法积进行举例说明如下:
109.每个用户在编写完作业(即脚本作业)后,将所编写的作业提交至sas系统,即用户1在编写完作业1后,提交作业1,用户2在编写完作业2后,提交作业2,用户3在编写完作业3后,提交作业3,作业时间预估装置在监测到存在发送至sas系统的作业的情况下,对作业进行拦截,针对每个作业,预估该作业的运行时长,得到该作业的预估运行时长,并确定该作业的作业类别,基于该作业的预估运行时长和作业类别对应的预设运行时长,判断作业是否为低效作业,若为低效作为,则不将该作业提交至sas系统,若不为低效作业,则将该作业提交至sas系统,sas系统中的管理节点接收该作业,并将该作业随机分发至任意一个计算节点,由计算节点运行该作业。
110.需要说明的是,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可
能是有利的。
111.应当理解,本技术公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本技术公开的范围在此方面不受限制。
112.与图1所述的方法相对应,本技术实施例还提供了一种脚本作业提交控制装置,用于对图1中方法的具体实现,其结构示意图如图6所示,具体包括:
113.获取单元601,用于获取待提交至sas系统的脚本作业;
114.处理单元602,用于利用预先构建的预估模型,对所述脚本作业进行处理,得到所述脚本作业的预估运行时长和作业类别;所述预估模型基于机器学习算法预先构建得到;
115.判断单元603,用于基于所述预估运行时长和目标运行时长,判断所述脚本作业是否为低效作业;所述目标运行时长为所述作业类别对应的预设运行时长;
116.提交单元604,用于若所述脚本作业为低效作业,则不将所述脚本作业提交至所述sas系统;若所述脚本作业不为低效作业,则将所述脚本作业提交至所述sas系统。
117.本技术实施例提供的脚本作业提交控制装置,利用预先构建的预估模型,对待提交至sas系统的脚本作业进行处理,得到脚本作业的预估运行时长和作业类别,基于预估运行时长和预设的与作业类别对应的运行时长,判断脚本作业是否为低效作业,若脚本作业为低效作业,则不将脚本作业提交至所述sas系统;若脚本作业不为低效作业,则将脚本作业提交至所述sas系统。应用本技术实施例提供的脚本作业提交控制装置,通过对待提交至sas系统的脚本作业进行判断,以在该脚本作业为低效作业的情况下,不将该脚本作业提交至sas系统,从而避免低效的脚本作业在sas系统中运行,减少sas系统的内存使用率,进而提高sas系统的系统性能。
118.在本技术的一个实施例中,基于前述方案,获取单元601具体用于:
119.实时监测是否存在待提交至sas系统的脚本作业;
120.当监测到存在待提交至sas系统的脚本作业时,对所述脚本作业进行拦截,获得待提交至所述sas系统的脚本作业。
121.在本技术的一个实施例中,基于前述方案,处理单元602具体用于:
122.对所述脚本作业进行关键字解析,得到所述脚本作业中包括的各个关键字;
123.从所述脚本作业包括的各个关键字中,确定目标关键字;所述目标关键字用于表征脚本作业的作业类别;
124.基于所述目标关键字,确定所述脚本作业的作业类别;
125.基于所述脚本作业中包括的各个关键字,对所述脚本作业的运行时长进行预估,得到所述脚本作业的预估运行时长。
126.在本技术的一个实施例中,基于前述方案,处理单元602在基于所述脚本作业中包括的各个关键字,对所述脚本作业的运行时长进行预估,得到所述脚本作业的预估运行时长时,具体用于:
127.获取预设的与所述脚本作业中包括的每个关键字对应的时长;
128.基于每个关键字对应的时长,计算所述脚本作业的预估运行时长。
129.在本技术的一个实施例中,基于前述方案,判断单元603具体用于:
130.判断所述预估运行时长是否大于目标运行时长;
131.若所述预估运行时长不大于目标运用时长,则确定所述脚本作业不为低效作业;
132.若所述预估运行时长大于目标运行时长,则判断所述预估运行时长与目标运行时长之间的差值是否大于预设阈值;
133.若所述预估运行时长与目标运行时长之间的差值大于预设阈值,则确定所述脚本作业为低效作业;
134.若所述预估运行时长与目标运行时长之间的差值不大于预设阈值,则确定脚本作业不为低效作业。
135.本技术实施例还提供了一种存储介质,所述存储介质存储有指令集,其中,在所述指令集运行时执行如上文任一实施例公开的脚本作业提交控制方法。
136.本技术实施例还提供了一种电子设备,其结构示意图如图7所示,具体包括存储器701,用于存储至少一组指令集;处理器702,用于执行所述存储器中存储的指令集,通过执行所述指令集实现如上文任一实施例公开的脚本作业提交控制方法。
137.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
138.虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本技术公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
139.以上描述仅为本技术公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。