CN112860523A - 批量作业处理的故障预测方法、装置和服务器 - Google Patents

批量作业处理的故障预测方法、装置和服务器 Download PDF

Info

Publication number
CN112860523A
CN112860523A CN202110279323.9A CN202110279323A CN112860523A CN 112860523 A CN112860523 A CN 112860523A CN 202110279323 A CN202110279323 A CN 202110279323A CN 112860523 A CN112860523 A CN 112860523A
Authority
CN
China
Prior art keywords
batch
level
resource consumption
job
jobs
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
Application number
CN202110279323.9A
Other languages
English (en)
Inventor
周誉
吴颖雪
戴若澄
谢奎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110279323.9A priority Critical patent/CN112860523A/zh
Publication of CN112860523A publication Critical patent/CN112860523A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本说明书提供了批量作业处理的故障预测方法、装置和服务器。基于该方法,在当前时间段基于数据库处理批量作业时,可以先获取上一个时间段系统处理批量作业时的第一SQL执行计划日志;当处理完当前时间段的第一层级的批量作业时,获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;再根据上述数据,更新第一SQL执行计划日志,得到第二SQL执行计划日志;根据第二SQL执行计划日志、元数据表,综合利用作业之间的依赖关系和目标表之间的血缘关系,确定出当前时间段尚未处理的第二层级的批量作业的资源消耗的预测值,从而可以较为准确地提前预测出系统在后续处理第二层级的批量作业时是否会存在故障风险。

Description

