CN116340344A - 脚本执行性能确定方法、装置、存储介质以及电子设备 - Google Patents
脚本执行性能确定方法、装置、存储介质以及电子设备 Download PDFInfo
- Publication number
- CN116340344A CN116340344A CN202310297447.9A CN202310297447A CN116340344A CN 116340344 A CN116340344 A CN 116340344A CN 202310297447 A CN202310297447 A CN 202310297447A CN 116340344 A CN116340344 A CN 116340344A
- Authority
- CN
- China
- Prior art keywords
- abnormal
- determining
- job
- execution
- time
- 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 86
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 230000002159 abnormal effect Effects 0.000 claims abstract description 211
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000005856 abnormality Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 239000003638 chemical reducing agent Substances 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static 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
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种脚本执行性能确定方法、装置、存储介质以及电子设备。涉及大数据领域。该方法包括:获取并解析目标脚本执行后的第一日志,得到M个作业;获取每个作业的时间信息,并根据时间信息从M个作业中获取N个异常作业;获取目标脚本执行后生成的第二日志,获取每个异常作业中的P个任务以及每个任务的时间信息集合,并根据P个时间信息集合确定目标脚本的第一异常性能信息;获取每个异常作业的主任务,并根据主任务确定异常作业的源表关联的表的关联值,得到多组关联值,并确定目标脚本的第二异常性能信息。通过本申请,解决了相关技术中在SQL语句执行缓慢的时候,通过人工分析日志的方法确定缓慢执行原因的效率和准确率低的问题。
Description
技术领域
本申请涉及大数据领域,具体而言,涉及一种脚本执行性能确定方法、装置、存储介质以及电子设备。
背景技术
Hive是建立在Hadoop(一个分布式系统基础框架)上的数据仓库基础构架。它可以提供一系列工具,可以用来进行数据提取转化加载,是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制,Hive定义了简单的类SQL(Structured Query Language结构化查询语言)语句查询语言,称为HQL(Hibernate Query Language:Hibernate查询语句,其中,Hibernate是一个开放源代码的对象关系映射框架),它允许熟悉SQL语句的用户查询数据。Hive作为大数据平台举足轻重的框架,以其稳定性和简单易用性也成为当前构建企业级数据仓库时使用最多的框架之一。
但是,在Hive中执行SQL语句的时候,由于Hive的使用者只知道整组SQL语句的执行逻辑,不知道使用者提交SQL语句的是否存在性能问题,会导致SQL语句在执行的时候存在执行缓慢的情况。现有的针对SQL语句性能问题的分析方法一般是发现SQL语句运行缓慢之后,专业运维人员登录系统分析日志,根据专业经验分析性能问题,再通知业务人员进行优化,业务人员优化后再投入运行再观察是否优化,从而解决SQL语句运行缓慢的问题。
针对相关技术中在SQL语句执行缓慢的时候,通过人工分析日志的方法确定缓慢执行原因的效率和准确率低的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供一种脚本执行性能确定方法、装置、存储介质以及电子设备,以解决相关技术中在SQL语句执行缓慢的时候,通过人工分析日志的方法确定缓慢执行原因的效率和准确率低的问题。
根据本申请的一个方面,提供了一种脚本执行性能确定方法。该方法包括:获取目标脚本执行后生成的第一日志,并解析第一日志,得到目标脚本中的M个作业,其中,第一日志为数据仓库工具的日志;获取每个作业的时间信息,并根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业;获取目标脚本执行后生成的第二日志,并在第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据P个时间信息集合确定目标脚本的第一异常性能信息,其中,第二日志为资源管理器的日志;获取每个异常作业的主任务,并根据主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据多组关联值确定目标脚本的第二异常性能信息;根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能。
可选地,根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业包括:对于每个作业,获取作业的第一提交时刻、第一开始时刻和第一结束时刻;将第一开始时刻与第一结束时刻相减,得到第一执行时长,并判断第一执行时长是否大于第一预设时长;在第一执行时长大于第一预设时长的情况下,将作业确定为异常作业;将第一提交时刻与第一开始时刻相减,得到第一等待时长,并判断第一等待时长是否大于第二预设时长;在第一等待时长大于第二预设时长的情况下,将作业确定为异常作业。
可选地,在判断第一执行时长是否大于第一预设时长之前,该方法还包括:获取每个作业的第一执行时长,并计算M个第一执行时长的第一平均执行时长;判断第一平均执行时长是否大于第一预设时长;在第一平均执行时长大于第一预设时长的情况下,通过第一平均执行时长替换第一预设时长,得到更新后的第一预设时长;在判断第一等待时长是否大于第二预设时长之前,该方法还包括:计算每个作业的等待时长,得到M个作业等待时长,并计算所述M个作业等待时长的标准差,得到第一标准差;获取预设等待时间比率,并将第一标准差与预设等待时间比率相乘,得到第二预设时长。
可选地,根据P个时间信息集合确定目标脚本的第一异常性能信息包括:对于每个任务,从任务的时间信息中获取任务的第二提交时刻、第二开始时刻和第二结束时刻;将第二开始时刻与第二结束时刻相减,得到第二执行时长,并判断第二执行时长是否大于第三预设时长;在第二执行时长大于第三预设时长的情况下,将任务确定为异常任务;将第二提交时刻与第二开始时刻相减,得到第二等待时长,并判断第二等待时长是否大于第四预设时长;在第二等待时长大于第四预设时长的情况下,将任务确定为异常任务;将异常任务的日志内容确定为第一异常性能信息。
可选地,在判断第二执行时长是否大于第三预设时长之前,该方法还包括:计算每个任务的第二执行时长,并计算M个第二执行时长的第二平均执行时长;判断第二平均执行时长是否大于第三预设时长;在第二平均执行时长大于第三预设时长的情况下,通过第二平均执行时长替换第三预设时长,得到更新后的第三预设时长;在判断第二等待时长是否大于第四预设时长之前,该方法还包括:计算每个任务的等待时长,得到M个任务等待时长,并计算所述M个任务等待时长的标准差,得到第二标准差;获取预设等待时间比率,并将第二标准差与预设等待时间比率相乘,得到第四预设时长。
可选地,根据主任务确定异常作业的源表包括:从主任务的日志信息中获取异常作业的初始源表,并判断初始源表是否为临时表;在初始源表为临时表的情况下,根据异常作业的开始时刻从M个作业中确定异常作业的上一执行作业,得到前项作业;根据前项作业的主任务确定前项作业的初始源表,并将前项作业的初始源表确定为异常作业的源表;在初始源表不是临时表的情况下,将初始源表确定为异常作业的源表。
可选地,根据多组关联值确定目标脚本的第二异常性能信息包括:对于一组关联值,识别一组关联值中的预设关联值,得到Q个预设关联值;获取每个预设关联值在源表和源表关联的表中的总数,得到Q个数量值;将Q个数量值与源表确定为第二异常性能信息。
可选地,在根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能之前,该方法还包括:从第二日志中获取每个作业的每个任务的数据量集合,其中,每个任务的数据量中包括数据输入量和数据输出量;获取每个数据量集合中的最大数据输入量和最大数据输出量,并将最大数据输出量除以最大数据输入量,得到目标比率;判断最大数据输入量是否大于预设输入量,并在最大数据输入量大于预设输入量的情况下,将最大数据输入量所属的作业存储至第二监控表中;判断目标比率是否大于预设比率,并在目标比率大于预设比率的情况下,将目标比率所属的作业的日志信息确定为第二异常性能信息。
根据本申请的另一方面,提供了一种脚本执行性能确定装置。该装置包括:第一获取单元,用于获取目标脚本执行后生成的第一日志,并解析第一日志,得到目标脚本中的M个作业,其中,第一日志为数据仓库工具的日志;第二获取单元,用于获取每个作业的时间信息,并根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业;第一确定单元,用于获取目标脚本执行后生成的第二日志,并在第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据P个时间信息集合确定目标脚本的第一异常性能信息,其中,第二日志为资源管理器的日志;第二确定单元,用于获取每个异常作业的主任务,并根据主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据多组关联值确定目标脚本的第二异常性能信息;第三确定单元,用于根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能。
根据本发明实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质用于存储程序,其中,程序运行时控制计算机存储介质所在的设备执行一种脚本执行性能确定方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包含一个或多个处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种脚本执行性能确定方法。
通过本申请,采用以下步骤:获取目标脚本执行后生成的第一日志,并解析第一日志,得到目标脚本中的M个作业,其中,第一日志为数据仓库工具的日志;获取每个作业的时间信息,并根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业;获取目标脚本执行后生成的第二日志,并在第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据P个时间信息集合确定目标脚本的第一异常性能信息,其中,第二日志为资源管理器的日志;获取每个异常作业的主任务,并根据主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据多组关联值确定目标脚本的第二异常性能信息;根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能。解决了相关技术中在SQL语句执行缓慢的时候,通过人工分析日志的方法确定缓慢执行原因的效率和准确率低的问题。通过读取第一日志和第二日志中的日志内容,确定执行SQL语句的时候的各个作业和任务的时间信息,并根据时间信息确定发生异常的原因,同时,还通过第二日志中与任务相关的日志信息确定源表,并根据源表的关联内容确定执行缓慢的原因,进而达到了通过自动获取并根据执行信息分析日志内容,进而准确确定SQL语句执行缓慢的原因的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的脚本执行性能确定方法的流程图;
图2是根据本申请实施例提供的可选的异常作业的确定方法的流程图;
图3是根据本申请实施例提供的脚本执行性能确定装置的示意图;
图4为根据本申请实施例提供的一种电子设备的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
需要说明的是,本公开所确定的脚本执行性能确定方法、装置、存储介质以及电子设备可用于大数据领域,也可用于除大数据领域之外的任意领域,本公开所确定的脚本执行性能确定方法、装置、存储介质以及电子设备的应用领域不做限定。
根据本申请的实施例,提供了一种脚本执行性能确定方法。
图1是根据本申请实施例提供的脚本执行性能确定方法的流程图。如图1所示,该方法包括以下步骤:
步骤S101,获取目标脚本执行后生成的第一日志,并解析第一日志,得到目标脚本中的M个作业,其中,第一日志为数据仓库工具的日志。
具体的,在执行某个业务的时候,需要用到该业务的执行脚本,该脚本中包括多个执行该脚本时需要使用的SQL语句,每组SQL语句中可以包括M个作业,也即作业步骤,第一日志可以为Hive日志,Hive日志记录了目标脚本中执行每组SQL语句时产生的执行信息,其中,目标脚本中存在多组SQL语句,每组SQL语句中包括M个作业。因此,在需要获取作业日志信息的时候,可以从Hive日志中进行获取。
步骤S102,获取每个作业的时间信息,并根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业。
具体的,在得到Hive日志后,可以对待预处理的Hive日志的每一行做一遍映射,从而对日志进行解析,提取性能关键信息,其中包括M个作业信息,作业信息包括:资源队列,作业(Job)开始时间,作业结束时间,作业异常终止时间,作业等待资源的时间等时间信息。
在得到时间信息后,可以对时间信息进行处理计算,从而得到每个作业执行时的执行时间、等待时间等信息,并根据时间信息确定M个作业中的异常作业。例如,等待时间超过1h的作业为异常作业。
步骤S103,获取目标脚本执行后生成的第二日志,并在第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据P个时间信息集合确定目标脚本的第一异常性能信息,其中,第二日志为资源管理器的日志。
具体的,第二日志可以为Yarn日志,在得到异常作业后,为了进一步确定异常任务的异常原因,可以从根据作业号去获取相应Yarn日志,解析Yarn日志,得到Yarn日志中记录的每个作业下的P个任务的执行日志,并在执行日志中获取异常作业下的每个任务的时间信息,从而可以根据任务的时间信息确定目标脚本在执行时执行缓慢的原因,因此可以将存在异常的时间信息作为第一异常性能信息,完成对缓慢执行的原因分析。
需要说明的是,由于每个作业中包含的任务的数量不同,因此,每个任务对应的P的值也不同。
步骤S104,获取每个异常作业的主任务,并根据主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据多组关联值确定目标脚本的第二异常性能信息。
具体的,在得到Yarn日志后,可以先确定异常作业的主任务,并在主任务的Yarn日志中确定与主任务对应的源表,并获取源表关联的表,从而可以得到源表和关联表之间的关联值,也即将两个表进行关联的关联键值对,进而可以根据关联键值对的状态确定异常作业的异常原因。
例如,在确定源表后,可以通过源表定位到SQL语句查找某张关联表所产生的性能问题,也即数据倾斜问题。每组SQL语句会查找多个表,从多个表进去取数,每组SQL语句的处理会被分为M个作业,而每个作业会分为P个任务(task),通过每个作业对应的Yarn日志来获取当前读取的源表,并通过源表与关联表之间的键值对确定是否存在数据倾斜现象,进而确定是否是由于数据倾斜导致的作业异常。
步骤S105,根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能。
具体的,在得到第一异常性能信息,也即时间信息,并得到第二异常性能信息,也即源表信息后,即可根据时间信息和源表信息确定目标脚本执行缓慢的原因,从而可以避免通过人工进行日志筛选和异常现象筛查,可以直接将存在异常的数据以及数据对应的作业和任务进行显示,从而提高了执行缓慢原因确定的效率和准确性。
本申请实施例提供的脚本执行性能确定方法,通过获取目标脚本执行后生成的第一日志,并解析第一日志,得到目标脚本中的M个作业,其中,第一日志为数据仓库工具的日志;获取每个作业的时间信息,并根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业;获取目标脚本执行后生成的第二日志,并在第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据P个时间信息集合确定目标脚本的第一异常性能信息,其中,第二日志为资源管理器的日志;获取每个异常作业的主任务,并根据主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据多组关联值确定目标脚本的第二异常性能信息;根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能。解决了相关技术中在SQL语句执行缓慢的时候,通过人工分析日志的方法确定缓慢执行原因的效率和准确率低的问题。通过读取第一日志和第二日志中的日志内容,确定执行SQL语句的时候的各个作业和任务的时间信息,并根据时间信息确定发生异常的原因,同时,还通过第二日志中与任务相关的日志信息确定源表,并根据源表的关联内容确定执行缓慢的原因,进而达到了通过自动获取并根据执行信息分析日志内容,进而准确确定SQL语句执行缓慢的原因的效果。
可选地,图2是根据本申请实施例提供的可选的异常作业的确定方法的流程图,如图2所示,在本申请实施例提供的脚本执行性能确定方法中,步骤S102中,根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业包括:
步骤S201,对于每个作业,获取作业的第一提交时刻、第一开始时刻和第一结束时刻。
步骤S202,将第一开始时刻与第一结束时刻相减,得到第一执行时长,并判断第一执行时长是否大于第一预设时长。
步骤S203,在第一执行时长大于第一预设时长的情况下,将作业确定为异常作业。
步骤S204,将第一提交时刻与第一开始时刻相减,得到第一等待时长,并判断第一等待时长是否大于第二预设时长。
步骤S205,在第一等待时长大于第二预设时长的情况下,将作业确定为异常作业。
具体的,在得到时间信息之后,可以从中获取作业的第一提交时刻、第一开始时刻和第一结束时刻,并将开始时间和结束时间相减,得到执行时长,将提交时间和开始时间相减,得到等待时长,并判断执行时长是否大于第一预设时长,在第一执行时长大于第一预设时长的情况下,将作业确定为异常作业,在第一执行时长小于等于第一预设时长的情况下,判断第一等待时长是否大于第二预设时长,其中,第二预设时长和第一预设时长之间并无大小关系,也即,第一预设时长可以大于第二预设时长,也可以小于第二预设时长,也可以等于第二预设时长。在第一等待时长大于第二预设时长的情况下,表征该作业的等待时间过长,因此存在异常。本实施例通过对作业的时间信息进行分析,从而准确的确定导致SQL语句执行缓慢的执行异常作业。
进一步的,还可以确定每个作业中包含的任务的数量,并与预设任务数量进行比较,在任务数量大于预设任务数量的情况下,也可以确定该作业为异常作业。
例如,获取每个作业的Mappers(映射)数和Reducer(处理)数,根据作业号与Stage的对应关系,Stage与Mappers数和Reducer数,由此映射得到作业号与Mappers数和Reducer数的映射键值对,设置Mappers数阈值为M1,设置Reducers数的阈值为R1,当作业号的Mappers值大于M1或者Reducers值大于R1,则该作业号为异常作业。
需要说明的是,Mapper是Hadoop数据处理的第一个阶段(Stage),用于处理输入记录并生成键值对形式的中间结果,Reducer接收Mapper的输出(也即中间键值对),并进行处理,最后生成输出。
可选地,在本申请实施例提供的脚本执行性能确定方法中,在判断第一执行时长是否大于第一预设时长之前,该方法还包括:获取每个作业的第一执行时长,并计算M个第一执行时长的第一平均执行时长;判断第一平均执行时长是否大于第一预设时长;在第一平均执行时长大于第一预设时长的情况下,通过第一平均执行时长替换第一预设时长,得到更新后的第一预设时长;在判断第一等待时长是否大于第二预设时长之前,该方法还包括:计算每个作业的等待时长,得到M个作业等待时长,并计算所述M个作业等待时长的标准差,得到第一标准差;获取预设等待时间比率,并将第一标准差与预设等待时间比率相乘,得到第二预设时长。
需要说明的是,在判断第一执行时长是否大于第一预设时长以及判断第一等待时长是否大于第二预设时长之前,需要先确定第一预设时长和第二预设时长,才可以执行上述判断操作。
具体的,在确定第一预设时长的时候,可以先在日志中获取每个作业的时间信息,从而确定每个作业的执行时长,得到多个执行时长,并计算多个执行时长的平均执行时长,此时,可以判断平均执行时长是否大于第一预设时长,在大于的情况下,表明初始时刻设置的第一预设时长的阈值设置过小,此时,可以将平均执行时长确定为新的第一预设时长,从而完成第一预设时长的更新。
进一步的,在确定了第一预设时长后,需要设置资源等待时间比率α,并计算作业的资源等待时间标准差TD,其中,等待时长的标准差可以通过每个作业的等待时长计算得到,将等待时长标准差TD与资源等待时间比率α相乘,即可得到第二预设时长。本实施例通过计算第一预设时长和第二预设时长,通过确定适合的确定阈值,进而达到准确确定异常作业的效果。
可选地,在本申请实施例提供的脚本执行性能确定方法中,根据P个时间信息集合确定目标脚本的第一异常性能信息包括:对于每个任务,从任务的时间信息中获取任务的第二提交时刻、第二开始时刻和第二结束时刻;将第二开始时刻与第二结束时刻相减,得到第二执行时长,并判断第二执行时长是否大于第三预设时长;在第二执行时长大于第三预设时长的情况下,将任务确定为异常任务;将第二提交时刻与第二开始时刻相减,得到第二等待时长,并判断第二等待时长是否大于第四预设时长;在第二等待时长大于第四预设时长的情况下,将任务确定为异常任务;将异常任务的日志内容确定为第一异常性能信息。
需要说明的是,在确定了异常作业后,需要在异常作业中确定异常任务,其中异常任务的确定方法与异常作业的确定方法相同。
具体的,在得到时间信息之后,可以从中获取任务的第二提交时刻、第二开始时刻和第二结束时刻,并将开始时间和结束时间相减,得到执行时长,将提交时间和开始时间相减,得到等待时长,并判断执行时长是否大于第三预设时长,在第二执行时长大于第三预设时长的情况下,将任务确定为异常任务,在第二执行时长小于等于第四预设时长的情况下,判断第二等待时长是否大于第四预设时长,其中,第三预设时长和第四预设时长之间并无大小关系,也即,第三预设时长可以大于第四预设时长,也可以小于第四预设时长,也可以等于第四预设时长。在第二等待时长大于第四预设时长的情况下,表征该任务的等待时间过长,因此存在异常。本实施例通过对任务的时间信息进行分析,从而准确的确定导致SQL语句执行缓慢的执行异常任务。
例如,在Hadoop中,作业提交给RM(Resource Manager,资源管理器),RM根据NM的负载在NM(Node Manager,节点管理器)集群中挑选合适的调度节点AM(ApplicationMaster,应用程序主机),AM负责作业任务的初始化,并向RM申请资源,一个作业被分为P个任务,由RM调度合适的NM启动Container(容器),Container执行任务。因此,需要在Yarn日志找到每个作业的调度节点AM的执行日志,从中获取每个任务的开始时间,结束时间,等到资源时间,异常终止的任务。
可选地,在本申请实施例提供的脚本执行性能确定方法中,在判断第二执行时长是否大于第三预设时长之前,该方法还包括:计算每个任务的第二执行时长,并计算M个第二执行时长的第二平均执行时长;判断第二平均执行时长是否大于第三预设时长;在第二平均执行时长大于第三预设时长的情况下,通过第二平均执行时长替换第三预设时长,得到更新后的第三预设时长;在判断第二等待时长是否大于第四预设时长之前,该方法还包括:计算每个任务的等待时长,得到M个任务等待时长,并计算所述M个任务等待时长的标准差,得到第二标准差;获取预设等待时间比率,并将第二标准差与预设等待时间比率相乘,得到第四预设时长。
具体的,在确定第三预设时长的时候,可以先在日志中获取每个任务的时间信息,从而确定每个任务的执行时长,得到多个执行时长,并计算多个执行时长的平均执行时长,此时,可以判断平均执行时长是否大于第三预设时长,在大于的情况下,表明初始时刻设置的第三预设时长的阈值设置过小,此时,可以将平均执行时长确定为新的第三预设时长,从而完成第三预设时长的更新。
进一步的,在确定了第三预设时长后,需要设置资源等待时间比率β,并计算任务的资源等待时间标准差TD2,其中,等待时长的标准差可以通过每个任务的等待时长计算得到,将等待时长标准差TD2与资源等待时间比率β相乘,即可得到第二预设时长。本实施例通过计算第三预设时长和第二预设时长,通过确定适合的确定阈值,进而达到准确确定异常任务的效果。
可选地,在本申请实施例提供的脚本执行性能确定方法中,根据主任务确定异常作业的源表包括:从主任务的日志信息中获取异常作业的初始源表,并判断初始源表是否为临时表;在初始源表为临时表的情况下,根据异常作业的开始时刻从M个作业中确定异常作业的上一执行作业,得到前项作业;根据前项作业的主任务确定前项作业的初始源表,并将前项作业的初始源表确定为异常作业的源表;在初始源表不是临时表的情况下,将初始源表确定为异常作业的源表。
具体的,在确定源表的时候,可以直接在每个作业的主任务的日志中获取源表,从而根据源表确定是否存在数据倾斜问题,其中,数据倾斜表征数据分散度不够,导致大量的缓存数据集中到了一个服务节点上。
例如,在确定源表后,可以通过源表定位到SQL语句查找某张关联表所产生的性能问题,也即数据倾斜问题。每组SQL语句会查找多个表,从多个表进去取数,每组SQL语句的处理会被分为M个作业,而每个作业会分为P个任务,通过每个作业对应的Yarn日志来获取当前读取的源表,并通过源表与关联表之间的键值对确定是否存在数据倾斜现象,进而确定是否是由于数据倾斜导致的作业异常。
进一步的,在确定源表的时候,还需要确定获取到的源表是否为临时表,在为临时表的情况下,需要确定当前作业的上一个作业的主任务,并在上一个作业的主任务的日志中获取临时表对应的源表,进而达到准确获取源表,为后续判断是否存在数据倾斜奠定基础。
例如,在获取源表的时候,可以通过检测hdfs路径,然后正则匹配db字段后面的表名,则可获取该作业的源表,但是有的作业存储的是前序作业的临时表,对于hdfs的路径是临时表,正则匹配/tmp/hive-scratch后面的临时表名,然后去前序作业再次寻找,直到寻找到最终的源表。
可选地,在本申请实施例提供的脚本执行性能确定方法中,根据多组关联值确定目标脚本的第二异常性能信息包括:对于一组关联值,识别一组关联值中的预设关联值,得到Q个预设关联值;获取每个预设关联值在源表和源表关联的表中的总数,得到Q个数量值;将Q个数量值与源表确定为第二异常性能信息。
具体的,对于一个源表以及对应的一个关联表,也即对于一对关联表来说,由于表格之间采用键值对的关联方式进行关联,因此,需要确定每个键值对中的关联值是否为异常关联值,此时,可以通过将异常关联值确定为预设关联值,并通过预设关联值对键值对进行筛选的方式,确定是否存在异常关联值,其中,异常关联值可以为空值、负值等,或是无意义值,在得到异常关联值的情况下,需要确定异常关联值在表中的总数,并在数量过大的时候,确定该表格会导致执行该作业的时候存在数据倾斜的问题,进而会导致作业执行过慢。
可选地,在本申请实施例提供的脚本执行性能确定方法中,在根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能之前,该方法还包括:从第二日志中获取每个作业的每个任务的数据量集合,其中,每个任务的数据量中包括数据输入量和数据输出量;获取每个数据量集合中的最大数据输入量和最大数据输出量,并将最大数据输出量除以最大数据输入量,得到目标比率;判断最大数据输入量是否大于预设输入量,并在最大数据输入量大于预设输入量的情况下,将最大数据输入量所属的作业存储至第二监控表中;判断目标比率是否大于预设比率,并在目标比率大于预设比率的情况下,将目标比率所属的作业的日志信息确定为第二异常性能信息。
具体的,还可以从第二日志中获取每个作业的每个任务的数据量集合,并根据每个任务处理的数据量,确定是否存在数量处理量分配不合理的现象。首先,由于每个作业中存在P个任务,因此,需要确定每个任务的输入量和输出量,并获取每个作业中的最大输入量和最大输出量,当最大输入量大于预设输入量的情况下,表征该作业的输入量过大,该作业为异常作业。
进一步的,还需要将最大数据输出量除以最大数据输入量,得到目标比率,判断目标比率是否大于预设值,例如100,在大于的情况下,表征该作业为异常作业,并将上述数据一同进行存储,使得运维人员可以根据上述数据确定异常原因。
例如,一般情况下,map task通过搜索records read/RECORDS_IN了解读取的数据条数,一般一个map处理几千万的数据就算高的,处理上亿会吃力;reduce task,通过搜索records written/RECORDS_OUT了解输出的数据条数。检测作业的Yarn日志下所有的Container日志的字段records read/RECORDS_IN,计算得到最大值Nread,即该作业的输入数据量;检测字段records written/RECORDS_OUT,计算得到最大值Nout,即该作业的输出数据量;设置单个作业读入数据量阈值为N,当Nread>N,则将作业号的数据量写入监控表。当Nout/Nread>100,则将输入输出数据量写入监控表。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种脚本执行性能确定装置,需要说明的是,本申请实施例的脚本执行性能确定装置可以用于执行本申请实施例所提供的用于脚本执行性能确定方法。以下对本申请实施例提供的脚本执行性能确定装置进行介绍。
图3是根据本申请实施例提供的脚本执行性能确定装置的示意图。如图3所示,该装置包括:第一获取单元31,第二获取单元32,第一确定单元33,第二确定单元34,第三确定单元35。
第一获取单元31,用于获取目标脚本执行后生成的第一日志,并解析第一日志,得到目标脚本中的M个作业,其中,第一日志为数据仓库工具的日志。
第二获取单元32,用于获取每个作业的时间信息,并根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业。
第一确定单元33,用于获取目标脚本执行后生成的第二日志,并在第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据P个时间信息集合确定目标脚本的第一异常性能信息,其中,第二日志为资源管理器的日志。
第二确定单元34,用于获取每个异常作业的主任务,并根据主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据多组关联值确定目标脚本的第二异常性能信息。
第三确定单元35,用于根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能。
本申请实施例提供的脚本执行性能确定装置,通过第一获取单元31,用于获取目标脚本执行后生成的第一日志,并解析第一日志,得到目标脚本中的M个作业,其中,第一日志为数据仓库工具的日志;第二获取单元32,用于获取每个作业的时间信息,并根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业;第一确定单元33,用于获取目标脚本执行后生成的第二日志,并在第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据P个时间信息集合确定目标脚本的第一异常性能信息,其中,第二日志为资源管理器的日志;第二确定单元34,用于获取每个异常作业的主任务,并根据主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据多组关联值确定目标脚本的第二异常性能信息;第三确定单元35,用于根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能。解决了相关技术中在SQL语句执行缓慢的时候,通过人工分析日志的方法确定缓慢执行原因的效率和准确率低的问题。通过读取第一日志和第二日志中的日志内容,确定执行SQL语句的时候的各个作业和任务的时间信息,并根据时间信息确定发生异常的原因,同时,还通过第二日志中与任务相关的日志信息确定源表,并根据源表的关联内容确定执行缓慢的原因,进而达到了通过自动获取并根据执行信息分析日志内容,进而准确确定SQL语句执行缓慢的原因的效果。
可选地,在本申请实施例提供的脚本执行性能确定装置中,第二获取单元32包括:第一获取模块,用于对于每个作业,获取作业的第一提交时刻、第一开始时刻和第一结束时刻;第一计算模块,用于将第一开始时刻与第一结束时刻相减,得到第一执行时长,并判断第一执行时长是否大于第一预设时长;第一确定模块,用于在第一执行时长大于第一预设时长的情况下,将作业确定为异常作业;第二计算模块,用于将第一提交时刻与第一开始时刻相减,得到第一等待时长,并判断第一等待时长是否大于第二预设时长;第二确定模块,用于在第一等待时长大于第二预设时长的情况下,将作业确定为异常作业。
可选地,在本申请实施例提供的脚本执行性能确定装置中,该装置还包括:第三获取单元,用于获取每个作业的第一执行时长,并计算M个第一执行时长的第一平均执行时长;第一判断单元,用于判断第一平均执行时长是否大于第一预设时长;第一替换单元,用于在第一平均执行时长大于第一预设时长的情况下,通过第一平均执行时长替换第一预设时长,得到更新后的第一预设时长;第一计算单元,用于计算每个作业的等待时长,得到M个作业等待时长,并计算所述M个作业等待时长的标准差,得到第一标准差;第四获取单元,用于获取预设等待时间比率,并将第一标准差与预设等待时间比率相乘,得到第二预设时长。
可选地,在本申请实施例提供的脚本执行性能确定装置中,第一确定单元33包括:第二获取模块,用于对于每个任务,从任务的时间信息中获取任务的第二提交时刻、第二开始时刻和第二结束时刻;第三计算模块,用于将第二开始时刻与第二结束时刻相减,得到第二执行时长,并判断第二执行时长是否大于第三预设时长;第三确定模块,用于在第二执行时长大于第三预设时长的情况下,将任务确定为异常任务;第四计算模块,用于将第二提交时刻与第二开始时刻相减,得到第二等待时长,并判断第二等待时长是否大于第四预设时长;第四确定模块,用于在第二等待时长大于第四预设时长的情况下,将任务确定为异常任务;第五确定模块,用于将异常任务的日志内容确定为第一异常性能信息。
可选地,在本申请实施例提供的脚本执行性能确定装置中,该装置还包括:第二计算单元,用于计算每个任务的第二执行时长,并计算M个第二执行时长的第二平均执行时长;第二判断单元,用于判断第二平均执行时长是否大于第三预设时长;第二替换单元,用于在第二平均执行时长大于第三预设时长的情况下,通过第二平均执行时长替换第三预设时长,得到更新后的第三预设时长;第三计算单元,用于计算每个任务的等待时长,得到M个任务等待时长,并计算所述M个任务等待时长的标准差,得到第二标准差;第五获取单元,用于获取预设等待时间比率,并将第二标准差与预设等待时间比率相乘,得到第四预设时长。
可选地,在本申请实施例提供的脚本执行性能确定装置中,第二确定单元34包括:第三获取模块,用于从主任务的日志信息中获取异常作业的初始源表,并判断初始源表是否为临时表;第六确定模块,用于在初始源表为临时表的情况下,根据异常作业的开始时刻从M个作业中确定异常作业的上一执行作业,得到前项作业;第七确定模块,用于根据前项作业的主任务确定前项作业的初始源表,并将前项作业的初始源表确定为异常作业的源表;第八确定模块,用于在初始源表不是临时表的情况下,将初始源表确定为异常作业的源表。
可选地,在本申请实施例提供的脚本执行性能确定装置中,第二确定单元34包括:识别模块,用于对于一组关联值,识别一组关联值中的预设关联值,得到Q个预设关联值;第四获取模块,用于获取每个预设关联值在源表和源表关联的表中的总数,得到Q个数量值;第九确定模块,用于将Q个数量值与源表确定为第二异常性能信息。
可选地,在本申请实施例提供的脚本执行性能确定装置中,该装置还包括:第六获取单元,用于从第二日志中获取每个作业的每个任务的数据量集合,其中,每个任务的数据量中包括数据输入量和数据输出量;第七获取单元,用于获取每个数据量集合中的最大数据输入量和最大数据输出量,并将最大数据输出量除以最大数据输入量,得到目标比率;第三判断单元,用于判断最大数据输入量是否大于预设输入量,并在最大数据输入量大于预设输入量的情况下,将最大数据输入量所属的作业存储至第二监控表中;第四判断单元,用于判断目标比率是否大于预设比率,并在目标比率大于预设比率的情况下,将目标比率所属的作业的日志信息确定为第二异常性能信息。
上述脚本执行性能确定装置包括处理器和存储器,上述第一获取单元31,第二获取单元32,第一确定单元33,第二确定单元34,第三确定单元35等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决了相关技术中在SQL语句执行缓慢的时候,通过人工分析日志的方法确定缓慢执行原因的效率和准确率低的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现所述脚本执行性能确定方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述脚本执行性能确定方法。
如图4所示,本发明实施例提供了一种电子设备,电子设备40包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取目标脚本执行后生成的第一日志,并解析第一日志,得到目标脚本中的M个作业,其中,第一日志为数据仓库工具的日志;获取每个作业的时间信息,并根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业;获取目标脚本执行后生成的第二日志,并在第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据P个时间信息集合确定目标脚本的第一异常性能信息,其中,第二日志为资源管理器的日志;获取每个异常作业的主任务,并根据主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据多组关联值确定目标脚本的第二异常性能信息;根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取目标脚本执行后生成的第一日志,并解析第一日志,得到目标脚本中的M个作业,其中,第一日志为数据仓库工具的日志;获取每个作业的时间信息,并根据作业的时间信息从M个作业中获取异常作业,得到N个异常作业;获取目标脚本执行后生成的第二日志,并在第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据P个时间信息集合确定目标脚本的第一异常性能信息,其中,第二日志为资源管理器的日志;获取每个异常作业的主任务,并根据主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据多组关联值确定目标脚本的第二异常性能信息;根据第一异常性能信息和第二异常性能信息确定目标脚本的执行性能。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种脚本执行性能确定方法,其特征在于,包括:
获取目标脚本执行后生成的第一日志,并解析所述第一日志,得到所述目标脚本中的M个作业,其中,所述第一日志为数据仓库工具的日志;
获取每个作业的时间信息,并根据作业的时间信息从所述M个作业中获取异常作业,得到N个异常作业,其中,N小于等于M;
获取所述目标脚本执行后生成的第二日志,并在所述第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据所述P个时间信息集合确定所述目标脚本的第一异常性能信息,其中,所述第二日志为资源管理器的日志;
获取每个异常作业的主任务,并根据所述主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据所述多组关联值确定所述目标脚本的第二异常性能信息;
根据所述第一异常性能信息和所述第二异常性能信息确定所述目标脚本的执行性能。
2.根据权利要求1所述的方法,其特征在于,根据作业的时间信息从所述M个作业中获取异常作业,得到N个异常作业包括:
对于每个作业,获取所述作业的第一提交时刻、第一开始时刻和第一结束时刻;
将所述第一开始时刻与所述第一结束时刻相减,得到第一执行时长,并判断所述第一执行时长是否大于第一预设时长;
在所述第一执行时长大于所述第一预设时长的情况下,将所述作业确定为异常作业;
将所述第一提交时刻与所述第一开始时刻相减,得到第一等待时长,并判断所述第一等待时长是否大于第二预设时长;
在所述第一等待时长大于所述第二预设时长的情况下,将所述作业确定为异常作业。
3.根据权利要求2所述的方法,其特征在于,在判断所述第一执行时长是否大于第一预设时长之前,所述方法还包括:
获取每个作业的第一执行时长,并计算M个第一执行时长的第一平均执行时长;
判断所述第一平均执行时长是否大于所述第一预设时长;
在所述第一平均执行时长大于所述第一预设时长的情况下,通过所述第一平均执行时长替换所述第一预设时长,得到更新后的第一预设时长;
在判断所述第一等待时长是否大于第二预设时长之前,所述方法还包括:
计算每个作业的等待时长,得到M个作业等待时长,并计算所述M个作业等待时长的标准差,得到第一标准差;
获取预设等待时间比率,并将所述第一标准差与所述预设等待时间比率相乘,得到所述第二预设时长。
4.根据权利要求1所述的方法,其特征在于,根据所述P个时间信息集合确定所述目标脚本的第一异常性能信息包括:
对于每个任务,从任务的时间信息中获取所述任务的第二提交时刻、第二开始时刻和第二结束时刻;
将所述第二开始时刻与所述第二结束时刻相减,得到第二执行时长,并判断所述第二执行时长是否大于第三预设时长;
在所述第二执行时长大于所述第三预设时长的情况下,将所述任务确定为异常任务;
将所述第二提交时刻与所述第二开始时刻相减,得到第二等待时长,并判断所述第二等待时长是否大于第四预设时长;
在所述第二等待时长大于所述第四预设时长的情况下,将所述任务确定为异常任务;
将所述异常任务的日志内容确定为所述第一异常性能信息。
5.根据权利要求4所述的方法,其特征在于,在判断所述第二执行时长是否大于第三预设时长之前,所述方法还包括:
计算每个任务的第二执行时长,并计算M个第二执行时长的第二平均执行时长;
判断所述第二平均执行时长是否大于所述第三预设时长;
在所述第二平均执行时长大于所述第三预设时长的情况下,通过所述第二平均执行时长替换所述第三预设时长,得到更新后的第三预设时长;
在判断所述第二等待时长是否大于第四预设时长之前,所述方法还包括:
计算每个任务的等待时长,得到M个任务等待时长,并计算所述M个任务等待时长的标准差,得到第二标准差;
获取预设等待时间比率,并将所述第二标准差与所述预设等待时间比率相乘,得到所述第四预设时长。
6.根据权利要求1所述的方法,其特征在于,根据所述主任务确定异常作业的源表包括:
从所述主任务的日志信息中获取所述异常作业的初始源表,并判断所述初始源表是否为临时表;
在所述初始源表为临时表的情况下,根据所述异常作业的开始时刻从所述M个作业中确定所述异常作业的上一执行作业,得到前项作业;
根据所述前项作业的主任务确定所述前项作业的初始源表,并将所述前项作业的初始源表确定为所述异常作业的源表;
在所述初始源表不是临时表的情况下,将所述初始源表确定为所述异常作业的源表。
7.根据权利要求1所述的方法,其特征在于,根据所述多组关联值确定所述目标脚本的第二异常性能信息包括:
对于一组关联值,识别所述一组关联值中的预设关联值,得到Q个预设关联值;
获取每个预设关联值在所述源表和所述源表关联的表中的总数,得到Q个数量值;
将所述Q个数量值与所述源表确定为所述第二异常性能信息。
8.根据权利要求1所述的方法,其特征在于,在根据所述第一异常性能信息和所述第二异常性能信息确定所述目标脚本的执行性能之前,所述方法还包括:
从所述第二日志中获取每个作业的每个任务的数据量集合,其中,每个任务的数据量中包括数据输入量和数据输出量;
获取每个数据量集合中的最大数据输入量和最大数据输出量,并将所述最大数据输出量除以所述最大数据输入量,得到目标比率;
判断所述最大数据输入量是否大于预设输入量,并在所述最大数据输入量大于所述预设输入量的情况下,将所述最大数据输入量所属的作业存储至第二监控表中;
判断所述目标比率是否大于预设比率,并在所述目标比率大于所述预设比率的情况下,将所述目标比率所属的作业的日志信息确定为所述第二异常性能信息。
9.一种脚本执行性能确定装置,其特征在于,包括:
第一获取单元,用于获取目标脚本执行后生成的第一日志,并解析所述第一日志,得到所述目标脚本中的M个作业,其中,所述第一日志为数据仓库工具的日志;
第二获取单元,用于获取每个作业的时间信息,并根据作业的时间信息从所述M个作业中获取异常作业,得到N个异常作业;
第一确定单元,用于获取所述目标脚本执行后生成的第二日志,并在所述第二日志中获取每个异常作业中的P个任务以及每个任务的时间信息,得到P个时间信息集合,并根据所述P个时间信息集合确定所述目标脚本的第一异常性能信息,其中,所述第二日志为资源管理器的日志;
第二确定单元,用于获取每个异常作业的主任务,并根据所述主任务确定异常作业的源表,得到N个源表,确定每个源表关联的表的关联值,得到多组关联值,并根据所述多组关联值确定所述目标脚本的第二异常性能信息;
第三确定单元,用于根据所述第一异常性能信息和所述第二异常性能信息确定所述目标脚本的执行性能。
10.一种计算机存储介质,其特征在于,所述计算机存储介质用于存储程序,其中,所述程序运行时控制所述计算机存储介质所在的设备执行权利要求1至8中任意一项所述的脚本执行性能确定方法。
11.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任意一项所述的脚本执行性能确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310297447.9A CN116340344A (zh) | 2023-03-23 | 2023-03-23 | 脚本执行性能确定方法、装置、存储介质以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310297447.9A CN116340344A (zh) | 2023-03-23 | 2023-03-23 | 脚本执行性能确定方法、装置、存储介质以及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116340344A true CN116340344A (zh) | 2023-06-27 |
Family
ID=86883490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310297447.9A Pending CN116340344A (zh) | 2023-03-23 | 2023-03-23 | 脚本执行性能确定方法、装置、存储介质以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116340344A (zh) |
-
2023
- 2023-03-23 CN CN202310297447.9A patent/CN116340344A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8719271B2 (en) | Accelerating data profiling process | |
US20190324768A1 (en) | Generating an execution script for configuration of a system | |
US10496659B2 (en) | Database grouping set query | |
CN110019298B (zh) | 数据处理方法和装置 | |
CN106354729A (zh) | 一种图数据处理方法、装置和系统 | |
CN110377519B (zh) | 大数据系统的性能容量测试方法、装置、设备及存储介质 | |
US20130174048A1 (en) | Techniques for guided access to an external distributed file system from a database management system | |
CN105653647A (zh) | Sql语句的信息采集方法及系统 | |
CN110399089B (zh) | 数据存储方法、装置、设备和介质 | |
CN110688383A (zh) | 数据采集方法及系统 | |
CN110928941B (zh) | 一种数据分片抽取方法及装置 | |
US8918410B2 (en) | System and method for fast identification of variable roles during initial data exploration | |
CN117271478A (zh) | 数据迁移方法、装置、存储介质以及电子设备 | |
CN105630997A (zh) | 一种数据并行处理方法、装置及设备 | |
CN116340344A (zh) | 脚本执行性能确定方法、装置、存储介质以及电子设备 | |
CN110019357B (zh) | 数据库查询脚本生成方法及装置 | |
CN111078905A (zh) | 一种数据处理方法、装置、介质以及设备 | |
US9239867B2 (en) | System and method for fast identification of variable roles during initial data exploration | |
CN113220530A (zh) | 数据质量监控方法及平台 | |
CN113760950A (zh) | 指标数据查询方法、装置、电子设备以及存储介质 | |
CN112308317A (zh) | 基于分布式架构的海量地震观测数据噪声功率谱计算方法及系统 | |
CN117390040B (zh) | 基于实时宽表的业务请求处理方法、设备及存储介质 | |
CN116909710A (zh) | 作业调度方法和装置、存储介质及电子设备 | |
CN111552561B (zh) | 一种任务处理方法及装置 | |
US12045654B2 (en) | Memory management through control of data processing tasks |
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 |