CN117827684B - 数据计算作业的预警方法、装置、电子设备及存储介质 - Google Patents
数据计算作业的预警方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117827684B CN117827684B CN202410244511.1A CN202410244511A CN117827684B CN 117827684 B CN117827684 B CN 117827684B CN 202410244511 A CN202410244511 A CN 202410244511A CN 117827684 B CN117827684 B CN 117827684B
- Authority
- CN
- China
- Prior art keywords
- version
- calculation
- complexity
- target data
- performance requirement
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 151
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000005856 abnormality Effects 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 abstract description 17
- 238000007689 inspection Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 230000000750 progressive effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism 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
- 230000000737 periodic effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据计算作业的预警方法、装置、电子设备及存储介质,属于计算机技术领域,所述方法包括:获取待部署的目标数据计算作业版本;基于目标元数据版本和目标数据计算作业版本的关键字,进行语法检查,获取语法检查结果;在语法检查结果指示无语法异常的情况下,基于计算性能需求参考值和目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取目标数据计算作业版本的计算复杂度检查结果;在语法异常或计算复杂度异常的情况下,输出预警信息。通过对目标数据计算作业版本进行语法检查以及计算复杂度检查,能够避免异常的计算逻辑部署到线上环境,实现有效地提升大数据计算系统的稳定性和健壮性。
Description
技术领域
本发明属于计算机技术领域,更具体地,涉及一种数据计算作业的预警方法、装置、电子设备及存储介质。
背景技术
大数据计算系统通常针对海量且复杂的业务数据进行周期性的统计分析,但随着业务发生新增或变化,大数据计算系统需要对应的新增或调整数据处理逻辑,以保证大数据计算系统计算出的数据结果能够契合当前业务发展的需求;由于开发人员对业务逻辑的理解偏差或自身技术所限,导致新增或调整的计算逻辑可能出现异常,当前主要采用事后解决的方式(在异常出现以后再寻求解决办法),如果新增或调整的计算逻辑出现异常,则会降低大数据计算系统的稳定性和健壮性。
发明内容
针对现有技术的缺陷,本发明的目的在于在开发环境下,分两个阶段来检测计算逻辑异常,避免异常的计算逻辑部署到线上环境,旨在解决新增或调整的计算逻辑出现异常导致降低大数据计算系统的稳定性和健壮性的问题。
为实现上述目的,第一方面,本发明提供一种数据计算作业的预警方法,包括:
获取待部署的目标数据计算作业版本;
基于目标元数据版本和所述目标数据计算作业版本的关键字,对所述目标数据计算作业版本进行语法检查,获取语法检查结果;
在所述语法检查结果指示无语法异常的情况下,基于计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取所述目标数据计算作业版本的计算复杂度检查结果,所述计算性能需求值用于表征所述目标数据计算作业版本对应目标计算复杂度的性能需求;
在所述语法检查结果指示语法异常或所述计算复杂度检查结果指示计算复杂度异常的情况下,输出预警信息。
可选地,所述目标数据计算作业版本的关键字包括数据字段和SQL关键字;
所述基于目标元数据版本和所述目标数据计算作业版本的关键字,对所述目标数据计算作业版本进行语法检查,获取语法检查结果,包括:
基于所述目标元数据版本和所述目标数据计算作业版本的数据字段,执行数据结构匹配性检查,获取第一匹配性检查结果;
基于所述目标数据计算作业版本的SQL关键字,执行SQL语法匹配性检查,获取第二匹配性检查结果;
基于所述第一匹配性检查结果和所述第二匹配性检查结果,确定所述语法检查结果。
可选地,所述数据结构匹配性检查的检验项包括:
数据字段匹配检验项,用于检验所述目标数据计算作业版本中数据字段是否存在于所述目标元数据版本之中;
数据表检验项,用于检验所述目标数据计算作业版本中数据表名称是否存在于所述目标元数据版本之中;
从属关系检验项,用于检验所述目标数据计算作业版本中从属关系是否存在于所述目标元数据版本之中,所述从属关系为数据字段与数据表之间的关系。
可选地,所述基于计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取所述目标数据计算作业版本的计算复杂度检查结果,包括:
通过比较预设最大性能占用阈值和所述目标数据计算作业版本的计算性能需求值之间的大小,确定第一比较结果;
基于所述计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,确定所述目标数据计算作业版本的性能偏差值,并比较所述性能偏差值和预设偏差系数之间的大小,确定第二比较结果;
基于所述第一比较结果和所述第二比较结果,确定所述计算复杂度检查结果。
可选地,所述基于所述计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,确定所述目标数据计算作业版本的性能偏差值,具体包括通过以下公式确定性能偏差值:
;
其中,表示性能偏差值,/>表示所述计算性能需求参考值,表示所述目标数据计算作业版本的计算性能需求值,/>表示取绝对值。
可选地,在基于计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取所述目标数据计算作业版本的计算复杂度检查结果之前,还包括:
基于所述目标数据计算作业版本的代码指令内容,通过计算复杂度分析,确定所述目标数据计算作业版本的目标计算复杂度;
基于所述目标计算复杂度和单位复杂度性能需求值,确定所述目标数据计算作业版本的计算性能需求值。
可选地,在基于所述目标计算复杂度和单位复杂度性能需求值,确定所述目标数据计算作业版本的计算性能需求值之前,还包括:
通过统计历史数据计算作业版本的实际计算复杂度,确定所述历史数据计算作业版本的计算复杂度均值;
基于所述计算性能需求参考值和所述历史数据计算作业版本的计算复杂度均值,确定所述单位复杂度性能需求值。
第二方面,本发明还提供一种数据计算作业的预警装置,包括:
待部署版本获取模块,用于获取待部署的目标数据计算作业版本;
语法检查模块,用于基于目标元数据版本和所述目标数据计算作业版本的关键字,对所述目标数据计算作业版本进行语法检查,获取语法检查结果;
计算复杂度检查模块,用于在所述语法检查结果指示无语法异常的情况下,基于计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取所述目标数据计算作业版本的计算复杂度检查结果,所述计算性能需求值用于表征所述目标数据计算作业版本对应目标计算复杂度的性能需求;
预警信息输出模块,用于在所述语法检查结果指示语法异常或所述计算复杂度检查结果指示计算复杂度异常的情况下,输出预警信息。
第三方面,本发明提供一种电子设备,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第四方面,本发明提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
通过基于目标元数据版本和目标数据计算作业版本的关键字,对目标数据计算作业版本进行语法检查,以及基于计算性能需求参考值和目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,可以分成两个阶段进行检查,在第一阶段执行语法检查来判断目标数据计算作业版本的指令是否能够被执行,在第二阶段执行计算复杂度检查来判断该版本在执行过程中对性能的消耗是否存在异常,进而在语法检查结果指示语法异常或计算复杂度检查结果指示计算复杂度异常的情况下,输出预警信息,能够在目标数据计算作业版本中新增或调整的计算逻辑出现异常时及时预警,避免异常的计算逻辑部署到线上环境,实现有效地提升大数据计算系统的稳定性和健壮性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据计算作业的预警方法的流程示意图;
图2是本发明提供的基于元数据的语法异常预执行的流程示意图;
图3是本发明提供的基于Job计算复杂度的性能异常预执行的流程示意图;
图4是本发明提供的确定历史数据计算作业版本的计算复杂度均值的流程示意图;
图5是本发明提供的数据计算作业的预警装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一匹配性检查结果和第二匹配性检查结果等是用于区别不同的匹配性检查结果,而不是用于描述匹配性检查结果的特定顺序。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
首先,对本发明实施例中涉及的技术术语进行介绍。
(1)元数据;
用于描述数据的数据,在大数据计算系统内即为描述业务数据的名称、大小、类型等信息的数据,比如订单数据结构中的“OrderNo”、“OrderAmount”。
(2)计算复杂度;
用于描述计算逻辑的复杂性,通常从渐进时间复杂度O(t)和渐进空间复杂度O(s)两个维度综合衡量,渐进时间复杂度用于评估计算逻辑的执行时间与数据规模之间的增长关系,渐进空间复杂度用于评估计算逻辑的存储空间与数据规模之间的增长关系,本发明中统一用O(t+s)代表计算复杂度。
(3)数据计算作业(Job)异常通常可归为语法异常(编写异常)和性能损耗异常,前者直接导致Job执行失败,后者可能因占用大量服务器性能引起环境系统性宕机。
接下来,对本发明实施例中提供的技术方案进行介绍。
图1是本发明提供的数据计算作业的预警方法的流程示意图,如图1所示,该方法的执行主体可以是电子设备,例如服务器等。该方法包括以下步骤S101-S104。
步骤S101,获取待部署的目标数据计算作业版本。
步骤S102,基于目标元数据版本和目标数据计算作业版本的关键字,对目标数据计算作业版本进行语法检查,获取语法检查结果。
可以理解的是,目标元数据版本可以是最新的元数据版本。例如,随着数据库的更新迭代,数据库数据结构发生变化,数据结构的变化影响业务元数据的信息变化,由VMeta1.0更新为VMeta 1.1,若VMeta 1.1为当前最新的元数据版本,则VMeta 1.1即为目标元数据版本。
步骤S103,在语法检查结果指示无语法异常的情况下,基于计算性能需求参考值和目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取目标数据计算作业版本的计算复杂度检查结果,计算性能需求值用于表征目标数据计算作业版本对应目标计算复杂度的性能需求。
可以理解的是,通过步骤102以及步骤103可以分别对两类异常进行检查。
第一类异常是,目标数据计算作业版本的部分或全部指令无法被正常执行;第二类异常是,目标数据计算作业版本的全部指令可以被正常执行,但对性能的消耗存在异常。
不存在第一类异常的情况下,目标数据计算作业版本的全部指令才能被正常执行,进而可以分析指令执行过程中是否会产生第二类异常。
故而,对目标数据计算作业版本进行检查的过程中可以对应的分成两个阶段检查。在第一阶段检查中,通过步骤102进行语法检查来判断目标数据计算作业版本的指令是否能够被执行。在确定无语法异常的情况下可以进入第二阶段检查。在第二阶段检查中,通过步骤103计算复杂度检查来判断该版本在执行过程中对性能的消耗是否存在异常。
步骤S104,在语法检查结果指示语法异常或计算复杂度检查结果指示计算复杂度异常的情况下,输出预警信息。
通过基于目标元数据版本和目标数据计算作业版本的关键字,对目标数据计算作业版本进行语法检查,以及基于计算性能需求参考值和目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,可以分成两个阶段进行检查,在第一阶段执行语法检查来判断目标数据计算作业版本的指令是否能够被执行,在第二阶段执行计算复杂度检查来判断该版本在执行过程中对性能的消耗是否存在异常,进而在语法检查结果指示语法异常或计算复杂度检查结果指示计算复杂度异常的情况下,输出预警信息,能够在目标数据计算作业版本中新增或调整的计算逻辑出现异常时及时预警,避免异常的计算逻辑部署到线上环境,实现有效地提升大数据计算系统的稳定性和健壮性。
示例性地,本发明提供的数据计算作业(Job)的预警方法包括两个阶段。第一阶段基于元数据的数据结构进行语法异常检查,筛选出Job开发过程中人为因素或企业数据库发生变更导致Job获取新信息不及时出现的异常;第二阶段以Job计算复杂度为基础,以Job历史计算复杂度平均值为基线判断Job是否可能会出现性能上的计算异常。
第一阶段检查:基于元数据的语法异常预执行。图2是本发明提供的基于元数据的语法异常预执行的流程示意图。
利用大数据计算系统的元数据,保存每个时间阶段的元数据版本,当Job提交新版本时,启动元数据检查,核对关键字及业务元数据的匹配度,若100%匹配则通过检查,否则终止提交进程,返回异常结果。
(1)企业数据库的更新迭代,伴随企业数据库数据结构的变化,初始数据结构版本记为VData 1.0,后续数据结构版本记为VData 1.1,VData 1.2,VData 1.3等以此类推。
(2)企业数据库数据结构的变化影响业务元数据的信息变化,初始元数据版本记为VMeta 1.0,后续元数据版本记为VMeta 1.1,VMeta 1.2,VMeta 1.3等以此类推。
(3)依据初始元数据版本编写的计算任务记为Job 1.0,由于企业数据库中的数据结构由VData 1.0变化为VData 1.1,Job 1.0需要同步调整计算逻辑,调整完成的Job版本为Job 1.1(也即获取待部署的目标数据计算作业版本Job 1.1)。
(4)针对Job 1.1,可以基于Job 1.1和目标数据计算作业版本的关键字,对Job1.1进行语法检查,获取语法检查结果。
具体地,目标数据计算作业版本Job 1.1的关键字包括数据字段和SQL关键字。
可以基于目标元数据版本(例如VData 1.1)和目标数据计算作业版本(例如Job1.1)的数据字段,执行数据结构匹配性检查,获取第一匹配性检查结果。
数据结构匹配性检查的检验项包括:
数据字段匹配检验项,用于检验目标数据计算作业版本中数据字段是否存在于目标元数据版本之中;
数据表检验项,用于检验目标数据计算作业版本中数据表名称是否存在于目标元数据版本之中;
从属关系检验项,用于检验目标数据计算作业版本中从属关系是否存在于目标元数据版本之中,从属关系为数据字段与数据表之间的关系。
例如Job 1.1与元数据VMeta 1.1进行数据结构的匹配性检查,检测Job 1.1中数据字段名称及其所属的数据表名称是否在VMeta 1.1中存在,且所属关系是否正确。
同时基于目标数据计算作业版本的SQL关键字(例如SELECT、FROM和WHERE等),执行SQL语法匹配性检查,获取第二匹配性检查结果。例如,获取第二匹配性检查结果校验Job1.1中的SQL关键字及其语法是否符合标准语法。
基于第一匹配性检查结果和第二匹配性检查结果,确定语法检查结果。
可以理解的是,语法检查结果包括第一匹配性检查结果和第二匹配性检查结果,第一匹配性检查结果用于指示是否通过数据结构匹配性检查,第二匹配性检查结果用于指示是否通过SQL语法匹配性检查。如果Job 1.1未通过数据结构匹配性检查或Job 1.1未通过SQL语法匹配性检查,则Job 1.1未通过第一阶段检查。如果Job 1.1通过数据结构匹配性检查且Job 1.1通过SQL语法匹配性检查,则Job 1.1通过第一阶段检查。
(5)Job 1.1如果通过第一阶段检查,则进入第二阶段性能检查阶段,否则输出预警信息以提示发生异常,进而可以调整Job计算逻辑后重新提交检查。
第二阶段检查:基于Job计算复杂度的性能异常预执行。图3是本发明提供的基于Job计算复杂度的性能异常预执行的流程示意图。
(6)通过统计历史数据计算作业版本的实际计算复杂度,确定历史数据计算作业版本的计算复杂度均值Avg_O(t+s)。
例如,图4是本发明提供的确定历史数据计算作业版本的计算复杂度均值的流程示意图,如图4所示,Job 1.0在未调整计算逻辑之前,在大数据计算系统线上环境周期性计算执行,同一版本Job在不同执行周期的计算复杂度O(t+s),Job 1.0的初始计算复杂度为O(t+s) 1.0.1,第1周期的实际计算复杂度为O(t+s) 1.0.2,从第2周期往后的计算复杂度依次为O(t+s) 1.0.3,O(t+s) 1.0.4等以此类推,可计算出历史Job计算复杂度均值Avg_O(t+s)。
(7)基于计算性能需求参考值AvgJobCost和历史数据计算作业版本的计算复杂度均值Avg_O(t+s),确定单位复杂度性能需求值。
依据历史Job计算复杂度均值Avg_O(t+s)和平均性能需求AvgJobCost(可从大数据计算系统服务器端获取,也即上述计算性能需求参考值)可计算出每单位复杂度的性能需求。
(8)基于目标数据计算作业版本Job 1.1的代码指令内容,通过计算复杂度分析,确定目标数据计算作业版本Job 1.1的目标计算复杂度O(t+s) 1.1.1;进而基于目标计算复杂度O(t+s) 1.1.1和单位复杂度性能需求值,确定目标数据计算作业版本Job 1.1的计算性能需求值JobCost 1.1。
可选地,可以分析Job 1.1的代码指令内容,提取出基本操作,进而分析每个基本操作的执行次数,根据基本操作的执行次数,确定Job 1.1的目标计算复杂度O(t+s)1.1.1。
例如,Job 1.1的计算复杂度计为O(t+s) 1.1.1,则Job 1.1的性能需求,此处JobCost 1.1为Job 1.1的计算性能需求值。
(9)在语法检查结果指示无语法异常的情况下,基于AvgJobCost和Job 1.1的计算性能需求值JobCost 1.1,进行计算复杂度检查,获取Job 1.1的计算复杂度检查结果。
具体地,可以通过比较预设最大性能占用阈值MaxJobCost和目标数据计算作业版本Job 1.1的计算性能需求值之间的大小,确定第一比较结果,第一比较结果用于表征JobCost 1.1与MaxJobCost之间的大小。
基于计算性能需求参考值AvgJobCost和目标数据计算作业版本Job 1.1的计算性能需求值JobCost 1.1,确定目标数据计算作业版本Job 1.1的性能偏差值(),并比较性能偏差值和预设偏差系数p之间的大小,确定第二比较结果,第二比较结果用于表征Job 1.1的性能偏差值与p之间的大小。
可选地,性能偏差值的具体计算公式如下:
;
其中,表示性能偏差值(Performance Deviation Value),/>表示计算性能需求参考值,/>表示目标数据计算作业版本的计算性能需求值(例如JobCost 1.1),/>表示取绝对值。
基于第一比较结果和第二比较结果,确定计算复杂度检查结果。
可以理解的是,如果满足以下式子:
;
而且满足以下式子:
;
则表明Job 1.1通过第二阶段检测。
如果,则表明/>的计算性能需求超过大数据计算系统服务器能够承受的性能占用阈值,在此情况下输出预警信息以提示发生异常;如果满足以下式子:
;
则表明Job 1.1的性能需求在Job 1.0的基础上出现大幅度增加,可能存在会出现笛卡尔积或数据倾斜的处理逻辑,在此情况下输出预警信息以提示发生异常。
因此,通过元数据的语法异常预执行检查,提前发现Job计算逻辑存在的BUG等异常问题,以避免Job发布上线后影响生产环境。通过Job消耗性能预执行计算,提前评估Job可能存在的性能消耗不可控问题,比如笛卡尔积、数据倾斜、资源紧缺等,避免Job发布上线后因资源抢占出现大面积Job延时或生产环境宕机现象。因此,通过上述两个阶段检查,避免异常的计算逻辑部署到线上环境,实现有效地提升大数据计算系统的稳定性和健壮性。
示例性地,下面以对单一Job的发布上线流程进行检查为例进行说明。
(1)首先选取交易系统订单数据并查询订单日期为“2023-01-01”的所有有效订单金额信息为场景,企业数据库订单数据结构VData 1.0如表1所示。
表1 订单数据结构信息表
(2)元数据从企业数据库同步更新数据结构版本,生成VMeta 1.0。
(3)依据VMeta 1.0,初始Job1.0内容如下:
SELECT OrderAmount FROM Order_info WHERE OrderDate = “2023-01-01”;
其中,Job1.0中数据字段包括OrderAmount和OrderDate,Job1.0中数据表名称包括Order_info,Job1.0中从属关系是OrderAmount和OrderDate归属于Order_info。
根据所用关键字及遍历数据表的次数定义计算复杂度,为了更好的展示本发明的效果将该场景所有的计算复杂度提升100倍,即;
计算复杂度受时间和空间的双重影响,在不同计算周期内的实际复杂度有细微差异,这里假定第一周期,第二周期/>,第三周期/>,第四周期/>;可以通过以下式子计算出Job1.0历史计算复杂度均值/>:
。
(4)如果Job1.0历史计算复杂度的平均性能需求(cu表示计算资源的单位),那么单位复杂度的性能需求:
。
(5)企业数据库订单数据结构由VData 1.0迭代为VData 1.1,如表2所示。
表2 更新后的订单数据结构信息表
(6)元数据从企业数据库同步更新数据结构版本,元数据版本由VMeta 1.0迭代为VMeta 1.1。
(7)依据VMeta 1.1,初始Job1.0需要增加有效订单的筛选条件以获取真正有效的订单数据,调整后的Job1.1版本内容如下:
SELECT OrderAmount FROM Order_info WHERE OrderDate = “2023-01-01” ANDOrderStatus = 1;
其中,Job1.1中数据字段包括OrderAmount和OrderDate,Job1.0中数据表名称包括Order_info,Job1.1中从属关系是OrderAmount和OrderDate归属于Order_info。
需要说明的是,此时VMeta 1.1中的“订单金额”字段名已发生改变,Job1.1版本并未进行调整。
(8)Job1.1提交上线时,Job1.1中的字段信息在VMeta 1.1元数据中的Order_info表中并未发现,触发异常预警机制,第一阶段检查结束。
(9)假设Job1.1版本内容如下且通过了第一阶段检查,即刻进入第二阶段检查。
SELECT OrderAMT FROM Order_info WHERE OrderDate = “2023-01-01” ANDOrderStatus = 1;
(10)相比Job1.0版本,Job1.1版本计算复杂度O(t+s) 1.1.1为大于100小于200的数值,这里假设,由此可计算出Job 1.1版本性能需求:
。
(11)如果大数据计算系统的性能承受阈值,偏差系数阈值为常量p(0.5);则可以确定:
;
而且可以确定:
;
;
因而,Job1.1通过异常预警模型的预执行检查。
下面对本发明提供的数据计算作业的预警装置进行描述,下文描述的数据计算作业的预警装置与上文描述的数据计算作业的预警方法可相互对应参照。
图5是本发明提供的数据计算作业的预警装置的结构示意图,如图5所示,该装置包括:待部署版本获取模块10、语法检查模块20、计算复杂度检查模块30和预警信息输出模块40。其中:
待部署版本获取模块10,用于获取待部署的目标数据计算作业版本;
语法检查模块20,用于基于目标元数据版本和目标数据计算作业版本的关键字,对目标数据计算作业版本进行语法检查,获取语法检查结果;
计算复杂度检查模块30,用于在语法检查结果指示无语法异常的情况下,基于计算性能需求参考值和目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取目标数据计算作业版本的计算复杂度检查结果,计算性能需求值用于表征目标数据计算作业版本对应目标计算复杂度的性能需求;
预警信息输出模块40,用于在语法检查结果指示语法异常或计算复杂度检查结果指示计算复杂度异常的情况下,输出预警信息。
应当理解的是,上述装置用于执行上述实施例中的方法,装置中相应的程序模块,其实现原理和技术效果与上述方法中的描述类似,该装置的工作过程可参考上述方法中的对应过程,此处不再赘述。
基于上述实施例中的方法,本发明实施例提供了一种电子设备。该设备可以包括:至少一个用于存储程序的存储器和至少一个用于执行存储器存储的程序的处理器。其中,当存储器存储的程序被执行时,处理器用于执行上述实施例中所描述的方法。
基于上述实施例中的方法,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本发明实施例提供了一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
可以理解的是,本发明实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本发明实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本发明实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本发明的实施例的范围。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据计算作业的预警方法,其特征在于,包括:
获取待部署的目标数据计算作业版本;
基于目标元数据版本和所述目标数据计算作业版本的关键字,对所述目标数据计算作业版本进行语法检查,获取语法检查结果,所述语法检查结果包括第一匹配性检查结果和第二匹配性检查结果,所述第一匹配性检查结果用于指示是否通过数据结构匹配性检查,所述第二匹配性检查结果用于指示是否通过SQL语法匹配性检查;
在所述语法检查结果指示无语法异常的情况下,基于计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取所述目标数据计算作业版本的计算复杂度检查结果,所述计算性能需求值用于表征所述目标数据计算作业版本对应目标计算复杂度的性能需求;
在所述语法检查结果指示语法异常或所述计算复杂度检查结果指示计算复杂度异常的情况下,输出预警信息;
在基于计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取所述目标数据计算作业版本的计算复杂度检查结果之前,还包括:
基于所述目标数据计算作业版本的代码指令内容,通过计算复杂度分析,确定所述目标数据计算作业版本的目标计算复杂度;
基于所述目标计算复杂度和单位复杂度性能需求值,确定所述目标数据计算作业版本的计算性能需求值;
在基于所述目标计算复杂度和单位复杂度性能需求值,确定所述目标数据计算作业版本的计算性能需求值之前,还包括:
通过统计历史数据计算作业版本的实际计算复杂度,确定所述历史数据计算作业版本的计算复杂度均值;
基于所述计算性能需求参考值和所述历史数据计算作业版本的计算复杂度均值,确定所述单位复杂度性能需求值。
2.根据权利要求1所述数据计算作业的预警方法,其特征在于,所述目标数据计算作业版本的关键字包括数据字段和SQL关键字;
所述基于目标元数据版本和所述目标数据计算作业版本的关键字,对所述目标数据计算作业版本进行语法检查,获取语法检查结果,包括:
基于所述目标元数据版本和所述目标数据计算作业版本的数据字段,执行数据结构匹配性检查,获取第一匹配性检查结果;
基于所述目标数据计算作业版本的SQL关键字,执行SQL语法匹配性检查,获取第二匹配性检查结果;
基于所述第一匹配性检查结果和所述第二匹配性检查结果,确定所述语法检查结果。
3.根据权利要求2所述数据计算作业的预警方法,其特征在于,所述数据结构匹配性检查的检验项包括:
数据字段匹配检验项,用于检验所述目标数据计算作业版本中数据字段是否存在于所述目标元数据版本之中;
数据表检验项,用于检验所述目标数据计算作业版本中数据表名称是否存在于所述目标元数据版本之中;
从属关系检验项,用于检验所述目标数据计算作业版本中从属关系是否存在于所述目标元数据版本之中,所述从属关系为数据字段与数据表之间的关系。
4.根据权利要求1-3任一项所述数据计算作业的预警方法,其特征在于,所述基于计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取所述目标数据计算作业版本的计算复杂度检查结果,包括:
通过比较预设最大性能占用阈值和所述目标数据计算作业版本的计算性能需求值之间的大小,确定第一比较结果;
基于所述计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,确定所述目标数据计算作业版本的性能偏差值,并比较所述性能偏差值和预设偏差系数之间的大小,确定第二比较结果;
基于所述第一比较结果和所述第二比较结果,确定所述计算复杂度检查结果。
5.根据权利要求4所述数据计算作业的预警方法,其特征在于,所述基于所述计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,确定所述目标数据计算作业版本的性能偏差值,具体包括通过以下公式确定性能偏差值:
;
其中,表示性能偏差值,/>表示所述计算性能需求参考值,表示所述目标数据计算作业版本的计算性能需求值,/>表示取绝对值。
6.一种数据计算作业的预警装置,其特征在于,包括:
待部署版本获取模块,用于获取待部署的目标数据计算作业版本;
语法检查模块,用于基于目标元数据版本和所述目标数据计算作业版本的关键字,对所述目标数据计算作业版本进行语法检查,获取语法检查结果,所述语法检查结果包括第一匹配性检查结果和第二匹配性检查结果,所述第一匹配性检查结果用于指示是否通过数据结构匹配性检查,所述第二匹配性检查结果用于指示是否通过SQL语法匹配性检查;
计算复杂度检查模块,用于在所述语法检查结果指示无语法异常的情况下,基于计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取所述目标数据计算作业版本的计算复杂度检查结果,所述计算性能需求值用于表征所述目标数据计算作业版本对应目标计算复杂度的性能需求;
预警信息输出模块,用于在所述语法检查结果指示语法异常或所述计算复杂度检查结果指示计算复杂度异常的情况下,输出预警信息;
在基于计算性能需求参考值和所述目标数据计算作业版本的计算性能需求值,进行计算复杂度检查,获取所述目标数据计算作业版本的计算复杂度检查结果之前,还包括:
基于所述目标数据计算作业版本的代码指令内容,通过计算复杂度分析,确定所述目标数据计算作业版本的目标计算复杂度;
基于所述目标计算复杂度和单位复杂度性能需求值,确定所述目标数据计算作业版本的计算性能需求值;
在基于所述目标计算复杂度和单位复杂度性能需求值,确定所述目标数据计算作业版本的计算性能需求值之前,还包括:
通过统计历史数据计算作业版本的实际计算复杂度,确定所述历史数据计算作业版本的计算复杂度均值;
基于所述计算性能需求参考值和所述历史数据计算作业版本的计算复杂度均值,确定所述单位复杂度性能需求值。
7.一种电子设备,其特征在于,包括:
至少一个存储器,用于存储程序;
至少一个处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行如权利要求1-5任一所述的方法。
8.一种非暂态计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,当所述计算机程序在处理器上运行时,使得所述处理器执行如权利要求1-5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410244511.1A CN117827684B (zh) | 2024-03-05 | 2024-03-05 | 数据计算作业的预警方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410244511.1A CN117827684B (zh) | 2024-03-05 | 2024-03-05 | 数据计算作业的预警方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117827684A CN117827684A (zh) | 2024-04-05 |
CN117827684B true CN117827684B (zh) | 2024-05-24 |
Family
ID=90504334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410244511.1A Active CN117827684B (zh) | 2024-03-05 | 2024-03-05 | 数据计算作业的预警方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827684B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445795A (zh) * | 2016-09-26 | 2017-02-22 | 中国工商银行股份有限公司 | 一种数据库sql效率检测方法及装置 |
CN107678936A (zh) * | 2017-06-25 | 2018-02-09 | 平安科技(深圳)有限公司 | 业务系统预先稽查方法、服务器及计算机可读存储介质 |
CN110781021A (zh) * | 2019-10-29 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 异常检测方法、装置、计算机设备及存储介质 |
WO2021164465A1 (zh) * | 2020-02-20 | 2021-08-26 | 深圳壹账通智能科技有限公司 | 智能预警方法与系统 |
CN113721957A (zh) * | 2021-08-30 | 2021-11-30 | 四川虹美智能科技有限公司 | 对嵌入式设备固件部署升级的自动测试方法、装置和系统 |
CN115114299A (zh) * | 2022-07-15 | 2022-09-27 | 浙江网安信创电子技术有限公司 | 基于Flink SQL实现元数据管理的方法 |
CN115344495A (zh) * | 2022-08-22 | 2022-11-15 | 平安银行股份有限公司 | 批量任务测试的数据分析方法、装置、计算机设备及介质 |
CN116466959A (zh) * | 2023-04-07 | 2023-07-21 | 中国邮政储蓄银行股份有限公司 | 微服务系统的部署方法、装置、可读存储介质和电子设备 |
CN116957491A (zh) * | 2023-07-04 | 2023-10-27 | 康键信息技术(深圳)有限公司 | 业务预警方法、系统、设备及介质 |
CN117112594A (zh) * | 2023-07-03 | 2023-11-24 | 平安银行股份有限公司 | 权益系统达标作业检查方法、装置、设备及存储介质 |
CN117251355A (zh) * | 2022-06-10 | 2023-12-19 | 北京字跳网络技术有限公司 | 性能测试方法、装置、设备、计算机可读存储介质及产品 |
CN117331836A (zh) * | 2023-10-16 | 2024-01-02 | 中教畅享(北京)科技有限公司 | 一种基于代码语法树分析的评测方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424271B2 (en) * | 2012-08-30 | 2016-08-23 | International Business Machines Corporation | Atomic incremental load for map-reduce systems on append-only file systems |
US9058425B2 (en) * | 2013-11-13 | 2015-06-16 | Bank Of America Corporation | Software metrics assessment system |
US9594665B2 (en) * | 2014-03-05 | 2017-03-14 | Microsoft Technology Licensing, Llc | Regression evaluation using behavior models of software applications |
US11669439B2 (en) * | 2020-06-09 | 2023-06-06 | Methodics, Inc. | Computing hardware and software design testing auditability, including for critical control systems, functional safety, and autonomous vehicle component certification |
US11656977B2 (en) * | 2021-04-06 | 2023-05-23 | EMC IP Holding Company LLC | Automated code checking |
-
2024
- 2024-03-05 CN CN202410244511.1A patent/CN117827684B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445795A (zh) * | 2016-09-26 | 2017-02-22 | 中国工商银行股份有限公司 | 一种数据库sql效率检测方法及装置 |
CN107678936A (zh) * | 2017-06-25 | 2018-02-09 | 平安科技(深圳)有限公司 | 业务系统预先稽查方法、服务器及计算机可读存储介质 |
CN110781021A (zh) * | 2019-10-29 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 异常检测方法、装置、计算机设备及存储介质 |
WO2021164465A1 (zh) * | 2020-02-20 | 2021-08-26 | 深圳壹账通智能科技有限公司 | 智能预警方法与系统 |
CN113721957A (zh) * | 2021-08-30 | 2021-11-30 | 四川虹美智能科技有限公司 | 对嵌入式设备固件部署升级的自动测试方法、装置和系统 |
CN117251355A (zh) * | 2022-06-10 | 2023-12-19 | 北京字跳网络技术有限公司 | 性能测试方法、装置、设备、计算机可读存储介质及产品 |
CN115114299A (zh) * | 2022-07-15 | 2022-09-27 | 浙江网安信创电子技术有限公司 | 基于Flink SQL实现元数据管理的方法 |
CN115344495A (zh) * | 2022-08-22 | 2022-11-15 | 平安银行股份有限公司 | 批量任务测试的数据分析方法、装置、计算机设备及介质 |
CN116466959A (zh) * | 2023-04-07 | 2023-07-21 | 中国邮政储蓄银行股份有限公司 | 微服务系统的部署方法、装置、可读存储介质和电子设备 |
CN117112594A (zh) * | 2023-07-03 | 2023-11-24 | 平安银行股份有限公司 | 权益系统达标作业检查方法、装置、设备及存储介质 |
CN116957491A (zh) * | 2023-07-04 | 2023-10-27 | 康键信息技术(深圳)有限公司 | 业务预警方法、系统、设备及介质 |
CN117331836A (zh) * | 2023-10-16 | 2024-01-02 | 中教畅享(北京)科技有限公司 | 一种基于代码语法树分析的评测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117827684A (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7507602B2 (ja) | データ品質分析 | |
US10235277B2 (en) | Method of detecting false test alarms using test step failure analysis | |
JP6066927B2 (ja) | データパターン情報の生成 | |
US10671627B2 (en) | Processing a data set | |
US11599539B2 (en) | Column lineage and metadata propagation | |
US10346294B2 (en) | Comparing software projects having been analyzed using different criteria | |
EP2199905A1 (en) | Lifecycle management and consistency checking of object models using application platform tools | |
CN107784003B (zh) | 数据查询异常检测方法、装置、设备及系统 | |
CN110825633A (zh) | 一种针对Java语言的软件缺陷检测与提取方法 | |
CN117827684B (zh) | 数据计算作业的预警方法、装置、电子设备及存储介质 | |
US20080091404A1 (en) | Generating Metrics on Data Representations | |
US12073295B2 (en) | Machine learning model operation management system and method | |
CN113239064A (zh) | 一种数据库更新方法、装置、电子设备及存储介质 | |
CN111831464B (zh) | 数据操作的控制方法及装置 | |
Kaur et al. | Entropy based bug prediction using neural network based regression | |
CN116955504B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
WO2024029189A1 (ja) | 開発支援システム | |
CN117632963B (zh) | 一种建表方法、系统及电子设备 | |
Rashid et al. | KBQ: a tool for Knowledge Base Quality assessment using evolution analysis | |
CN118035210A (zh) | 数据库的数据字典管理方法、存储介质、设备及产品 | |
WO2023219730A1 (en) | Training and implementing a data quality verification model to validate recurring data pipelines | |
CN112328455A (zh) | 计算机软件系统中基于数据库实现通用业务监控的系统 | |
CN116244179A (zh) | 一种可自我改善的系统固件度量方法 | |
CN116186500A (zh) | 一种异常指标检测方法、装置、计算设备及存储介质 | |
CN115098865A (zh) | 一种基于eemd与arma的软件漏洞趋势预测方法 |
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 |