批量作业处理的故障预测方法、装置和服务器
技术领域
本说明书属于大数据处理技术领域,尤其涉及批量作业处理的故障预测方法、装置和服务器。
背景技术
在许多大数据处理场景(例如,银行的大批量交易作业处理场景)中,系统往往需要按照固定规则,逐层级地对批量作业进行处理。
通常在初始层级的批量作业处理中混入的脏数据往往不会立即引起系统的警觉。但是,在一些较为复杂的应用场景中,由于数据加工过程链路相对较长,上述脏数据可能会逐层级地处理并传递到后续的批量作业处理中。并且,上述脏数据在逐层级的处理和传递过程中,还可能会由于数据加工过程所产生的笛卡尔积或数据倾斜,导致在后续的批量作业处理中引起单点负荷过高等问题,进而引起系统发生故障,甚至导致系统整体出现宕机。而基于现有方法往往无法提前预测出上述故障风险,影响系统处理批量作业时的安全、稳定。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本说明书提供了一种批量作业处理的故障预测方法、装置和服务器,以能较准确地提前预测出在对后续的批量作业处理时存再的故障风险,保护系统处理批量作业时的安全、稳定。
本说明书提供了一种批量作业处理的故障预测方法,包括:
获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;其中,所述第一SQL执行计划日志至少包含有上一个时间段系统基于数据库处理批量作业时所使用的SQL语句中的多个执行算子的关联信息;
获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;其中,所述元数据表至少包含有作业之间的依赖关系,以及处理作业所涉及的目标表之间的血缘关系;
根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志;
根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值;
根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险。
在一个实施例中,所述多个执行算子包括:GATHER算子、BROADCAST算子、HashAGGREGATE算子。
在一个实施例中,根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志,包括:
根据第一层级的批量作业的作业日志,修改所述第一SQL执行计划日志中与所述第一层级的批量作业对应的数据信息,更新所述第一SQL执行计划日志。
在一个实施例中,根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值,包括:
采集系统当前的运行参数;
根据所述第二SQL执行计划日志、所述元数据表,以及系统当前的运行参数,通过进行多元线性回归计算,确定出参与处理第二层级的批量作业的多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值;
根据所述多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值,确定出第二层级的批量作业的资源消耗的预测值。
在一个实施例中,所述多个资源包括:IO资源、CPU资源、磁盘资源、内存资源。
在一个实施例中,根据所述多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值,确定出第二层级的批量作业的资源消耗的预测值,包括:
根据所述多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值,分别计算出第二层级的批量作业分别针对各个资源的资源消耗的预测值;
根据所述第二层级的批量作业分别针对各个资源的资源消耗的预测值,构建对应的资源消耗预测向量,作为所述第二层级的批量作业的资源消耗的预测值;其中,所述资源消耗预测向量包括多个数据元素,且所述数据元素分别表示第二层级的批量作业针对一个资源的资源消耗的预测值。
在一个实施例中,根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险,包括:
计算所述资源消耗预测向量,与预设的资源消耗参照向量之间的向量差值;
根据所述向量差值,确定系统处理第二层级的批量作业时是否存在故障风险。
在一个实施例中,在获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志之前,所述方法还包括:
获取多个时间段系统处理批量作业时的历史记录;
从所述历史记录中筛选出系统正常处理批量作业时的历史记录,作为参照记录;
根据所述参照记录,分别计算出多个资源消耗参照向量;
根据所述多个资源消耗参照向量,确定出预设的资源消耗参照向量。
在一个实施例中,在预测系统处理第二层级的批量作业时存在故障风险的情况下,所述方法还包括:
生成故障预警信息;
响应所述故障预警信息,停止当前时间段批量作业的处理;
对已处理的第一层级的批量作业进行运行健康度检测,以从所述第一层级的批量作业中确定出隐患作业;
对所述隐患作业进行修正处理。
在一个实施例中,所述第一层级的批量作业包括:临时区作业;相应的,所述第二层级的批量作业包括:汇总层作业。
本说明书还提供了一种批量作业处理的故障预测装置,包括:
第一获取模块,用于获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;其中,所述第一SQL执行计划日志至少包含有上一个时间段系统基于数据库处理批量作业时所使用的SQL语句中的多个执行算子的关联信息;
第二获取模块,用于获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;其中,所述元数据表至少包含有作业之间的依赖关系,以及处理作业所涉及的目标表之间的血缘关系;
更新模块,用于根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志;
确定模块,用于根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值;
预测模块,用于根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险。
本说明书还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现所述批量作业处理的故障预测方法的相关步骤。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实所述批量作业处理的故障预测方法的相关步骤。
本说明书提供的一种批量作业处理的故障预测方法、装置和服务器,在当前时间段基于数据库处理批量作业时,可以先获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;当处理完当前时间段的第一层级的批量作业时,可以获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;再根据上述第一层级的批量作业的作业日志,更新第一SQL执行计划日志,得到更新后的,融合了当前时间段已处理的批量作业的运行参数的第二SQL执行计划日志;再根据上述第二SQL执行计划日志、元数据表,综合利用已处理的第一层级的批量作业的运行参数,以及作业之间的依赖关系、处理作业时所涉及到的目标表之间的血缘关系,确定出当前时间段尚未处理的第二层级的批量作业的资源消耗的预测值;进而可以根据上述第二层级的批量作业的资源消耗的预测值,确定出系统在处理后续的第二层级的批量作业时是否存在故障风险。从而可以较为准确地提前预测出在对后续的批量作业进行处理时可能存在的故障风险,以及时进行预警,保护系统处理批量作业时的安全、稳定。
附图说明
为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是应用本说明书实施例提供的批量作业处理的故障预测方法的系统结构组成的一个实施例的示意图;
图2是在一个场景示例中,应用本说明书实施例提供的批量作业处理的故障预测方法的一种实施例的示意图;
图3是本说明书的一个实施例提供的批量作业处理的故障预测方法的流程示意图;
图4是在一个场景示例中,应用本说明书实施例提供的批量作业处理的故障预测方法的一种实施例的示意图;
图5是本说明书的一个实施例提供的服务器的结构组成示意图;
图6是本说明书的一个实施例提供的批量作业处理的故障预测装置的结构组成示意图;
图7是在一个场景示例中,应用本说明书实施例提供的批量作业处理的故障预测方法的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例提供一种批量作业处理的故障预测方法,所述批量作业处理的故障预测方法具体可以应用于包含有负责管理的服务器和负责作业处理的分布式集群的系统的架构中。具体可以参阅图1所示。上述分布式集群具体可以包含有多个分布式的服务器,其中,每一个服务器可以作为一个分布式的处理节点,与其他服务器一同并行处理系统接入的批量作业。上述服务器之间可以通过有线或无线的方式相连,以进行具体的数据交互。
在本实施例中,所述服务器具体可以包括一种应用于数据处理平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述服务器也可以为运行于上述电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述服务器的数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
在本实施例中,当分布式集群接入当前时间段要处理的批量作业时,可以先获取上一个时间段分布式集群处理批量作业时的SQL(Structured Query Language)执行计划日志,作为当前时间段初始的第一SQL执行计划日志。其中,上述第一SQL执行计划日志中具体可以包含上一个时间段分布式集群在处理批量作业时所使用到的多个执行算子,以及上述多个执行算子的关联信息。例如,各个执行算子在执行时的执行时间、消耗的资源、执行结果等等。
具体实施时,分布式集群可以根据预设的处理规则,结合作业之间的依赖关系以及作业所涉及的目标表之间的血缘关系,按照一定顺序逐层级地处理当前时间段的批量作业。
具体的,可以参阅图2所示。通常分布式集群可以基于数据库(例如,分布式系统的离线数据仓库),逐层级地先并行处理初始层级的批量作业(例如,临时区作业),然后再并行处理下一层级的批量作业(例如,汇总层作业),最后再并行处理最高层级的批量作业(例如,市场层作业),从而完成当前时间段批量作业的处理。
分布式集群中的某个处理节点在具体处理某一层级的批量作业中的某个具体作业时,可以通过利用相应的SQL语句,结合数据库,执行SQL语句中的一个或多个具体的执行算子(例如,GATHER算子、BROADCAST算子、HashAGGREGATE算子等),来完成具体数据处理操作,并得到相应的目标表。
具体处理批量作业时,例如,在处理临时区作业0001时,可以利用对应的SQL语句,结合数据库,通过执行相应的一个执行算子,进行以下处理操作:“Insert into prmvalues(1)”。从而可以通过插入相应的数据值,得到临时区作业0001的目标表prm。
又例如,在处理临时区作业0002时,可以利用对应的SQL语句,结合数据库,通过执行相应的多个执行算子进行以下处理操作:“Select*from prm”,“Insert into abc”。从而可以通过先从目标表prm中选出数据*,再基于该数据*进行数据插入,得到临时区作业0002的目标表abc。
需要说明的是,处理临时区作业0002,以得到该作业的目标表abc时,需要使用到临时区作业0001处理得到的目标表prm中的数据。因此,可以称上述目标表abc和目标表prm存在血缘关系。
进一步的,如果要处理临时区作业0002时,势必需要先处理完临时区作业0001得到目标表prm才可以。因此,可以称上述临时作业0001和临时作业0002存在依赖关系。具体的,可以称上述临时区作业0001为临时区作业0002的前续作业,称上述临时区作业0002为临时区作业0001的后续作业。
分布式集群按照上述方式处理完一个层级的批量作业后,可以将已处理的这一个层级的批量作业记为第一层级的批量作业。
接着,服务器可以获取上述第一层级的批量作业的作业日志。其中,上述作业日志具体可以是分布式集群在处理完一个作业时,所生成的用于描述该作业的基本信息,以及该作业的处理过程、处理结果的日志数据。每一个作业日志与一个作业对应。
服务器可以根据第一层级的批量作业的作业日志,对第一SQL执行计划日志中与上述第一层级的批量作业对应的数据信息进行修改,从而可以根据当前已处理的批量作业的数据信息,更新第一SQL执行计划日志,得到包含了当前时间段的关于已处理的批量数据的处理情况(例如,运行参数)的第二SQL执行计划日志。
进一步,服务器可以获取元数据表(也可以称为Hive元数据表)。其中,上述元数据表具体可以是一种由数据库记录的用于表述在基于数据库处理各个作业时所涉及到的数据表的相关信息,以及数据表之间的关联关系的数据。
具体的,上述元数据表可以记载有如表1所示的以下数据信息。
表1
Figure BDA0002978003640000061
Figure BDA0002978003640000071
基于上述元数据表所记载的数据信息,服务器可以分析出批量作业处理过程中不同作业之间的依赖关系,以及处理作业时所涉及到的不同目标表之间的血缘关系。
进而,服务器可以根据上述第二SQL执行计划日志、元数据表,综合利用当前时间段已处理的第一层级的批量作业的处理情况,以及作业之间的依赖关系、目标表之间的血缘关系,通过预设的算法模型,计算出当前时间段尚未处理的第二层级的批量作业(例如,临时区作业的下一个层级的汇总层作业)的资源消耗的预测值。
这样服务器可以在处理第二层级的批量作业之前,可以先根据上述计算得到的第二层级的批量作业的资源消耗的预测值,判断后续分布式集群在处理第二层级的批量作业时是否存在故障风险。
通过上述方式,如果确定后续分布式集群在处理第二层级的批量作业时存在故障风险,可以提前进行预警,并进行针对性的修正处理,以避免直接处理第二层级的批量作业时系统发生故障,影响系统整体运行的稳定和安全。
通过上述方式,如果确定后续分布式集群在处理第二层级的批量作业时不存在故障风险,可以正常开始处理第二层级的批量作业。在处理完上述第二层级的批量作业之后,可以将上述已处理的第二层级的批量作业(例如,已处理的汇总层作业)作为新的第一层级的批量作业,将未处理的下一个层级的批量作业:集市层作业作为新的第二层级的批量作业。进而可以重复上述方式,在处理集市层作业之前,预测处理集市层作业时是否会存在故障风险。
通过上述系统可以在处理某一个层级的批量作业之前,提前预测出后续处理该层级的批量作业时是否存在故障风险,进而可以及时地进行预警,并进行针对性的修正,从而可以有效地避免后续处理该层级的批量作业时出现的系统故障,保护系统运行的稳定、安全。
参阅图3所示,本说明书实施例提供了一种批量作业处理的故障预测方法。其中,该方法具体应用于服务器一侧。具体实施时,该方法可以包括以下内容。
S301:获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;其中,所述第一SQL执行计划日志至少包含有上一个时间段系统基于数据库处理批量作业时所使用的SQL语句中的多个执行算子的关联信息。
S302:获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;其中,所述元数据表至少包含有作业之间的依赖关系,以及处理作业所涉及的目标表之间的血缘关系;
S303:根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志;
S304:根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值;
S305:根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险。
通过上述实施例,可以较为准确地提前预测出在后续处理第二层级的批量作业时可能存在的故障风险,并及时进行预警,从而可以有效地保护系统处理批量作业时的安全、稳定。
在一些实施例中,上述系统具体可以是基于分布式集群的数据处理系统。通常上述系统可以每间隔一个时间段(例如,一天等),按照相对固定的处理规则,基于数据库,通过并行处理的方式逐层级地处理该时间段内的批量作业。
系统在具体处理某个作业时,可以利用相关的SQL语句,通过结合数据库,执行该SQL语句中的一个或多个执行算子,进行具体的操作处理,得到相应的目标表。
在一些实施例中,可以将当前时间段未处理且即将处理的一个层级的批量作业记为未处理的第二层级的批量作业。相应的,将当前时间段第二层级之前的已处理的一个层级的批量作业记为已处理的第一层级的批量作业。
在一些实施例中,在系统具体处理第二层级的批量作业之前,服务器可以先获取上一个时间段系统处理批量作业时的SQL执行计划日志,以及当前时间段已处理的第一层级的批量作业的作业日志;进而可以根据上述数据,综合利用当前时间段已处理的第一层级的批量作业的处理情况,结合作业之间的依赖关系,以及作业所涉及的目标表之间的血缘关系,预测出后续处理第二层级的批量作业的资源消耗的预测值。
在一些实施例中,上述第一SQL执行计划日志至少包含有上一个时间段系统基于数据库处理批量作业时所使用的SQL语句中的多个执行算子的关联信息。通过获取并解析上述第一SQL执行计划日志,可以确定出系统在处理批量作业时所使用到的执行算子,进而后续可以基于执行算子,预测第二层级的批量作业的资源消耗的预测值。其中,上述执行算子具体可以理解为利用SQL语句进行具体数据处理操作时的最小执行单元。
在一些实施例中,上述多个执行算子具体可以包括:GATHER算子、BROADCAST算子、HashAGGREGATE算子等。上述多个执行算子具体可以通过解析并根据上述第一SQL执行计划日志确定得到。
其中,上述GATHER算子具体可以用于将数据从子节点汇聚到主节点;上述BROADCAST算子具体可以用于将当前子节点的数据复制到其他所有子节点;上述HashAGGREGATE算子具体用于使用Hash进行聚集去重。
当然,需要说明的是,上述所列举的执行算子只是一种示意性说明。具体实施时,根据具体情况和处理需求,还可以包含有其他类型的执行算子。对此,本说明书不作限定。
通过上述实施例,可以有效地利用SQL执行计划日志,确定出系统处理批量作业时所使用到的多个执行算子,以及执行算子的关联信息,以便后续可以基于执行算子,较为精准地来确定出第二层级的批量作业的资源消耗的预测值。
在一些实施例中,系统每处理完一个作业时,可以生成与该作业对应的作业日志。相应的,服务器可以通过与系统交互,获取当前时间段已处理的第一层级的批量作业的作业日志。
此外,系统每处理一个作业时,还会涉及到数据库的操作处理。而数据库本身会记录下包含有处理各个作业时所涉及到的数据表,以及各个数据表之间的关联关系等信息的元数据表。相应的,服务器可以通过与数据库交互,获取上述元数据表。其中,上述元数据表中至少包含有作业之间的依赖关系,以及处理作业所涉及的目标表之间的血缘关系。
在一些实施例中,上述根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志,具体实施时,可以包括以下内容:根据第一层级的批量作业的作业日志,修改所述第一SQL执行计划日志中与所述第一层级的批量作业对应的数据信息。从而可以通过更新所述第一SQL执行计划日志,得到相应的第二SQL执行计划日志。
通过上述实施例,服务器可以有效地利用已处理的第一层级的批量作业的作业日志对上一个时间段的第一SQL执行计划日志进行更新,得到包含有当前时间段的第一层级的批量作业的处理情况(包括系统处理第一层级的批量作业时的运行参数)、与当前时间段更加匹配的第二SQL执行计划日志。这样后续可以利用上述第二SQL执行计划日志更加精准地预测出第二层级的批量作业的资源消耗的预测值。
在一些实施例中,上述根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值,具体实施时,可以包括以下内容:采集系统当前的运行参数;根据所述第二SQL执行计划日志、所述元数据表,以及系统当前的运行参数,通过进行多元线性回归计算,确定出参与处理第二层级的批量作业的多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值;根据所述多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值,确定出第二层级的批量作业的资源消耗的预测值。
通过上述实施例,可以基于第二SQL执行计划日志、元数据表,综合利用已处理的第一层级的批量作业处理时的运行参数、作业之间的依赖关系,以及作业所涉及的目标表之间的血缘关系,较为精准地预测出第二层级的批量作业的资源消耗的预测值。
在一些实施例中,上述运行参数具体可以包括系统多个资源中的各个资源的使用参数。具体实施时,可以在预先在系统中布设好用于监测、采集系统的运行参数的监测模块。进而具体实施时,可以通过上述监测模块实时采集系统的运行参数。
在一些实施例中,上述多个资源具体可以包括:IO资源、CPU资源、磁盘资源、内存资源等等。当然,上述所列举的多个资源只是一种示意性说明。具体实施时,针对更加复杂的系统,以及精度更高的要求,上述多个资源还可以包括其他类型的资源。例如,线程资源、RAM资源等等。对此,本说明书不作限定。
通过上述实施例,可以从多个不同类型资源的维度,较为精细地表征出第二层级的批量作业的资源消耗的预测值。
在一些实施例中,具体实施时,针对各个执行算子,可以分别通过进行多次的多元线性回归的迭代计算,以收敛得到各个执行算子针对多个资源中的各个资源的资源消耗的预测值。
具体的,以计算某个执行算子针对多个资源中的某一个资源的资源消耗的预测值为例,可以先按照以下算式构建基于多元线性回归的计算模型:
hθ(x)=θTX=θ0x01x12x2+…θnxn
其中,θ012…θn分别表示待确定的结果参数分量。x0,x1,x2…xn分别表示需要输入模型的计算参数,具体的,上述x0,x1,x2...xn可以包括:基于元数据表所获取与该执行算子相关的数据参数、与该执行算子相关的运行参数,以及该执行算子在执行具体的处理操作时的复杂度参数等。
接着,可以按照以下算式构建相应的损失函数:
Figure BDA0002978003640000111
其中,J表示损失函数值。
进而,可以根据上述基于多元线性回归的计算模型、损失函数,采用梯度下降的方式(例如,
Figure BDA0002978003640000112
通过多次迭代计算,直到结果参数分量的数值收敛,得到最终的结果参数分量:θ012...θn
再将上述最终的结果参数分量回代到计算模型中,得到针对该执行算子的该资源的资源消耗的预测值,记为:hθ(x)。
按照上述方式,可以分别计算得到各个执行算子针对各个资源的资源消耗的预测值。例如,对于HashAggregate算子,可以计算出该执行算子针对IO资源的资源消耗的预测值为hH1(x),针对CPU资源的资源消耗的预测值为hH2(x),针对磁盘资源的资源消耗的预测值为hH3(x),针对内存资源的资源消耗的预测值为hH4(x)。
类似的,对于REDISTTBUTE算子,可以计算出该执行算子针对IO资源的资源消耗的预测值为hR1(x),针对CPU资源的资源消耗的预测值为hR2(x),针对磁盘资源的资源消耗的预测值为hR3(x),针对内存资源的资源消耗的预测值为hR4(x)。
以此类推,可以分别计算得到关于处理第二层级批量作业时的各个执行算子针对各个资源的资源消耗的预测值。
在一些实施例中,上述根据所述多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值,确定出第二层级的批量作业的资源消耗的预测值,具体实施时,可以包括:根据所述多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值,分别计算出第二层级的批量作业分别针对各个资源的资源消耗的预测值;根据所述第二层级的批量作业分别针对各个资源的资源消耗的预测值,构建对应的资源消耗预测向量,作为所述第二层级的批量作业的资源消耗的预测值;其中,所述资源消耗预测向量包括多个数据元素,且所述数据元素分别表示第二层级的批量作业针对一个资源的资源消耗的预测值。
通过上述实施例,可以分别计算出系统处理第二层级的批量作业时的各个资源的资源消耗的预测值,进而可以根据上述多个资源的资源消耗的预测值构建对应的资源消耗预测向量,并利用该向量来精细、全面地表征出第二层级的批量作业的资源消耗的预测值。
在本实施例中,具体实施时,可以以资源作为基准,将处理第二层级的批量作业时所涉及到的多个执行算子针对同一个资源的资源消耗的预测值进行累加,以得到第二层级的批量作业针对该资源的资源消耗的预测值。
具体的,例如,以计算第二层级的批量作业针对IO资源的资源消耗的预测值为例,可以按照以下算式,将不同执行算子针对IO资源的资源消耗的预测值进行累加,得到对应的第二层级的批量作业针对IO资源的资源消耗的预测值:h1(x)=hR1(x)+hH1(x)+...。
按照类似的方式,可以计算得到第二层级的批量作业分别针对CPU资源、磁盘资源、内存资源的资源消耗的预测值为:h2(x)、h3(x)、h4(x)。
进一步,可以将上述第二层级的批量作业分别针对各个资源的资源下号的预测值进行组合,以构建得到对应的资源消耗预测向量,表示为:[h1(x),h2(x),h3(x),h4(x)],从而可以得到效果较好的、较为精细的第二层级的批量作业的资源消耗的预测值。
在一些实施例中,上述根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险,具体实施时,可以包括以下内容:计算所述资源消耗预测向量,与预设的资源消耗参照向量之间的向量差值;根据所述向量差值,确定系统处理第二层级的批量作业时是否存在故障风险。
通过上述实施例,可以计算并利用资源消耗预测向量与预设的资源消耗参照向量之间的向量差值,来较为准确地判断出系统后续处理第二层级的批量作业时是否存在故障风险。
具体实施时,可以将上述向量差值与预设的差值阈值进行比较。如果向量差值的绝对值大于预设的差值阈值,则确定存在故障风险。相反,如果向量差值的绝对值小于或等于预设的差值阈值,则确定不存在故障风险。
在一些实施例中,上述预设的资源消耗参照向量具体可以是预先根据历史记录中的系统正常处理批量作业时的资源消耗数据确定的。其中,上述预设的资源消耗参照向量具体可以表示为以下形式:[h01(x),h02(x),h03(x),h04(x)]。
在一些实施例中,在获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志之前,所述方法具体实施时,还可以包括以下内容:获取多个时间段系统处理批量作业时的历史记录;从所述历史记录中筛选出系统正常处理批量作业时的历史记录,作为参照记录;根据所述参照记录,分别计算出多个资源消耗参照向量;根据所述多个资源消耗参照向量,确定出预设的资源消耗参照向量。
通过上述实施例,可以利用历史记录,较为准确地计算得到参考价值较高、应用效果较好的预设的资源消耗参照向量。
在一些实施例中,在预测系统处理第二层级的批量作业时存在故障风险的情况下,所述方法具体实施时,还可以包括以下内容:生成故障预警信息;响应所述故障预警信息,停止当前时间段批量作业的处理;对已处理的第一层级的批量作业进行运行健康度检测,以从所述第一层级的批量作业中确定出隐患作业;对所述隐患作业进行修正处理。
通过上述实施例,可以在提前预测出后续处理第二层级的批量作业时存在故障风险的同时,进一步确定出第一层级的批量作业中造成上述故障风险的隐患作业(例如,混入脏数据的临时区作业0003),进而可以及时地通过对上述隐患作业进行针对性的修正处理,以消除故障风险,以便后续可以正常地处理第二层级的批量作业,避免出现系统故障。
在一些实施例中,所述第一层级的批量作业可以包括:临时区作业;相应的,所述第二层级的批量作业可以包括:汇总层作业。进而可以在处理汇总层作业之前,应用本说明书提供的方法提前预测出后续处理汇总层作业时是否存在故障风险,降低后续处理汇总层的批量作业时出现系统故障的概率,保护系统运行的安全、稳定。
类似的,所述第一层级的批量作业可以包括:汇总层作业的情况下;相应的,所述第二层级的批量作业可以包括:市场层作业。进而可以在处理市场层作业之前,应用本说明书提供的方法提前预测出后续处理市场层作业时是否存在故障风险。
此外,针对一些系统稳定性要求更高的数据处理场景,在所述第一层级的批量作业包括:临时区作业的情况下,所述第二层级的批量作业还可以同时包括:汇总层作业和市场层作业。进而,可以在处理完临时区作业之后,预测后续同时处理汇总层作业和市场层作业时是否存在故障风险,从而可以进一步降低后续处理批量作业时出现故障的概率。
在一些实施例中,具体的,可以参阅图2、图4所示的内容。例如,在t1时刻,处理临时区作业时,临时区作业0003实际上已经混入了脏数据,但此时尚未引起系统故障。基于现有方法在处理完临时区作业时,也无法提前预测出故障风险。系统会继续处理后续层级的批量作业。直到在t2时刻,处理集市层作业时,之前临时区作业0003中的脏数据由于逐层级的处理和传递逐渐累积越来越严重的处理负荷。当系统处理到市场层作业0001时,上述处理负荷累积到一个较大值点,进而导致系统中单点负荷过高,引起集群宕机,使系统发生了故障。
而基于本说明书提供的批量作业处理的故障预测方法,在t1时刻,服务器处理完临时区作业(可以作为第一层级的批量作业)后,就可以提前预测出后续处理第二层级的批量作业(包括:汇总层作业和集市层作业)时会存在故障风险。进而可以在t1时刻及时地进行预警,并针对隐患作业临时区作业0003进行针对性的修正处理,以消除故障隐患;再控制系统逐层级地处理批量作业。这样当系统处理到集市层作业时,就不会再出现上述系统故障。从而可以避免系统处理批量作业时可能出现的故障,保护系统运行的安全、稳定。
由上可见,本说明书实施例提供的批量作业处理的故障预测方法,在当前时间段基于数据库处理批量作业时,可以先获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;当处理完当前时间段的第一层级的批量作业时,可以获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;再根据上述第一层级的批量作业的作业日志,更新第一SQL执行计划日志,得到更新后的第二SQL执行计划日志;根据第二SQL执行计划日志、元数据表,综合利用已处理的第一层级的批量作业的运行参数,以及作业之间的依赖关系、处理作业时所涉及到的目标表之间的血缘关系,确定出当前时间段尚未处理的第二层级的批量作业的资源消耗的预测值;再根据上述第二层级的批量作业的资源消耗的预测值,确定出系统在处理后续的第二层级的批量作业时是否会出现故障风险。从而可以较为准确地提前预测出在对后续的批量作业处理时可能会出现的故障风险,保护系统处理批量作业时的安全、稳定。
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;其中,所述第一SQL执行计划日志至少包含有上一个时间段系统基于数据库处理批量作业时所使用的SQL语句中的多个执行算子的关联信息;获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;其中,所述元数据表至少包含有作业之间的依赖关系,以及处理作业所涉及的目标表之间的血缘关系;根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志;根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值;根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险。
为了能够更加准确地完成上述指令,参阅图5所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口501、处理器502以及存储器503,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口501,具体可以用于获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;其中,所述第一SQL执行计划日志至少包含有上一个时间段系统基于数据库处理批量作业时所使用的SQL语句中的多个执行算子的关联信息;获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;其中,所述元数据表至少包含有作业之间的依赖关系,以及处理作业所涉及的目标表之间的血缘关系。
所述处理器502,具体可以用于根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志;根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值;根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险。
所述存储器503,具体可以用于存储相应的指令程序。
在本实施例中,所述网络通信端口501可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器502可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器503可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种基于上述批量作业处理的故障预测方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;其中,所述第一SQL执行计划日志至少包含有上一个时间段系统基于数据库处理批量作业时所使用的SQL语句中的多个执行算子的关联信息;获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;其中,所述元数据表至少包含有作业之间的依赖关系,以及处理作业所涉及的目标表之间的血缘关系;根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志;根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值;根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
参阅图6所示,在软件层面上,本说明书实施例还提供了一种批量作业处理的故障预测装置,该装置具体可以包括以下的结构模块:
第一获取模块601,具体可以用于获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;其中,所述第一SQL执行计划日志至少包含有上一个时间段系统基于数据库处理批量作业时所使用的SQL语句中的多个执行算子的关联信息;
第二获取模块602,具体可以用于获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;其中,所述元数据表至少包含有作业之间的依赖关系,以及处理作业所涉及的目标表之间的血缘关系;
更新模块603,具体可以用于根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志;
确定模块604,具体可以用于根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值;
预测模块605,具体可以用于根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,通过本说明书实施例提供的批量作业处理的故障预测装置,可以较为准确地提前预测出系统在处理后续的第二层级的批量作业时是否会出现故障风险。
在一个具体的场景示例中,可以应用本说明书提供的批量作业处理的故障预测方法进行预警。具体实施过程,可以参阅以下内容。
考虑到现有的离线数据仓库(例如,数据库)通常采用批量作业加工的方式进行操作处理,在数据加工链路上会存在着作业间的依赖关系以及数据库表间的血缘关系。可以参阅图2所示,每一个作业都有一张目标表作为数据加工的落地结果。在某个时间段,数据仓库临时区作业0003中混入了脏数据(影响了数据质量),该部分含有脏数据的数据会由图2所示的血缘关系逐层级地处理并传递至集市层作业0001,此时由于脏数据会造成数据加工过程中产生笛卡尔积或者数据倾斜,因此在处理集市作业0001时会引起单点负荷过高引起集群宕机,造成系统故障。
参阅图4可知,在t1时刻实际上就已经混入了脏数据,但是直到批量作业运行到t2时刻才真正引发集群的宕机。
而基于现有的作业监控机制往往无法预测上述由于数据质量引起的批量集群宕机的问题。针对上述问题,在本场景示例中,结合说明书提供的批量作业处理的故障预测方法,提出一种基于批量作业的血缘关系的在线故障预警系统,能够实时的检测大数据分布式集群的运行状态,提前发现故障隐患,并进行预警。
具体的,可以参阅图7所示,该在线故障预警系统可以包括以下多个结构模块:
批量作业日志获取模块,该模块能够获取作业的SQL执行计划日志和作业日志,并且每当作业完成还可以获取该作业最新的作业日志,提供给系统。
执行计划解析模块,能够根据运行完成的作业日志,以及解析(元数据表)得到中间过程的元数据信息,计算出资源耗费信息,将这些经过ETL流程信息提取出来。
图计算模块,能够根据血缘关系,利用前续作业(已处理的作业)的资源耗费信息计算得到后续作业的资源耗费信息(例如,资源消耗的预测值),具体可以包含IO资源,CPU资源,以及磁盘资源等多种资源耗费信息。进而可以通过前续作业的资源耗费信息计算出后续作业的资源耗费信息,并将这些参数传递至后续作业,可以将所有后续作业的资源耗费信息确定并保存下来。
作业调度信息模块,能够实时将所采集到的作业运行信息(例如,运行参数)记录下来。
大数据批量集群运行信息获取模块,该模块负责实时采集大数据批量集群的实时运行参数,包含IO资源、CPU资源,以及磁盘资源等运行参数。
故障预警机处理模块,该模块可以使用流数据处理引擎,根据所接收到的数据,通过多元线性回归算法计算出后续作业的资源耗费信息,并判断是否需要预警。
具体实施时,上述故障预警机处理模块可以先采用多元线性回归算法构造以下所示呃函数:hθ(x)=θTX=θ0x01x12x2+...θnxn,对后续作业的资源消耗进行建模,计算出每种算子的资源h(xi)与参数xi之间的函数关系。其中,上述xi包括从元数据表里获得的源表参数信息,以及算子的执行步骤的复杂度等信息,上述θ012...θn为参数。
再通过构建损失函数
Figure BDA0002978003640000181
来计算各个参数。具体可以通过梯度下降的迭代运算让参数的计算结果收敛,从而得到最终参数θ01,…θn的计算结果。
重复上述建模步骤得到每种算子与资源函数公式(例如,各个执行算子针对多个资源的资源消耗的预测值)。
具体的,例如可以计算出HashAggregate算子的IO资源消耗信息为:h1(xi),CPU资源消耗信息为:h2(xi),磁盘资源消耗信息为:h3(xi),内存资源消耗信息为:h4(xi);
计算出REDISTTBUTE算子的IO资源消耗信息为:R1(xi),CPU资源消耗信息为:R2(xi),磁盘资源消耗信息为:R3(xi),内存资源消耗信息为:R4(xi)。
若后续作业运行时,可以得到如下所示的关于资源耗费信息的实时参数值(例如,第二层级的批量作业的资源消耗的预测值):总的IO资源消耗信息为ax=h1(xi)+R1(xi).....Z1(xi),总的CPU资源消耗信息为bx=h2(xi)+R2(xi).....Z2(xi),总的磁盘资源消耗信息为cx=h3(xi)+R3(xi).....Z3(xi),总的内存资源dx=h4(xi)+R4(xi).....Z4(xi)。
在线故障预警系统可以通过上述结构模块,在批量作业的运行过程当中,使用多元线性回归算法预测出后续作业的批量集群的运行参数包括IO资源,CPU资源,以及磁盘资源消耗信息等,得到资源参数值[ax,bx,cx,dx,ex](例如,资源消耗预测向量)。其中,每一个元素分别代表IO资源、CPU资源、磁盘资源、内存资源、线程资源的总资源消耗信息。
再将上述资源参数值[ax,bx,cx,dx,ex]与分布式集群正常处理批量作业时的资源标准参数值[a0,b0,c0,d0,e0](例如,预设的资源消耗参照向量)进行作差,得到以下所示的差值Δ(例如向量差值):Δ=[ax,bx,cx,dx,ex]-[a0,b0,c0,d0,e0]。基于该差值,若该差值小于等于分布式集群的正常时的参数上限,则预警机不报警;若该差值大于参数上限,则进行报警。
从而,可以通过上述基于本说明所提供的方法构建的在线故障预警系统根据批量集群作业的作业日志,以及集群运行的实时参数进行在线预警,在大数据集群发生宕机故障之前,提前发现集群批量的异常状况,并及时进行相应的预警报送,将批量集群故障强在的隐患消除,保护集群运行的稳定和安全。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

Claims (13)

1.一种批量作业处理的故障预测方法,其特征在于,包括:
获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;其中,所述第一SQL执行计划日志至少包含有上一个时间段系统基于数据库处理批量作业时所使用的SQL语句中的多个执行算子的关联信息;
获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;其中,所述元数据表至少包含有作业之间的依赖关系,以及处理作业所涉及的目标表之间的血缘关系;
根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志;
根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值;
根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险。
2.根据权利要求1所述的方法,其特征在于,所述多个执行算子包括:GATHER算子、BROADCAST算子、HashAGGREGATE算子。
3.根据权利要求2所述的方法,其特征在于,根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志,包括:
根据第一层级的批量作业的作业日志,修改所述第一SQL执行计划日志中与所述第一层级的批量作业对应的数据信息。
4.根据权利要求3所述的方法,其特征在于,根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值,包括:
采集系统当前的运行参数;
根据所述第二SQL执行计划日志、所述元数据表,以及系统当前的运行参数,通过进行多元线性回归计算,确定出参与处理第二层级的批量作业的多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值;
根据所述多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值,确定出第二层级的批量作业的资源消耗的预测值。
5.根据权利要求4所述的方法,其特征在于,所述多个资源包括:IO资源、CPU资源、磁盘资源、内存资源。
6.根据权利要求4所述的方法,其特征在于,根据所述多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值,确定出第二层级的批量作业的资源消耗的预测值,包括:
根据所述多个执行算子中的各个执行算子针对多个资源的资源消耗的预测值,分别计算出第二层级的批量作业分别针对各个资源的资源消耗的预测值;
根据所述第二层级的批量作业分别针对各个资源的资源消耗的预测值,构建对应的资源消耗预测向量,作为所述第二层级的批量作业的资源消耗的预测值;其中,所述资源消耗预测向量包括多个数据元素,且所述数据元素分别表示第二层级的批量作业针对一个资源的资源消耗的预测值。
7.根据权利要求6所述的方法,其特征在于,根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险,包括:
计算所述资源消耗预测向量,与预设的资源消耗参照向量之间的向量差值;
根据所述向量差值,确定系统处理第二层级的批量作业时是否存在故障风险。
8.根据权利要求7所述的方法,其特征在于,在获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志之前,所述方法还包括:
获取多个时间段系统处理批量作业时的历史记录;
从所述历史记录中筛选出系统正常处理批量作业时的历史记录,作为参照记录;
根据所述参照记录,分别计算出多个资源消耗参照向量;
根据所述多个资源消耗参照向量,确定出预设的资源消耗参照向量。
9.根据权利要求1所述的方法,其特征在于,在预测系统处理第二层级的批量作业时存在故障风险的情况下,所述方法还包括:
生成故障预警信息;
响应所述故障预警信息,停止当前时间段批量作业的处理;
对已处理的第一层级的批量作业进行运行健康度检测,以从所述第一层级的批量作业中确定出隐患作业;
对所述隐患作业进行修正处理。
10.根据权利要求1所述的方法,其特征在于,所述第一层级的批量作业包括:临时区作业;相应的,所述第二层级的批量作业包括:汇总层作业。
11.一种批量作业处理的故障预测装置,其特征在于,包括:
第一获取模块,用于获取上一个时间段系统处理批量作业时的SQL执行计划日志,作为第一SQL执行计划日志;其中,所述第一SQL执行计划日志至少包含有上一个时间段系统基于数据库处理批量作业时所使用的SQL语句中的多个执行算子的关联信息;
第二获取模块,用于获取当前时间段已处理的第一层级的批量作业的作业日志,以及数据库记录的元数据表;其中,所述元数据表至少包含有作业之间的依赖关系,以及处理作业所涉及的目标表之间的血缘关系;
更新模块,用于根据所述第一层级的批量作业的作业日志,更新所述第一SQL执行计划日志,得到第二SQL执行计划日志;
确定模块,用于根据所述第二SQL执行计划日志、所述元数据表,确定出当前时间段未处理的第二层级的批量作业的资源消耗的预测值;
预测模块,用于根据所述第二层级的批量作业的资源消耗的预测值,预测系统处理第二层级的批量作业时是否存在故障风险。
12.一种服务器,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至10中任一项所述方法的步骤。
13.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1至10中任一项所述方法的步骤。
CN202110279323.9A 2021-03-16 2021-03-16 批量作业处理的故障预测方法、装置和服务器 Pending CN112860523A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110279323.9A CN112860523A (zh) 2021-03-16 2021-03-16 批量作业处理的故障预测方法、装置和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110279323.9A CN112860523A (zh) 2021-03-16 2021-03-16 批量作业处理的故障预测方法、装置和服务器

Publications (1)

Publication Number Publication Date
CN112860523A true CN112860523A (zh) 2021-05-28

Family

ID=75994644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110279323.9A Pending CN112860523A (zh) 2021-03-16 2021-03-16 批量作业处理的故障预测方法、装置和服务器

Country Status (1)

Country Link
CN (1) CN112860523A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114238035A (zh) * 2022-02-23 2022-03-25 南京芯驰半导体科技有限公司 一种通过运行状态指纹进行错误检测方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114238035A (zh) * 2022-02-23 2022-03-25 南京芯驰半导体科技有限公司 一种通过运行状态指纹进行错误检测方法及系统
CN114238035B (zh) * 2022-02-23 2022-06-21 南京芯驰半导体科技有限公司 一种通过运行状态指纹进行错误检测方法及系统

Similar Documents

Publication Publication Date Title
US10360387B2 (en) Method and system for aggregating and ranking of security event-based data
US10055275B2 (en) Apparatus and method of leveraging semi-supervised machine learning principals to perform root cause analysis and derivation for remediation of issues in a computer environment
US10558545B2 (en) Multiple modeling paradigm for predictive analytics
US20210366268A1 (en) Automatic tuning of incident noise
US11847130B2 (en) Extract, transform, load monitoring platform
US9692654B2 (en) Systems and methods for correlating derived metrics for system activity
US20210097431A1 (en) Debugging and profiling of machine learning model training
US20130254524A1 (en) Automated configuration change authorization
US10225155B2 (en) Network anomaly detection
EP3552107B1 (en) Device driver telemetry
JP6457777B2 (ja) ルールの自動化された生成および動的な更新
US20150112917A1 (en) Case-based reasoning
CN107423205A (zh) 一种用于数据防泄漏系统的系统故障预警方法及系统
US11468365B2 (en) GPU code injection to summarize machine learning training data
CN112860523A (zh) 批量作业处理的故障预测方法、装置和服务器
US20200213203A1 (en) Dynamic network health monitoring using predictive functions
US20230237366A1 (en) Scalable and adaptive self-healing based architecture for automated observability of machine learning models
US10735246B2 (en) Monitoring an object to prevent an occurrence of an issue
US9619765B2 (en) Monitoring a situation by generating an overall similarity score
US20150112914A1 (en) Case-based reasoning
Yim Evaluation metrics of service-level reliability monitoring rules of a big data service
US10467082B2 (en) Device driver verification
JP2018190205A (ja) 事業者間一括サービス管理装置および事業者間一括サービス管理方法
Alkasem et al. CloudPT: Performance Testing for Identifying and Detecting Bottlenecks in IaaS
Chang Integrating action-based defect prediction to provide recommendations for defect action correction

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