CN113778727A - 数据处理方法及装置、电子设备和计算机可读存储介质 - Google Patents

数据处理方法及装置、电子设备和计算机可读存储介质 Download PDF

Info

Publication number
CN113778727A
CN113778727A CN202010568444.0A CN202010568444A CN113778727A CN 113778727 A CN113778727 A CN 113778727A CN 202010568444 A CN202010568444 A CN 202010568444A CN 113778727 A CN113778727 A CN 113778727A
Authority
CN
China
Prior art keywords
time
data
data volume
task
determining
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
CN202010568444.0A
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202010568444.0A priority Critical patent/CN113778727A/zh
Publication of CN113778727A publication Critical patent/CN113778727A/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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • 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/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开是关于一种数据处理方法及装置、电子设备以及存储介质,涉及大数据技术领域,可以应用于实时判断大数据平台中的计算任务是否存在数据倾斜的场景。该数据处理方法包括:获取计算任务的实时数据;实时数据包括多个子任务的任务数量、各子任务的执行时间和数据量;根据各执行时间生成任务时间序列,并根据任务时间序列和任务数量确定时间倾斜度;根据各数据量生成数据量序列,并根据数据量序列和任务数量确定数据量倾斜度;根据时间倾斜度和数据量倾斜度确定计算任务的数据倾斜等级,以根据数据倾斜等级对计算任务进行处理。本公开可以实时判断大数据平台中的计算任务是否存在数据倾斜,以根据判断结果对相关计算任务进行报警和干预。

Description

