掌桥专利:专业的专利平台
掌桥专利
首页

一种时序数据的异常检测方法、装置、电子设备和介质

文献发布时间:2023-06-19 12:14:58


一种时序数据的异常检测方法、装置、电子设备和介质

技术领域

本申请涉及分布式数据管理技术领域,特别涉及一种时序数据的异常检测方法、装置、电子设备和计算机可读存储介质。

背景技术

基于数据质量约束规则的复杂性和多样性,当数据规模变大时,这种高度复杂性会导致传统的数据清洗工具在大型数据集上难以进行计算,并极大地降低其性能。

目前,关于大数据量级的数据清洗系统并不多见。现有的处理方式属于单机的全量式的处理方式,处理效率较低且性能不高。还有,现有的大数据量级的清洗系统例如BigDansing只能处理离线数据集,即数据的规模不再改变。但是,对于企业来说,数据量每天都在增加,只能离线进行异常检测,导致不能及时的进行数据清洗,存在时间延误。

发明内容

本申请的目的是提供一种时序数据的异常检测方法、装置、电子设备和计算机可读存储介质,可以实现在spark平台下在线进行异常数据检测,提高了数据清洗的效率,减少了异常检测的等待时间,提高用户体验。其具体方案如下:

第一方面,本申请公开了一种时序数据的异常检测的方法,包括:

在spark平台下,根据异常检测规则,创建detect算子;

当在所述spark平台下获取到输入的数据流后,对所述数据流进行预处理,得到目标数据集;

利用所述detect算子对所述目标数据集进行检测,得到异常数据。

可选的,对所述数据流进行预处理,得到目标数据集,包括:

对所述数据流进行切片得到RDD数据,并将所述RDD数据转化为DataFrame格式数据;

将所述DataFrame格式数据作为所述目标数据集。

可选的,将所述DataFrame格式数据作为所述目标数据集,包括:

利用输入的SQL语句,对所述DataFrame格式数据进行选择操作以及投影操作,得到目标数据集。

可选的,利用所述detect算子对所述目标数据集进行检测,得到异常数据,包括:

利用所述detect算子,对所述目标数据集与所述spark平台存储的历史数据进行检测,得到所述异常数据;所述detect算子的异常检测规则包含所述目标数据集与所述spark平台存储的历史数据进行冲突检测。

可选的,在所述利用detect算子对所述目标数据集进行检测之前,还包括:

当所述异常检测规则发生变更时,根据变更后的异常检测规则,更新所述detect算子。

可选的,在利用detect算子对所述目标数据集进行检测,得到异常数据之后,还包括:

将所述异常数据对应的冲突信息存储至数据库。

可选的,在利用detect算子对所述目标数据集进行检测,得到异常数据之后,还包括:

对所述异常数据进行修复,生成修复提示信息,并将所述修复提示信息存储至所述数据库。

第二方面,本申请公开了一种时序数据的异常检测的装置,包括:

创建模块,用于在spark平台下,根据异常检测规则,创建detect算子;

转化模块,用于当在所述spark平台下获取到输入的数据流后,对所述数据流进行预处理,得到目标数据集;

检测模块,用于利用所述detect算子对所述目标数据集进行检测,得到异常数据。

第三方面,本申请公开了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述时序数据的异常检测方法的步骤。

第四方面,本申请公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述时序数据的异常检测方法的步骤。

本申请提供一种时序数据的异常检测方法,包括:在spark平台下,根据异常检测规则,创建detect算子;当在所述spark平台下获取到输入的数据流后,对所述数据流进行预处理,得到目标数据集;利用所述detect算子对所述目标数据集进行检测,得到异常数据。

可见,本申请利用spark平台获取用户输入的数据流,并利用存储的detect算子进行检测得到异常数据,即可以实现在spark平台下获取用户输入的数据流并在线进行异常数据检测,避免了相关技术中只能处理离线数据集,导致不能及时的进行数据清洗,存在延迟的缺点,提高了数据清洗的效率,减少了异常检测的等待时间,提高用户体验。本申请同时还提供了一种时序数据的异常检测装置、一种电子设备和计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种时序数据的异常检测方法的流程图;

图2为本申请实施例所提供的一种具体实施例的结构示意图;

图3为本申请实施例提供的一种时序数据的异常检测装置的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,关于大数据量级的数据清洗系统并不多见。现有的大数据量级的清洗系统例如BigDansing,分为异常数据检测和修复两个模块。其中,异常数据检测模块可以细分为三个层次:逻辑层、物理层和执行层。(1)逻辑层。BigDansing系统定义了五个操作符。Scope操作符能够帮助系统忽略掉与规则无关的数据,缩小目标数据的范围;Block操作符根据规则,对数据进行初步分组,定义可能发生冲突的数据组合;Iterate操作符遍历所有的分组,枚举出候选的冲突组合;Detect操作符对这些候选冲突组合进行判定,得到一系列真实的冲突;最终,GenFix操作符遍历这些冲突,并针对每一个冲突的具体情况,输出一个可能的修复方案。通过这五个操作符,BigDansing将逻辑和具体的执行完全独立,同时,也增加了系统的易用性。(2)物理层。物理层的目的是将逻辑层操作的结果具体化,并与底层的实现联系起来。除此之外,物理层的另一个重要任务就是对操作符的实现进行优化。根据不同的情况,物理层会采用不同的优化策略,从而提升整个异常数据检测过程的性能。(3)执行层。将一个物理计划转化为一个由一系列依赖于底层系统的操作构成的执行计划,例如Spark或Map-Reduce作业,并将它放在底层平台上运行。BigDansing使用这样的层次结构,具有如下优势:首先,包含五类操作符的规则抽象流程使得BigDansing能够支持各种各样的数据质量约束规则;其次,物理层采用的大量物理优化能够大幅提升BigDansing的运行性能;最后,充分利用现有的并行数据处理框架的扩展性,帮助BigDansing能够支持超大规模数量级的数据。从用户角度来说,采用这样的层次结构,也使得BigDansing系统的易用性和可用性大幅提升,用户只需要为逻辑运算符的定义提供少量的几行代码,就能享受到并行数据处理框架带来的好处。然而,BigDansing的设计模式本身存在一个缺陷:只能处理离线数据集的问题。如今,数据的规模不可能总是保持不变,甚至对于企业来说,数据量每天都在增加。而BigDansing系统处理的是离线数据集,即数据的规模不再变化,会导致不能及时的进行数据清洗,存在时间上的延误,给企业带来很多不便。

基于上述技术问题,本实施例提供一种时序数据的异常检测方法,可以实现在spark平台下在线进行异常数据检测,提高了数据清洗的效率,减少了异常检测的等待时间,具体请参考图1,图1为本申请实施例所提供的一种时序数据的异常检测方法的流程图,具体包括:

S101、在spark平台下,根据异常检测规则,创建detect算子。

可以理解的是,spark平台是基于MapReduce算法实现的分布式计算平台,具有易用性、通用性,有更快的处理速度,并且支持多种资源管理器。本实施例并不限定异常检测规则的具体内容,可以是新增的数据集与历史数据之间进行冲突检测,也可以是自身所在的数据集进行冲突检测,可根据实际情况进行设定。例如,数据集包含温度数据,那么设定的异常检测规则可以是温度数据大于38度的数据,那么大于38度的即为异常数据。可以理解的是,detect算子是根据异常检测规则进行创建的,用来检测数据集是否存在异常或冲突的,也就是根据具体的异常检测规则来编写对应的detect算子。

S102、当在spark平台下获取到输入的数据流后,对数据流进行预处理,得到目标数据集。

本实施例中当向spark平台即Spark Streaming提供数据流后,该分布式spark平台对数据流进行预处理得到目标数据集。本实施例并不限定预处理的具体过程,只要能够得到适用于分布式spark平台进行操作的数据形式即可。可以理解的是,本实施例中的目标数据集可以是输入的所有数据流处理转化得到的目标数据集,也可以是只提取感兴趣或关心的部分数据形成的目标数据集,可根据实际需求进行选取。

在一种具体的实施例中,对数据流进行预处理,得到目标数据集,可以包括:

对数据流进行切片得到RDD数据,并将RDD数据转化为DataFrame格式数据;

将DataFrame格式数据作为目标数据集。