数据处理方法及装置、电子设备和计算机可读存储介质
技术领域
本公开涉及大数据技术领域,具体而言,涉及一种数据处理方法、数据处理装置、电子设备以及计算机可读存储介质。
背景技术
随着大数据时代的到来,大多数业务场景每天都伴随着海量的数据计算,每天数据分布也随之改变,数据的分散度不够,导致大量的数据集中到了一台或者几台机器上计算,这些数据的计算速度远远低于平均计算速度,导致整个计算过程过慢。这种方式对任务运行稳定性造成严重影响,无法保障数据按时稳定输出。
目前,现有的大数据平台诊断方法,可以对任务运行结束时间进行超时诊断处理,并在任务结束时对任务进行离线分析处理。当任务运行时间超出设定阈值时进行预警提示,在任务结束时通过离线分析得出倾斜结果。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种数据处理方法、数据处理装置、电子设备以及计算机可读存储介质,进而至少在一定程度上克服现有的离线数据倾斜判断方法存在滞后性且无法保证任务时效性的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本公开的第一方面,提供一种数据处理方法,包括:获取计算任务的实时数据;其中,计算任务包括多个子任务,实时数据包括多个子任务的任务数量、各子任务的执行时间和各子任务的数据量;根据各执行时间生成任务时间序列,并根据任务时间序列和任务数量确定时间倾斜度;根据各数据量生成数据量序列,并根据数据量序列和任务数量确定数据量倾斜度;根据时间倾斜度和数据量倾斜度确定计算任务的数据倾斜等级,以根据数据倾斜等级对计算任务进行处理。
可选的,获取计算任务的实时数据,包括:获取计算任务的实时运行数据以及计算任务的历史日志文件;根据实时运行数据与历史日志文件生成实时数据。
可选的,根据任务时间序列和任务数量确定时间倾斜度,包括:根据任务时间序列确定多个子任务的任务总时间,并根据任务总时间和任务数量确定多个子任务的时间均值;根据时间均值对任务时间序列进行分组处理,以得到初始时间分组;其中,初始时间分组包括第一初始时间分组和第二初始时间分组;根据第一初始时间分组和第二初始时间分组确定时间倾斜度。
可选的,根据第一初始时间分组和第二初始时间分组确定时间倾斜度,包括:将第一初始时间分组的时间均值确定为第一时间均值,并将第二初始时间分组的时间均值确定为第二时间均值;根据第一时间均值和第二时间均值确定迭代时间均值,并根据迭代时间均值对任务时间序列进行迭代划分,得到迭代时间分组;其中,迭代时间分组包括第一迭代时间分组和第二迭代时间分组;将第一迭代时间分组的时间均值确定为第三时间均值,并将第二迭代时间分组的时间均值确定为第四时间均值;根据第三时间均值和第四时间均值确定时间倾斜度。
可选的,根据第三时间均值和第四时间均值确定时间倾斜度,包括:将第三时间均值和第四时间均值中的较小值作为较小时间均值;将第三时间均值和第四时间均值之间差值的绝对值作为时间差值绝对值;根据较小时间均值和时间差值绝对值确定所述时间倾斜度。
可选的,根据数据量序列和任务数量确定数据量倾斜度,包括:根据数据量序列确定多个子任务的总数据量,并根据总数据量和任务数量确定多个子任务的数据量均值;根据数据量均值对数据量序列进行分组处理,以得到初始数据量分组;其中,初始数据量分组包括第一初始数据量分组和第二初始数据量分组;根据第一初始数据量分组和第二初始数据量分组确定数据量倾斜度。
可选的,根据第一初始数据量分组和第二初始数据量分组确定数据量倾斜度,包括:将第一初始数据量分组的数据量均值确定为第一数据量均值,并将第二初始数据量分组的数据量均值确定为第二数据量均值;根据第一数据量均值和第二数据量均值确定迭代数据量均值,并根据迭代数据量均值对数据量序列进行迭代划分,得到迭代数据量分组;其中,迭代数据量分组包括第一迭代数据量分组和第二迭代数据量分组;将第一迭代数据量分组的数据量均值确定为第三数据量均值,并将第二迭代数据量分组的数据量均值确定为第四数据量均值;根据第三数据量均值和第四数据量均值确定数据量倾斜度。
可选的,根据第三数据量均值和第四数据量均值确定数据量倾斜度,包括:将第三数据量均值和第四数据量均值中的较小值作为较小数据量均值;将第三数据量均值和第四数据量均值之间差值的绝对值作为数据量差值绝对值;根据较小数据量均值和数据量差值绝对值确定数据量倾斜度。
可选的,根据数据倾斜等级对计算任务进行处理,包括:获取预先配置的业务处理条件,根据业务处理条件生成查询语句;根据查询语句判断计算任务是否为目标计算任务;如果计算任务是目标计算任务,则存储计算任务对应的任务数据和/或针对计算任务进行预警操作。
根据本公开的第二方面,提供一种数据处理装置,包括:实时数据获取模块,用于获取计算任务的实时数据;其中,计算任务包括多个子任务,实时数据包括多个子任务的任务数量、各子任务的执行时间和各子任务的数据量;时间倾斜度确定模块,用于根据各执行时间生成任务时间序列,并根据任务时间序列和任务数量确定时间倾斜度;数据量倾斜度确定模块,用于根据各数据量生成数据量序列,并根据数据量序列和任务数量确定数据量倾斜度;处理模块,用于根据时间倾斜度和数据量倾斜度确定计算任务的数据倾斜等级,以根据数据倾斜等级对计算任务进行处理。
可选的,实时数据获取模块还包括实时数据获取单元,用于获取计算任务的实时运行数据以及计算任务的历史日志文件;根据实时运行数据与历史日志文件生成实时数据。
可选的,时间倾斜度确定模块包括时间倾斜度确定单元,用于根据任务时间序列确定多个子任务的任务总时间,并根据任务总时间和任务数量确定多个子任务的时间均值;根据时间均值对任务时间序列进行分组处理,以得到初始时间分组;其中,初始时间分组包括第一初始时间分组和第二初始时间分组;根据第一初始时间分组和第二初始时间分组确定时间倾斜度。
可选的,时间倾斜度确定单元包括时间倾斜度确定子单元,用于将第一初始时间分组的时间均值确定为第一时间均值,并将第二初始时间分组的时间均值确定为第二时间均值;根据第一时间均值和第二时间均值确定迭代时间均值,并根据迭代时间均值对任务时间序列进行迭代划分,得到迭代时间分组;其中,迭代时间分组包括第一迭代时间分组和第二迭代时间分组;将第一迭代时间分组的时间均值确定为第三时间均值,并将第二迭代时间分组的时间均值确定为第四时间均值;根据第三时间均值和第四时间均值确定时间倾斜度。
可选的,时间倾斜度确定子单元包括时间倾斜度计算子单元,用于将第三时间均值和第四时间均值中的较小值作为较小时间均值;将第三时间均值和第四时间均值之间差值的绝对值作为时间差值绝对值;根据较小时间均值和时间差值绝对值确定所述时间倾斜度。
可选的,数据量倾斜度确定模块包括数据量倾斜度确定单元,用于根据数据量序列确定多个子任务的总数据量,并根据总数据量和任务数量确定多个子任务的数据量均值;根据数据量均值对数据量序列进行分组处理,以得到初始数据量分组;其中,初始数据量分组包括第一初始数据量分组和第二初始数据量分组;根据第一初始数据量分组和第二初始数据量分组确定数据量倾斜度。
可选的,数据量倾斜度确定单元包括数据量倾斜度确定子单元,用于将第一初始数据量分组的数据量均值确定为第一数据量均值,并将第二初始数据量分组的数据量均值确定为第二数据量均值;根据第一数据量均值和第二数据量均值确定迭代数据量均值,并根据迭代数据量均值对数据量序列进行迭代划分,得到迭代数据量分组;其中,迭代数据量分组包括第一迭代数据量分组和第二迭代数据量分组;将第一迭代数据量分组的数据量均值确定为第三数据量均值,并将第二迭代数据量分组的数据量均值确定为第四数据量均值;根据第三数据量均值和第四数据量均值确定数据量倾斜度。
可选的,数据量倾斜度确定子单元包括数据量倾斜度计算子单元,用于将第三数据量均值和第四数据量均值中的较小值作为较小数据量均值;将第三数据量均值和第四数据量均值之间差值的绝对值作为数据量差值绝对值;根据较小数据量均值和数据量差值绝对值确定数据量倾斜度。
可选的,处理模块包括处理单元,用于获取预先配置的业务处理条件,根据业务处理条件生成查询语句;根据查询语句判断计算任务是否为目标计算任务;如果计算任务是目标计算任务,则存储计算任务对应的任务数据和/或针对计算任务进行预警操作。
根据本公开的第三方面,提供一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据上述任意一项所述的数据处理方法。
根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据上述任意一项所述的数据处理方法。
本公开提供的技术方案可以包括以下有益效果:
本公开的示例性实施例中的数据处理方法,获取计算任务的实时数据;其中,计算任务包括多个子任务,实时数据包括多个子任务的任务数量、各子任务的执行时间和各子任务的数据量;根据各执行时间生成任务时间序列,并根据任务时间序列和任务数量确定时间倾斜度;根据各数据量生成数据量序列,并根据数据量序列和任务数量确定数据量倾斜度;根据时间倾斜度和数据量倾斜度确定计算任务的数据倾斜等级,以根据数据倾斜等级对计算任务进行处理。通过本公开的数据处理方法,一方面,获取计算任务的实时数据,可以根据实时数据实时判断计算任务的是否发生数据倾斜,可以避免数据倾斜判断产生滞后性,保证任务处理的时效性。另一方面,根据执行时间和数据量两个维度综合确定计算任务的数据倾斜等级,可以得到客观准确的判断结果。又一方面,根据得到的判断结果可以对计算任务的报警和干预提供数据依据。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本公开的示例性实施方式的数据处理方法的流程图;
图2示意性示出了根据本公开的示例性实施方式的数据处理方法的系统结构图;
图3示意性示出了根据本公开的示例性实施方式的数据处理方法的实时计算流程图;
图4示意性示出了根据本公开的示例性实施方式的根据任务时间序列和任务数量确定时间倾斜度的流程图;
图5示意性示出了根据本公开的示例性实施方式的根据初始时间分组确定时间倾斜度的流程图;
图6示意性示出了根据本公开的示例性实施方式的根据数据量序列和任务数量确定数据量倾斜度的流程图;
图7示意性示出了根据本公开的示例性实施方式的根据初始数据量分组确定时间倾斜度的流程图;
图8示意性示出了根据本公开的示例性实施方式的采用复杂事件流程引擎处理数据的数据流向图;
图9示意性示出了根据本公开的示例性实施方式的数据处理装置的方框图;
图10示意性示出了根据本公开一示例性实施例的电子设备的框图;
图11示意性示出了根据本公开一示例性实施例的计算机可读存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
目前,现有的大数据平台诊断方法,可以对任务运行结束时间进行超时诊断处理,并在任务结束时对任务进行离线分析处理。当任务运行时间超出设定阈值时进行预警提示,在任务结束时通过离线分析得出倾斜结果。其中,结束时间是根据个人经验设定,缺少科学客观的数据支撑,当数据量大范围提高和集群资源紧张等情况时,可能导致任务运行时间过长,无法准确诊断倾斜;而离线分析只能在任务运行结束后得出结果,导致诊断存在滞后性,无法保证任务的时效性。
基于此,在本示例实施例中,首先提供了一种数据处理方法,可以利用服务器来实现本公开的用数据处理方法,也可以利用终端设备来实现本公开所述的方法,其中,本公开中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)等移动终端,以及诸如台式计算机等固定终端。图1示意性示出了根据本公开的一些实施例的数据处理方法流程的示意图。参考图1,该数据处理方法可以包括以下步骤:
步骤S110,获取计算任务的实时数据;其中,计算任务包括多个子任务,实时数据包括多个子任务的任务数量、各子任务的执行时间和各子任务的数据量。
步骤S120,根据各执行时间生成任务时间序列,并根据任务时间序列和任务数量确定时间倾斜度。
步骤S130,根据各数据量生成数据量序列,并根据数据量序列和任务数量确定数据量倾斜度。
步骤S140,根据时间倾斜度和数据量倾斜度确定计算任务的数据倾斜等级,以根据数据倾斜等级对计算任务进行处理。
根据本示例实施例中的数据处理方法,一方面,获取计算任务的实时数据,可以根据实时数据实时判断计算任务的是否发生数据倾斜,可以避免数据倾斜判断产生滞后性,保证任务处理的时效性。另一方面,根据执行时间和数据量两个维度综合确定计算任务的数据倾斜等级,可以得到客观准确的判断结果。又一方面,根据得到的判断结果可以对计算任务的报警和干预提供数据依据。
下面,将对本示例实施例中的数据处理方法进行进一步的说明。
在步骤S110中,获取计算任务的实时数据;其中,计算任务包括多个子任务,实时数据包括多个子任务的任务数量、各子任务的执行时间和各子任务的数据量。
在本公开的一些示例性实施方式中,计算任务可以是各类大数据平台中的分布式计算处理任务(JOB)。子任务可以是对计算任务进行划分后得到的各个子任务。实时数据可以是分布式计算任务的实时JOB数据资源,实时数据可以包括多个子任务的任务数量、各子任务的执行时间和各子任务的数据量。任务数量可以是计算任务中包含的子任务的个数,例如,任务数量可以是2000、5000等。各子任务的执行时间可以是各个子任务的任务执行时间,例如,执行时间可以是3毫秒(ms)、10微秒(μs)等。各子任务的数据量可以是各个计算任务的任务数据大小,例如,数据量可以是512兆字节(Mbyte,MB)。举例而言,在采用MapReduce编程模型的大数据平台中,可以包括Map数据和Reduce数据,在进行数据倾斜判断时,可以对Map数据和Reduce数据分别处理,以根据计算结果综合判断计算任务的数据倾斜程度。
在计算数据倾斜判断之前,首先,可以获取JOB实时数据,将JOB实时数据作为实时计算的数据源,以进行实时计算。
根据本公开的一些示例性实施例,获取计算任务的实时运行数据以及计算任务的历史日志文件;根据实时运行数据与历史日志文件生成实时数据。实时运行数据可以是计算任务中包含的多个子任务在实时运行过程中所产生的数据。历史日志文件可以是与计算任务相关的历史运行状态的日志文件,历史日志文件中可以记录执行完成状态和执行失败状态的JOB信息。
参考图2,图2示意性示出了根据本公开的示例性实施方式的数据处理方法的系统结构图。在进行数据倾斜的判断之前,可以先通过资源管理器210获取实时数据,例如,资源管理器210可以是YARN资源管理器。举例而言,以大数据平台Hadoop集群为例,Hadoop集群可以采用另一种资源协调者(Yet Another Resource Negotiator,YARN)作为Hadoop资源管理器。YARN资源管理器可以包含资源管理器(ResourceManager,RM)组件和若干个针对应用程序的应用程序管理器(ApplicationMaster,AM)组件211。通过扩展AM组件,AM组件中的启动线程监控资源Container,可以每隔预设时间(如30秒)读取AM组件中运行的JOB实时运行数据,并将实时运行数据发送至流处理平台的资源队列中,例如,流处理平台可以是Kafka流处理平台。另外,通过扩展历史日志(Job History,JH)组件212,JH组件可以定时收集AM组件中执行完成和执行失败的任务日志进行统一管理,为了收集执行完成和执行失败的数据,在JH组件收集AM组件中的数据以生成日志的时间点,可以触发将日志发送到Kafka平台中使用。即,通过资源管理器210中的各个组件获取到实时运行数据和历史日志文件后,可以根据实时运行数据和历史日志文件生成实时数据221,并将实时数据221发送至流处理平台的资源队列220中。流处理平台接收并缓存实时数据,为后续的实时计算提供数据源。
在步骤S120中,根据各执行时间生成任务时间序列,并根据任务时间序列和任务数量确定时间倾斜度。
在本公开的一些示例性实施方式中,任务时间序列可以是由各个计算任务的任务时间组成的序列。时间倾斜度可以是根据计算任务的执行时间这一维度确定出的计算任务的数据倾斜程度,时间倾斜度可以采用valueT表示。
参考图2,当进行实时计算时,可以将资源队列220中的实时数据221推送至数据实时监测组件230,实时监测组件230中可以包括实时处理框架231,实时监测组件230可以集成实时处理框架231的算法模块232用于实时分析JOB的实时数据,本公开采用算法模块232计算并判断计算任务的数据倾斜程度。另外,实时监测组件230可以集成实时处理框架231和复杂事件流程引擎233用于筛选出满足一定条件的计算任务数据,以用于后续处理。举例而言,本公开可以使用Eagle实时监测组件集成Storm大数据处理框架和倾斜算法组件用于实时分析JOB数据,集成Storm大数据处理框架和复杂事件处理(Complex EventProcessing,CEP)组件制定规则引擎,动态配置类结构化查询语言(Structured QueryLanguage,SQL)语句用于筛选数据。
参考图3,图3示意性示出了根据本公开的示例性实施方式的数据处理方法的实时计算流程图。在步骤S310中,将资源队列220中缓存的实时数据221推送至算法模块232中,由算法模块232对计算任务的实时数据221进行实时处理。具体的,可以通过执行时间和数据量两个维度判断计算任务的数据倾斜程度。在步骤S321中,可以获取多个子任务的执行时间,并根据获取到的执行时间生成任务时间序列,以根据任务时间序列和任务数量确定时间倾斜度。在本公开中,可以对Map数据和Reduce数据的执行时间分别计算,可以将Map单个任务时间定义为mapTimeTaken,Map单个任务的数据量大小定义为mapData,Map任务数量定义为mapNum;将Reduce单个任务时间定义为reduceTimeTaken,Reduce单个任务的数据量大小定义为reduceData,Reduce任务数量定义为reduceNum。下述以Map数据的计算过程为例进行说明,根据获取到的多个子任务的执行时间生成的任务时间序列为timeTaken={1,2,8,4,5,6,2,5}。
根据本公开的一些示例性实施例,根据任务时间序列确定多个子任务的任务总时间,并根据任务总时间和任务数量确定多个子任务的时间均值;根据时间均值对任务时间序列进行分组处理,以得到初始时间分组;其中,初始时间分组包括第一初始时间分组和第二初始时间分组;根据第一初始时间分组和第二初始时间分组确定时间倾斜度。任务总时间可以是多个子任务的执行时间之和,任务总时间可以采用sum(timeTaken)表示。时间均值可以是多个子任务的平均执行时间,时间均值可以用avgTime1表示。任务数量可以用n表示。初始时间分组可以是根据时间均值对任务时间序列进行分组后产生的时间分组。第一初始时间分组可以是由执行时间小于时间均值的执行时间组成的分组。第二初始时间分组可以是由执行时间大于等于时间均值的执行时间组成的分组。
参考图4,图4示意性示出了根据本公开的示例性实施方式的根据任务时间序列和任务数量确定时间倾斜度的流程图。在步骤S410中,根据任务时间计算多个子任务的任务总时间,计算出任务总时间后,可以根据任务总时间和任务数量计算时间均值,采用任务数量对任务总时间进行整除运算可以得到时间均值。例如,根据timeTaken={1,2,8,4,5,6,2,5},可以得到任务总时间sum(timeTaken)=33,任务数量n=8,则时间均值avgTime1=sum(timeTaken)/n=4。在步骤S420中,可以根据时间均值对任务时间序列进行分组,得到第一初始时间分组和第二初始时间分组。例如,根据时间均值avgTime1=4可以将任务时间序列划分为第一初始时间分组timeTaken[a]={1,2,2}和第二初始时间分组timeTaken[b]={8,4,5,6,5}。在步骤S430中,根据得到的第一初始时间分组和第二初始时间分组可以进一步计算时间倾斜度。
根据本公开的一些示例性实施例,将第一初始时间分组的时间均值确定为第一时间均值,并将第二初始时间分组的时间均值确定为第二时间均值;根据第一时间均值和第二时间均值确定迭代时间均值,并根据迭代时间均值对任务时间序列进行迭代划分,得到迭代时间分组;其中,迭代时间分组包括第一迭代时间分组和第二迭代时间分组;将第一迭代时间分组的时间均值确定为第三时间均值,并将第二迭代时间分组的时间均值确定为第四时间均值;根据第三时间均值和第四时间均值确定时间倾斜度。第一时间均值可以是第一初始时间分组中包括的计算任务的平均执行时间。第二时间均值可以是第二初始时间分组中包括的计算任务的平均执行时间。迭代时间均值可以是将第二时间均值和第一时间均值做差后得到的时间均值,迭代时间均值用于对初始时间分组进行迭代分组处理。迭代时间分组可以采用迭代时间均值对初始时间分组重新进行分组处理后得到的时间分组。第一迭代时间分组可以是由执行时间小于迭代时间均值的执行时间组成的分组。第二迭代时间分组可以是由执行时间大于等于迭代时间均值的执行时间组成的分组。第三时间均值可以是第一迭代时间分组中包括的计算任务的平均执行时间。第四时间均值可以是第二迭代时间分组中包括的计算任务的平均执行时间。
需要说明的是,在本公开的一些示例性实施方式中,在计算第一时间均值、第二时间均值、第三时间均值和第四时间均值时,对于计算结果均进行向上取整处理;在其他示例性实施方式中,对时间均值进行类似于向下取整的处理方式,均属于本公开的保护范围,本公开对此不作任何特殊限定。
参考图5,图5示意性示出了根据本公开的示例性实施方式的根据初始时间分组确定时间倾斜度的流程图。在步骤S510中,可以分别确定第一初始时间分组和第二初始时间分组分别对应的时间均值。具体的,第一初始时间分组timeTaken[a]的第一时间均值avg(a)=2,第二初始时间分组timeTaken[b]的第二时间均值avg(b)=6。在步骤S520中,根据第一时间均值和第二时间均值可以计算出迭代时间均值,以根据计算出的迭代时间均值对初始时间分组进行迭代划分处理。具体的,可以采用avgTime2表示迭代时间均值,avgTime2=avg(b)-avg(a)=4。根据得到的迭代时间均值avgTime2对初始时间分组进行迭代划分,可以得到迭代时间分组,包括第一迭代时间分组timeTaken[a’]={1,2,2}和第二迭代时间分组timeTaken[b’]={8,4,5,6,5},迭代分组结果并未发生变化。在步骤S530中,分别确定第一迭代时间分组和第二迭代时间分组分别对应的第三时间均值和第四时间均值,则avg(a’)=2,avg(b’)=6。在步骤S540中,根据第三时间均值和第四时间均值确定时间倾斜度。
根据本公开的一些示例性实施例,将第三时间均值和第四时间均值中的较小值作为较小时间均值;将第三时间均值和第四时间均值之间差值的绝对值作为时间差值绝对值;根据较小时间均值和时间差值绝对值确定所述时间倾斜度。较小时间均值可以是第三时间均值和第四时间均值中数值较小的时间均值。时间差值绝对值可以是对第三时间均值和第四时间均值进行做差处理并进行绝对值运算后得到的数值。
在计算出第三时间均值和第四时间均值后,可以从第三时间均值和第四时间均值中确定出较小时间均值,较小时间均值可以采用MINT表示。在计算最小值MINT时,如果MINT<=0,则令MINT=1。例如,根据得到的第三时间均值和第四时间均值得到MINT=min(avg(a’),avg(b’))=2。根据第三时间均值与第四时间均值计算时间差值绝对值,时间差值绝对值可以采用ABST表示。例如,ABST=abs(avg(a’)-avg(b’))=4。在计算出较小时间均值和时间差值绝对值后,采用较小时间均值对时间差值绝对值进行整除计算,可以得到时间倾斜度,即时间倾斜度valueT=ABST/MINT=2。
在步骤S130中,根据各数据量生成数据量序列,并根据数据量序列和任务数量确定数据量倾斜度。
在本公开的一些示例性实施方式中,数据量序列可以是由各个计算任务的数据量大小组成的序列。数据量倾斜度可以是根据计算任务的数据量这一维度确定出的计算任务的数据倾斜程度,数据量倾斜度可以采用valueD表示。
参考图3,在步骤S322中,可以获取多个子任务的数据量,并根据获取到的数据量生成数据量序列,以根据数据量序列和任务数量确定数据量倾斜度。例如,获取到的数据量序列为Data={1,2,5,7,3,9,9,3}。
根据本公开的一些示例性实施例,根据数据量序列确定多个子任务的总数据量,并根据总数据量和任务数量确定多个子任务的数据量均值;根据数据量均值对数据量序列进行分组处理,以得到初始数据量分组;其中,初始数据量分组包括第一初始数据量分组和第二初始数据量分组;根据第一初始数据量分组和第二初始数据量分组确定数据量倾斜度。总数据量可以是多个子任务的数据量之和,总数据量可以采用sum(Data)表示。数据量均值可以是多个子任务的平均数据量,数据量均值可以用avgData1表示。初始数据量分组可以是根据数据量均值对数据量序列进行分组后产生的数据量分组。第一初始数据量分组可以是由数据量小于数据量均值的计算任务对应的数据量组成的分组。第二初始时间分组可以是由数据量大于等于数据量均值的计算任务对应的数据量组成的分组。
参考图6,图6示意性示出了根据本公开的示例性实施方式的根据数据量序列和任务数量确定数据量倾斜度的流程图。在步骤S610中,根据数据量序列中多个子任务分别对应的数据量计算总数据量,并根据总数据量和任务数量计算数据量均值,采用任务数量对总数据量进行整除运算可以得到数据量均值。例如,根据数据量序列Data={1,2,5,7,3,9,9,3},可以得到总数据量sum(Data)=39,则数据量均值avgData1=sum(Data)/n=4。在步骤S620中,可以根据数据量均值对数据量序列进行分组,得到第一初始数据量分组和第二初始数据量分组。例如,根据数据量均值avgData1=4可以将数据量序列划分为第一初始数据量分组Data[c]={1,2,3,3}和第二初始数据量分组Data[d]={5,7,9,9}。在步骤S630中,根据得到的第一初始数据量分组和第二初始数据量分组可以进一步计算数据量倾斜度。
根据本公开的一些示例性实施例,将第一初始数据量分组的数据量均值确定为第一数据量均值,并将第二初始数据量分组的数据量均值确定为第二数据量均值;根据第一数据量均值和第二数据量均值确定迭代数据量均值,并根据迭代数据量均值对数据量序列进行迭代划分,得到迭代数据量分组;其中,迭代数据量分组包括第一迭代数据量分组和第二迭代数据量分组;将第一迭代数据量分组的数据量均值确定为第三数据量均值,并将第二迭代数据量分组的数据量均值确定为第四数据量均值;根据第三数据量均值和第四数据量均值确定数据量倾斜度。第一数据量均值可以是第一初始数据量分组中包括的计算任务的平均数据量。第二数据量均值可以是第二初始数据量分组中包括的计算任务的平均数据量。迭代数据量均值可以是将第二数据量均值和第一数据量均值做差后得到的数据量均值,迭代数据量均值用于对初始数据量分组进行迭代分组处理。迭代数据量分组可以采用迭代数据量均值对初始数据量分组重新进行分组处理后得到的数据量分组。第一迭代数据量分组可以是由数据量小于迭代数据量均值的计算任务对应的数据量组成的分组。第二迭代时间分组可以是由数据量大于等于迭代数据量均值的计算任务对应的数据量组成的分组。第三数据量均值可以是第一迭代数据量分组中包括的计算任务的平均数据量。第四数据量均值可以是第二迭代数据量分组中包括的计算任务的平均数据量。
同样地,在本公开的示例性实施例中,在计算第一数据量均值、第二数据量均值、第三数据量均值和第四数据量均值时,对于计算结果均进行向上取整处理。
参考图7,图7示意性示出了根据本公开的示例性实施方式的根据初始数据量分组确定时间倾斜度的流程图。在步骤S710中,可以分别确定第一初始数据量分组和第二初始数据量分组分别对应的数据量均值。具体的,第一初始数据量分组Data[c]的第一数据量均值avg(c)=3,第二初始数据量分组Data[d]的第二数据量均值avg(d)=8。在步骤S720中,根据第一数据量均值和第二数据量均值可以计算出迭代数据量均值,以根据计算出的迭代数据量均值对初始数据量分组进行迭代划分处理。具体的,可以采用avgData2表示迭代数据量均值,avgData2=avg(d)-avg(c)=5。根据得到的迭代数据量均值avgData2对初始数据量分组进行迭代划分,可以得到迭代数据量分组,包括第一迭代数据量分组Data[c’]={1,2,3,3}和第二迭代数据量分组Data[d’]={5,7,9,9}。在步骤S730中,分别确定第一迭代数据量分组和第二迭代数据量分组分别对应的第三数据量均值和第四数据量均值,则avg(c’)=3,avg(d’)=8。在步骤S740中,根据第三数据量均值和第四数据量均值确定数据量倾斜度。
根据本公开的一些示例性实施例,将第三数据量均值和第四数据量均值中的较小值作为较小数据量均值;将第三数据量均值和第四数据量均值之间差值的绝对值作为数据量差值绝对值;根据较小数据量均值和数据量差值绝对值确定数据量倾斜度。较小数据量均值可以是第三数据量均值和第四数据量均值中数值较小的数据量均值。数据量差值绝对值可以是对第三数据量均值和第四数据量均值进行做差处理并进行绝对值运算后得到的数值。
在计算出第三数据量均值和第四数据量均值后,可以从第三数据量均值和第四数据量均值中确定出较小数据量均值,较小数据量均值可以采用MIND表示。在计算最小值MIND时,如果MIND<=0,则令MIND=1。例如,根据得到的第三数据量均值和第四数据量均值得到MIND=min(avg(c’),avg(d’))=3。根据第三数据量均值与第四数据量均值计算数据量差值绝对值,数据量差值绝对值可以采用ABSD表示。例如,ABSD=abs(avg(c’)-avg(d’))=5。在计算出较小数据量均值和数据量差值绝对值后,采用较小数据量均值对数据量差值绝对值进行整除计算,可以得到数据量倾斜度,即数据量倾斜度valueD=ABSD/MIND=1。
本领域技术人员容易理解的是,对于Map数据和Reduce数据,均可以采用上述计算方法计算时间倾斜度和数据量倾斜度,本公开对具体的计算过程不再赘述。
在步骤S140中,根据时间倾斜度和数据量倾斜度确定计算任务的数据倾斜等级,以根据数据倾斜等级对计算任务进行处理。
在本公开的一些示例性实施方式中,数据倾斜等级可以是表示数据处理平台在进行任务处理时所产生的数据倾斜严重程度的等级。在计算出Map数据和Reduce数据分别对应的时间倾斜度和数据量倾斜度后,参考图3,在步骤S330中,当进行数据倾斜的严重性计算时,可以分别设置各个计算结果的对应的计算权重,对得到的多个倾斜度进行加权处理后,可以得到判断结果310,即计算任务的数据倾斜等级。在本公开中,可以采用具体数值表示不同的数据倾斜等级。举例而言,数据倾斜等级可以设置为5个级别,则各个级别对应的数值分别为0、1、2、3、4。具体的,数值0可以表示无倾斜(none)、数值1可以表示低倾斜(low)、数值2可以表示中度倾斜(moderate)、数值3可以表示高倾斜(severe)、数值4可以表示严重倾斜(critical)。在步骤S340中,在得出判断结果310后,可以对判断结果310进行条件判断操作。在步骤S350中,如果计算任务的判断结果满足判断条件,则对相应的计算任务和相关数据进行诊断操作。例如,在确定出数据倾斜等级后,可以对数据倾斜等级满足一定条件的计算任务进行处理。如果判断结果不满足判断条件,则结束并返回。
根据本公开的一些示例性实施例,获取预先配置的业务处理条件,根据业务处理条件生成查询语句;根据查询语句判断计算任务是否为目标计算任务;如果计算任务是目标计算任务,则存储计算任务对应的任务数据和/或针对计算任务进行预警操作。业务处理条件可以是用于筛选计算任务的条件,在实际应用场景中可以根据业务需求预先配置业务处理条件,例如,业务处理条件可以是筛选数据倾斜等级大于4的计算任务。查询语句可以是用于从多个不同的计算任务中筛选出特定计算任务时所采用的查询语句。目标计算任务可以是满足查询语句中限定条件的特定计算任务。任务数据可以是计算任务中包含的子任务的基础信息和其他相关数据,例如,基础信息可以包括但不限于计算任务中包含的子任务的数据量、已读取的数据量、已写入的数据量、任务执行时间、任务开始时间、任务预计结束时间等。预警操作可以是当计算任务的运行指标超过预设阈值时,针对该计算任务进行的预警操作。
参考图2,在集成Storm流处理平台和CEP组件制定规则引擎时,可以获取预先配置的针对计算任务的业务处理条件,根据业务处理条件可以生成查询语句,查询语句可以是类SQL语句。举例而言,当业务处理条件为筛选某一变量超过阈值范围的数据时,对应的类SQL语句可以是“select a.test from test_table where val>100”,其中,val>100就是一种业务处理条件,即规则判断。以Siddhi引擎为例,Siddhi是一个轻量级的、简单的开源的复杂事件流程引擎,它可以使用类SQL的语言描述事件流任务,可以很好的支撑开发一个可扩展的,可配置的流式任务执行引擎。传统设计之中,为了支持不同的告警规则类型,需要编写不同的业务逻辑代码,但是使用了Siddhi之后,仅需要配置不同的流任务Siddhiql,即可以支持不同的规则任务。通过集成Storm流处理平台和CEP引擎,可以形成可动态配置化业务条件引擎,即随着具体业务需求的变化,可以对相应的业务判断条件进行相应调整,以满足不断变化的业务需求。
参考图8,图8示意性示出了根据本公开的示例性实施方式的采用复杂事件流程引擎处理数据的数据流向图。通过输入适配器810将计算任务及其相关数据输入至引擎内核830中,引擎内核830对输入的计算任务及其相关数据进行处理,可以通过输出适配器820输出结果,即目标计算任务,以对目标计算任务进行诊断操作。其中,通过编译器840可以将类SQL语句配置在引擎内核830,以便引擎内核830进行数据筛选操作。
通过上述步骤筛选出目标计算任务后,可以将筛选出的目标计算任务及相关的任务诊断数据存储至数据库中,以对筛选后数据进行外部存储。另外,还可以调用第三方应用程序接口(Application Programming Interface,API),以便第三方应用程序对目标计算任务进行干预和预警操作。参考图2,在得到任务诊断数据后,可以将任务诊断数据存储至不同的数据库中,例如,数据库241可以是Kafka流处理平台中的资源队列中,Kafka流处理平台可以用于其他实时处理任务;数据库242可以是Hbase数据库,Hbase数据库是一个分布式的、面向列的开源数据库,它可以用于其他任务的即时查询;数据库243可以是Mysql数据库,Mysql数据库是一种关系型数据库管理系统,它可以用于其他系统底层关系型数据。另外,将筛选出的数据传输至第三方应用程序接口244中,则第三方应用程序可以对筛选出的数据进行预警和干预,例如,对任务执行时间已经超过预计完成时间的计算任务进行预警,以便技术人员对相关计算任务进行及时干预。
需要说明的是,本公开所使用的术语“第一”、“第二”、“第三”、“第四”等,仅是为了区分不同的初始时间分组、不同的时间均值、不同的迭代时间分组以及不同的初始数据量分组、不同的数据量均值、不同的迭代数据量分组,并不应对本公开造成任何限制。
综上所述,本公开的数据处理方法,获取计算任务的实时数据;其中,计算任务包括多个子任务,实时数据包括多个子任务的任务数量、各子任务的执行时间和各子任务的数据量;根据各执行时间生成任务时间序列,并根据任务时间序列和任务数量确定时间倾斜度;根据各数据量生成数据量序列,并根据数据量序列和任务数量确定数据量倾斜度;根据时间倾斜度和数据量倾斜度确定计算任务的数据倾斜等级,以根据数据倾斜等级对计算任务进行处理。通过本公开的数据处理方法,一方面,获取计算任务的实时数据,可以根据实时数据实时判断计算任务的是否发生数据倾斜,可以避免数据倾斜判断产生滞后性,保证任务处理的时效性。另一方面,根据执行时间和数据量两个维度综合确定计算任务的数据倾斜等级,可以得到客观准确的判断结果。又一方面,通过时间倾斜度和数据量倾斜度的计算方法,可以得到较为准确的数据倾斜度计算结果,提高计算效率和计算结果的准确性。再一方面,根据得到的判断结果可以对计算任务的报警和干预提供数据依据。
需要说明的是,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
此外,在本示例实施例中,还提供了一种数据处理装置。参考图9,该数据处理装置900可以包括:实时数据获取模块910、时间倾斜度确定模块920、数据量倾斜度确定模块930以及处理模块940。
具体的,实时数据获取模块910可以用于获取计算任务的实时数据;其中,计算任务包括多个子任务,实时数据包括多个子任务的任务数量、各子任务的执行时间和各子任务的数据量;时间倾斜度确定模块920可以用于根据各执行时间生成任务时间序列,并根据任务时间序列和任务数量确定时间倾斜度;数据量倾斜度确定模块930可以用于根据各数据量生成数据量序列,并根据数据量序列和任务数量确定数据量倾斜度;处理模块940可以用于根据时间倾斜度和数据量倾斜度确定计算任务的数据倾斜等级,以根据数据倾斜等级对计算任务进行处理。
在本公开的一种示例性实施方案中,实时数据获取模块还包括实时数据获取单元,用于获取计算任务的实时运行数据以及计算任务的历史日志文件;根据实时运行数据与历史日志文件生成实时数据。
在本公开的一种示例性实施方案中,时间倾斜度确定模块包括时间倾斜度确定单元,用于根据任务时间序列确定多个子任务的任务总时间,并根据任务总时间和任务数量确定多个子任务的时间均值;根据时间均值对任务时间序列进行分组处理,以得到初始时间分组;其中,初始时间分组包括第一初始时间分组和第二初始时间分组;根据第一初始时间分组和第二初始时间分组确定时间倾斜度。
在本公开的一种示例性实施方案中,时间倾斜度确定单元包括时间倾斜度确定子单元,用于将第一初始时间分组的时间均值确定为第一时间均值,并将第二初始时间分组的时间均值确定为第二时间均值;根据第一时间均值和第二时间均值确定迭代时间均值,并根据迭代时间均值对任务时间序列进行迭代划分,得到迭代时间分组;其中,迭代时间分组包括第一迭代时间分组和第二迭代时间分组;将第一迭代时间分组的时间均值确定为第三时间均值,并将第二迭代时间分组的时间均值确定为第四时间均值;根据第三时间均值和第四时间均值确定时间倾斜度。
在本公开的一种示例性实施方案中,时间倾斜度确定子单元包括时间倾斜度计算子单元,用于将第三时间均值和第四时间均值中的较小值作为较小时间均值;将第三时间均值和第四时间均值之间差值的绝对值作为时间差值绝对值;根据较小时间均值和时间差值绝对值确定所述时间倾斜度。
在本公开的一种示例性实施方案中,数据量倾斜度确定模块包括数据量倾斜度确定单元,用于根据数据量序列确定多个子任务的总数据量,并根据总数据量和任务数量确定多个子任务的数据量均值;根据数据量均值对数据量序列进行分组处理,以得到初始数据量分组;其中,初始数据量分组包括第一初始数据量分组和第二初始数据量分组;根据第一初始数据量分组和第二初始数据量分组确定数据量倾斜度。
在本公开的一种示例性实施方案中,数据量倾斜度确定单元包括数据量倾斜度确定子单元,用于将第一初始数据量分组的数据量均值确定为第一数据量均值,并将第二初始数据量分组的数据量均值确定为第二数据量均值;根据第一数据量均值和第二数据量均值确定迭代数据量均值,并根据迭代数据量均值对数据量序列进行迭代划分,得到迭代数据量分组;其中,迭代数据量分组包括第一迭代数据量分组和第二迭代数据量分组;将第一迭代数据量分组的数据量均值确定为第三数据量均值,并将第二迭代数据量分组的数据量均值确定为第四数据量均值;根据第三数据量均值和第四数据量均值确定数据量倾斜度。
在本公开的一种示例性实施方案中,数据量倾斜度确定子单元包括数据量倾斜度计算子单元,用于将第三数据量均值和第四数据量均值中的较小值作为较小数据量均值;将第三数据量均值和第四数据量均值之间差值的绝对值作为数据量差值绝对值;根据较小数据量均值和数据量差值绝对值确定数据量倾斜度。
在本公开的一种示例性实施方案中,处理模块包括处理单元,用于获取预先配置的业务处理条件,根据业务处理条件生成查询语句;根据查询语句判断计算任务是否为目标计算任务;如果计算任务是目标计算任务,则存储计算任务对应的任务数据和/或针对计算任务进行预警操作。
上述中各数据处理装置的虚拟模块的具体细节已经在对应的数据处理方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了数据处理装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本发明的这种实施例的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030、显示单元1040。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1010执行,使得所述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1021和/或高速缓存存储单元1022,还可以进一步包括只读存储单元(ROM)1023。
存储单元1020还可以包括具有一组(至少一个)程序模块1025的程序/实用工具1024,这样的程序模块1025包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1070(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
参考图11所示,描述了根据本发明的实施例的用于实现上述方法的程序产品1100,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (12)

1.一种数据处理方法,其特征在于,包括:
获取计算任务的实时数据;其中,所述计算任务包括多个子任务,所述实时数据包括所述多个子任务的任务数量、各所述子任务的执行时间和各所述子任务的数据量;
根据各所述执行时间生成任务时间序列,并根据所述任务时间序列和所述任务数量确定时间倾斜度;
根据各所述数据量生成数据量序列,并根据所述数据量序列和所述任务数量确定数据量倾斜度;
根据所述时间倾斜度和所述数据量倾斜度确定所述计算任务的数据倾斜等级,以根据所述数据倾斜等级对所述计算任务进行处理。
2.根据权利要求1所述的数据处理方法,其特征在于,所述获取计算任务的实时数据,包括:
获取所述计算任务的实时运行数据以及所述计算任务的历史日志文件;
根据所述实时运行数据与所述历史日志文件生成所述实时数据。
3.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述任务时间序列和所述任务数量确定时间倾斜度,包括:
根据所述任务时间序列确定所述多个子任务的任务总时间,并根据所述任务总时间和所述任务数量确定所述多个子任务的时间均值;
根据所述时间均值对所述任务时间序列进行分组处理,以得到初始时间分组;其中,所述初始时间分组包括第一初始时间分组和第二初始时间分组;
根据所述第一初始时间分组和所述第二初始时间分组确定所述时间倾斜度。
4.根据权利要求3所述的数据处理方法,其特征在于,所述根据所述第一初始时间分组和所述第二初始时间分组确定所述时间倾斜度,包括:
将所述第一初始时间分组的时间均值确定为第一时间均值,并将所述第二初始时间分组的时间均值确定为第二时间均值;
根据所述第一时间均值和所述第二时间均值确定迭代时间均值,并根据所述迭代时间均值对所述任务时间序列进行迭代划分,得到迭代时间分组;其中,所述迭代时间分组包括第一迭代时间分组和第二迭代时间分组;
将所述第一迭代时间分组的时间均值确定为第三时间均值,并将所述第二迭代时间分组的时间均值确定为第四时间均值;
根据所述第三时间均值和所述第四时间均值确定所述时间倾斜度。
5.根据权利要求4所述的数据处理方法,其特征在于,所述根据所述第三时间均值和所述第四时间均值确定所述时间倾斜度,包括:
将所述第三时间均值和所述第四时间均值中的较小值作为较小时间均值;
将所述第三时间均值和所述第四时间均值之间差值的绝对值作为时间差值绝对值;
根据所述较小时间均值和所述时间差值绝对值确定所述时间倾斜度。
6.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述数据量序列和所述任务数量确定数据量倾斜度,包括:
根据所述数据量序列确定所述多个子任务的总数据量,并根据所述总数据量和所述任务数量确定所述多个子任务的数据量均值;
根据所述数据量均值对所述数据量序列进行分组处理,以得到初始数据量分组;其中,所述初始数据量分组包括第一初始数据量分组和第二初始数据量分组;
根据所述第一初始数据量分组和所述第二初始数据量分组确定所述数据量倾斜度。
7.根据权利要求6所述的数据处理方法,其特征在于,所述根据所述第一初始数据量分组和所述第二初始数据量分组确定所述数据量倾斜度,包括:
将所述第一初始数据量分组的数据量均值确定为第一数据量均值,并将所述第二初始数据量分组的数据量均值确定为第二数据量均值;
根据所述第一数据量均值和所述第二数据量均值确定迭代数据量均值,并根据所述迭代数据量均值对所述数据量序列进行迭代划分,得到迭代数据量分组;其中,所述迭代数据量分组包括第一迭代数据量分组和第二迭代数据量分组;
将所述第一迭代数据量分组的数据量均值确定为第三数据量均值,并将所述第二迭代数据量分组的数据量均值确定为第四数据量均值;
根据所述第三数据量均值和所述第四数据量均值确定所述数据量倾斜度。
8.根据权利要求7所述的数据处理方法,其特征在于,所述根据所述第三数据量均值和所述第四数据量均值确定所述数据量倾斜度,包括:
将所述第三数据量均值和所述第四数据量均值中的较小值作为较小数据量均值;
将所述第三数据量均值和所述第四数据量均值之间差值的绝对值作为数据量差值绝对值;
根据所述较小数据量均值和所述数据量差值绝对值确定所述数据量倾斜度。
9.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述数据倾斜等级对所述计算任务进行处理,包括:
获取预先配置的业务处理条件,根据所述业务处理条件生成查询语句;
根据所述查询语句判断所述计算任务是否为目标计算任务;
如果所述计算任务是目标计算任务,则存储所述计算任务对应的任务数据和/或针对所述计算任务进行预警操作。
10.一种数据处理装置,其特征在于,包括:
实时数据获取模块,用于获取计算任务的实时数据;其中,所述计算任务包括多个子任务,所述实时数据包括所述多个子任务的任务数量、各所述子任务的执行时间和各所述子任务的数据量;
时间倾斜度确定模块,用于根据各所述执行时间生成任务时间序列,并根据所述任务时间序列和所述任务数量确定时间倾斜度;
数据量倾斜度确定模块,用于根据各所述数据量生成数据量序列,并根据所述数据量序列和所述任务数量确定数据量倾斜度;
处理模块,用于根据所述时间倾斜度和所述数据量倾斜度确定所述计算任务的数据倾斜等级,以根据所述数据倾斜等级对所述计算任务进行处理。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据权利要求1至9中任一项所述的数据处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至9中任一项所述的数据处理方法。
CN202010568444.0A 2020-06-19 2020-06-19 数据处理方法及装置、电子设备和计算机可读存储介质 Pending CN113778727A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010568444.0A CN113778727A (zh) 2020-06-19 2020-06-19 数据处理方法及装置、电子设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010568444.0A CN113778727A (zh) 2020-06-19 2020-06-19 数据处理方法及装置、电子设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113778727A true CN113778727A (zh) 2021-12-10

Family

ID=78835038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010568444.0A Pending CN113778727A (zh) 2020-06-19 2020-06-19 数据处理方法及装置、电子设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113778727A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110238496A1 (en) * 2010-02-23 2011-09-29 Vishal Gurbuxani Systems and Methods for Generating Data from Mobile Applications and Dynamically Delivering Advertising Based on Generated Data
US20120158451A1 (en) * 2010-12-16 2012-06-21 International Business Machines Corporation Dispatching Tasks in a Business Process Management System
CN103164261A (zh) * 2011-12-15 2013-06-19 中国移动通信集团公司 多中心数据任务处理方法、装置及系统
CN106203757A (zh) * 2015-05-06 2016-12-07 阿里巴巴集团控股有限公司 计算资源管理方法和装置
CN106502791A (zh) * 2016-10-14 2017-03-15 浪潮电子信息产业股份有限公司 一种任务分配方法及装置
CN106933511A (zh) * 2017-02-27 2017-07-07 武汉大学 考虑负载均衡与磁盘效率的空间数据存储组织方法及系统
CN109144709A (zh) * 2017-06-16 2019-01-04 田文洪 一种处理大数据平台yarn数据分配不均衡的方法
CN109376013A (zh) * 2018-10-11 2019-02-22 北京小米智能科技有限公司 负载均衡方法及装置
CN110362611A (zh) * 2019-07-12 2019-10-22 拉卡拉支付股份有限公司 一种数据库查询方法、装置、电子设备及存储介质
CN110489301A (zh) * 2019-08-22 2019-11-22 上海中通吉网络技术有限公司 mapreduce任务性能的分析方法、装置及设备
CN110502505A (zh) * 2019-08-29 2019-11-26 中国农业银行股份有限公司 一种数据迁移方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110238496A1 (en) * 2010-02-23 2011-09-29 Vishal Gurbuxani Systems and Methods for Generating Data from Mobile Applications and Dynamically Delivering Advertising Based on Generated Data
US20120158451A1 (en) * 2010-12-16 2012-06-21 International Business Machines Corporation Dispatching Tasks in a Business Process Management System
CN103164261A (zh) * 2011-12-15 2013-06-19 中国移动通信集团公司 多中心数据任务处理方法、装置及系统
CN106203757A (zh) * 2015-05-06 2016-12-07 阿里巴巴集团控股有限公司 计算资源管理方法和装置
CN106502791A (zh) * 2016-10-14 2017-03-15 浪潮电子信息产业股份有限公司 一种任务分配方法及装置
CN106933511A (zh) * 2017-02-27 2017-07-07 武汉大学 考虑负载均衡与磁盘效率的空间数据存储组织方法及系统
CN109144709A (zh) * 2017-06-16 2019-01-04 田文洪 一种处理大数据平台yarn数据分配不均衡的方法
CN109376013A (zh) * 2018-10-11 2019-02-22 北京小米智能科技有限公司 负载均衡方法及装置
CN110362611A (zh) * 2019-07-12 2019-10-22 拉卡拉支付股份有限公司 一种数据库查询方法、装置、电子设备及存储介质
CN110489301A (zh) * 2019-08-22 2019-11-22 上海中通吉网络技术有限公司 mapreduce任务性能的分析方法、装置及设备
CN110502505A (zh) * 2019-08-29 2019-11-26 中国农业银行股份有限公司 一种数据迁移方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
周华平;刘光宗;张贝贝;: "基于索引偏移的MapReduce聚类负载均衡策略", 计算机科学, no. 05, 15 May 2018 (2018-05-15) *
柴宁;吴毅坚;赵文耘;: "基于数据特性的Spark任务性能优化", 计算机应用与软件, no. 01, 15 January 2018 (2018-01-15) *

Similar Documents

Publication Publication Date Title
US20230188452A1 (en) Performance monitoring in a distributed storage system
US9870270B2 (en) Realizing graph processing based on the mapreduce architecture
US10419305B2 (en) Visualization of workload distribution on server resources
US10411969B2 (en) Backend resource costs for online service offerings
JP7100180B2 (ja) 分散アプリケーションのインタフェース性能監視方法、装置、電子機器、記憶媒体、及びプログラム
WO2022103575A1 (en) Techniques for modifying cluster computing environments
US20220019587A1 (en) Access path optimization
KR20220129085A (ko) 통계 수집 오프로딩
CN113762906A (zh) 任务周期延迟的告警方法、装置、设备及存储介质
CN115344207A (zh) 数据处理方法、装置、电子设备及存储介质
CN114547069A (zh) 数据查询方法、装置、电子设备以及存储介质
US20240095223A1 (en) Tuning external invocations utilizing weight-based parameter resampling
CN112615795A (zh) 流量控制方法、装置、电子设备、存储介质及产品
CN113778727A (zh) 数据处理方法及装置、电子设备和计算机可读存储介质
CN115529188A (zh) 数据处理方法、装置、存储介质及电子设备
CN115438056A (zh) 一种数据获取方法、装置、设备以及存储介质
US11204923B2 (en) Performance for query execution
CN114661571A (zh) 模型评测方法、装置、电子设备和存储介质
CN110493071B (zh) 消息系统资源均衡装置、方法及设备
US20160210170A1 (en) Computing CPU Time Usage of Activities Serviced by CPU
CN112148554A (zh) 实时计算redis业务数据占用大小的方法及装置
CN116628231B (zh) 基于大数据平台的任务可视化发布方法及系统
US20230101554A1 (en) Automated training environment selection
US11599442B1 (en) Detecting abnormal database activity
US20230072913A1 (en) Classification based on imbalanced dataset

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