本实施例中将输入的数据流进行切片得到RDD数据,再分别将RDD数据转换成DataFrame格式数据,以使能够执行后续的数据操作。可以理解的是,将数据流进行切片后,大数据集就会被切分成很多个小的数据集,然后转化为DataFrame格式数据,此时数据流已分布式化。相比较于相关技术中基于单机的全量式数据异常检测方式,能够有效提高数据异常检测的效率。

在一种具体的实施例中,为了有效提高检测效率和检测性能,将DataFrame格式数据作为目标数据集,可以包括:

利用输入的SQL语句,对DataFrame格式数据进行选择操作以及投影操作,得到目标数据集。

本实施例中利用用户输入的SQL语句,作用于预处理后的DataFrame格式数据,进行选择和投影操作,得到结果集即目标数据集。可以理解的是,利用SQL语句对预处理后的DataFrame格式数据进行选择和投影操作,可以提取到用户感兴趣的或关心的数据属性,避免对所有的数据流进行异常检测,再从中选取感兴趣的部分结果,导致大量不必要的异常检测带来的检测效率低下且性能变差的缺点,利用SQL语句提取感兴趣的部分,再进行异常检测,能够有效提高检测效率和检测性能。

S103、利用detect算子对目标数据集进行检测,得到异常数据。

本申请利用根据异常检测规则创建的detect算子对目标数据集进行异常检测,得到异常数据。可以理解的是,异常数据为与异常检测规则有冲突的数据。例如,某用户在某个时刻的位置信息为北京,但是该用户在该时刻的邮政编码信息与北京的邮政编码并不一致,那么就可以判定存在异常或冲突。

本实施例并不限定detect算子所对应的具体的异常检测规则,在一种具体的实施例中,利用detect算子对目标数据集进行检测,得到异常数据,可以包括:

利用detect算子,对目标数据集与spark平台存储的历史数据进行检测,得到异常数据;detect算子的异常检测规则包含目标数据集与spark平台存储的历史数据进行冲突检测。

即本实施例中当detect算子对应的异常检测规则包含目标数据集与spark平台存储的历史数据进行冲突检测的信息时,那么利用该异常检测规则对应的detect算子,对目标数据集与spark平台存储的历史数据进行检测,得到异常数据。

在一种具体的实施例中,为了更好的满足当前业务需求,在利用detect算子对目标数据集进行检测之前,还可以包括:

当异常检测规则发生变更时,根据变更后的异常检测规则,更新detect算子。

即在利用detect算子进行异常冲突检测之前,判断当前业务对应的异常检测规则发生是否需要变更,若需要变更时也就是异常检测规则发生变化时,根据变更后的异常检测规则,修改当前的detect算子即更新detect算子。可以更好的满足当前业务需求,改善用户体验。

在一种具体的实施例中,为了发挥异常数据的价值,挖掘得到更多的信息,在利用detect算子对目标数据集进行检测,得到异常数据之后,还可以包括:

将异常数据对应的冲突信息存储至数据库。

可以理解的是,当冲突检测结束得到异常数据后,还可以将异常数据所包含的信息即冲突信息存储到数据库中,可以便于后续的数据挖掘,得到更多的信息,发挥异常数据的价值。

在一种具体的实施例中,为了有效提高数据的利用率,在利用detect算子对目标数据集进行检测,得到异常数据之后,还可以包括:

对异常数据进行修复,生成修复提示信息,并将修复提示信息存储至数据库。

本实施例中得到异常数据后,对异常数据进行了修复,生成了修复提示信息;可以理解的是,对异常数据进行修复后,得到修复提示信息,本实施例并不限定修复提示信息的具体内容,可根据具体的异常数据的属性等信息进行设定。还可以理解的是,修复后的数据还可以作后续使用,能够有效的提高数据的利用率。

基于上述技术方案,本实施例利用spark平台获取用户输入的数据流,并利用存储的detect算子进行检测得到异常数据,可以实现在spark平台下获取用户输入的数据流并在线进行异常数据检测,提高了数据清洗的效率,减少了异常检测的等待时间。

以下提供一种具体的实施例。图2为本实施例所提供的一种具体实施例的结构示意图。

1、向spark平台提供数据流;

2、将输入的数据流进行切片,得到RDD数据,再分别将RDD数据转换成DataFrame格式数据;

3、用户输入SQL语句,对数据进行投影和选择操作,得到目标数据集;

4、Detect算子声明异常数据检测逻辑即异常数据检测规则,包括目标数据集与历史数据进行冲突检测;

5、利用detect算子将对异常检测规则对应的元组两两进行检测,得到异常数据和对应的冲突信息;

6、spark平台会将所有的异常数据和对应的冲突信息存入MYSQL数据库中,整个异常数据检测结束。

本实施例中用户只需要提供异常数据的过滤SQL语句和实现异常检测框架的detect算子,即可完成对大规模数据的检测。Detect算子用于指定不同元组之间的异常冲突检测逻辑/规则,由该框架提供模板,用户极易实现。

基于上述实施例,本申请采用一种特殊的数据结构即DataFrame格式数据来存储数据的关键信息,可以实现当有新数据进来时,将新数据中的关键部分和数据结构中存储的信息进行比对,以此来判断它是否和历史数据可能存在冲突,如果可能存在冲突,则将历史数据中可能存在冲突的记录取出和新数据进行异常检测。这样,系统在进行大规模量级的异常数据检测过程中,能够支持新增数据的流入并且避免在检测过程中历史数据中出现大量重复检测的情况。能够解决数据规模庞大时仍然能够对数据集进行高效地在线处理,并且针对时序数据的特点进行优化。

下面对本申请实施例提供的一种时序数据的异常检测装置进行介绍,下文描述的时序数据的异常检测装置与上文描述的时序数据的异常检测方法可相互对应参照,相关模块均设置于中,参考图3,图3为本申请实施例所提供的一种时序数据的异常检测装置的结构示意图,包括:

在一些具体的实施例中,具体包括:

创建模块301,用于在spark平台下,根据异常检测规则,创建detect算子;

转化模块302,用于当在spark平台下获取到输入的数据流后,对数据流进行预处理,得到目标数据集;

检测模块303,用于利用detect算子对目标数据集进行检测,得到异常数据。

在一些具体的实施例中,转化模块302,包括:

转换单元,用于对数据流进行切片得到RDD数据,并将RDD数据转化为DataFrame格式数据;

目标数据集单元,用于将DataFrame格式数据作为目标数据集。

在一些具体的实施例中,目标数据集单元,包括:

操作子单元,用于利用输入的SQL语句,对DataFrame格式数据进行选择操作以及投影操作,得到目标数据集。

在一些具体的实施例中,检测模块303,包括:

检测单元,用于利用detect算子,对目标数据集与spark平台存储的历史数据进行检测,得到异常数据;detect算子的异常检测规则包含目标数据集与spark平台存储的历史数据进行冲突检测。

在一些具体的实施例中,还包括:

更新模块,用于当异常检测规则发生变更时,根据变更后的异常检测规则,更新detect算子。

在一些具体的实施例中,还包括:

存储模块,用于将异常数据对应的冲突信息存储至数据库。

在一些具体的实施例中,还包括:

生成模块,用于对异常数据进行修复,生成修复提示信息,并将修复提示信息存储至数据库。

由于时序数据的异常检测装置部分的实施例与时序数据的异常检测方法部分的实施例相互对应,因此时序数据的异常检测装置部分的实施例请参见时序数据的异常检测方法部分的实施例的描述,这里暂不赘述。

下面对本申请实施例提供的一种电子设备进行介绍,下文描述的电子设备与上文描述的时序数据的异常检测方法可相互对应参照。

本申请还公开一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述时序数据的异常检测方法的步骤。

由于电子设备部分的实施例与时序数据的异常检测方法部分的实施例相互对应,因此电子设备部分的实施例请参见时序数据的异常检测方法部分的实施例的描述,这里暂不赘述。

下面对本申请实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的时序数据的异常检测方法可相互对应参照。

本申请提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述时序数据的异常检测方法的步骤。

由于计算机可读存储介质部分的实施例与时序数据的异常检测方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见时序数据的异常检测方法部分的实施例的描述,这里暂不赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种时序数据的异常检测方法、装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

相关技术
  • 一种时序数据异常检测方法、装置及电子设备和存储介质
  • 一种时序数据的异常检测方法、装置、电子设备和介质
技术分类

06120113228935