一种数据准确性的检测方法及装置与流程

文档序号:17548645发布日期:2019-04-30 18:03阅读:291来源:国知局
一种数据准确性的检测方法及装置与流程

本申请涉及数据处理领域,尤其涉及一种数据准确性的检测方法及装置。



背景技术:

目前,在许多应用场景中对结果数据的准确性具有较高要求。

例如,在视频广告场景中,需要获取基于某些时间戳产生的数据计算得到该时间戳对应的预设指标的取值。例如,需要获取对14点20分产生的大量数据计算得到的14点20分对应的曝光率值,作为用户决策向账户存入金额多少的参考。

由于所获取的某一时间戳对应的预设指标值的准确性,对用户的决策具有重大影响,因此,需要保证所获取的某一时间戳对应的预设指标值的准确性。



技术实现要素:

本申请提供了一种数据准确性的检测方法及装置,目的在于解决检测产生时间戳对应的预设指标的取值是否准确。

为了实现上述目的,本申请提供了以下技术方案:

本申请公开了一种数据准确性的检测方法,包括:

计算第一差异值,所述第一差异值为结果数据序列中当前检测时间所获取到的结果数据与前一个结果数据间的差异值;所述结果数据序列由结果数据按照所获取的时间从先到后的顺序排列得到;所述差异值为反映所述结果数据间的变化程度的参数值;

基于检测时间序列,获取在所述当前检测时间的前预设数量个检测时间分别计算得到的差异值;所述检测时间序列由检测时间按照从先到后的顺序排列得到;

在满足预设条件的情况下,确定所述当前检测时间所获取的结果数据准确。

其中,所述预设条件包括:所获取的预设数量个差异值以及所述第一差异值均小于预设阈值。

其中,所述预设条件包括:所获取的预设数量个差异值以及所述第一差异值均小于所述预设阈值,以及已生成的计算任务中不存在未执行的计算任务,所述计算任务用于对预设设备产生的数据进行至少一次计算得到至少一个计算结果;所述当前检测时间所获取的结果数据为所述至少一个计算结果中最后一次计算出的数据

其中,还包括:

在已生成的计算任务中不存在未执行的计算任务,且预设数量个差异值以及所述第一差异值未全部小于所述预设阈值的情况下,确定所述当前检测时间所获取的结果数据不准确;

在时间达到第一目标时间戳时,从所述至少一个计算结果中获取最后一次计算出的数据为结果数据,并执行所述计算第一差异值的步骤;所述第一目标时间戳为预设的多个时间戳中大于当前检测时间的最小时间戳;所述预设的多个时间戳中相邻两个时间戳间的时长为预设时长。

其中,还包括:

在已生成的计算任务中存在未执行的计算任务的情况下,确定当前检测时间所获取的结果数据不准确;

依据所述未执行的计算任务的数量以及执行一个计算任务所需的预设时长,确定完成所述未执行的计算任务所需的总时长;

确定在当前检测时间延迟所述总时长所得到的时间戳为参考时间戳;

将所述预设的多个时间戳中大于所述参考时间戳的最小时间戳,确定为第二目标时间戳;

在时间达到所述第二目标时间戳时,从所述至少一个计算结果中获取截止所述第二目标时间戳最后一次计算出的数据为结果数据,并执行所述计算第一差异值的步骤。

其中,所述当前检测时间获取的结果数据与前一个结果数据间的差异值,通过以下方式计算得到:

计算所述当前检测时间获取的结果数据与前一个结果数据间的差值;

计算所述差值与目标时长间的比值为所述差异值;所述目标时长为获取所述前一个结果数据对应的检测时间与当前检测时所对应的时长。

本申请还提供了一种数据准确性的检测装置,包括:

计算单元,用于计算第一差异值,所述第一差异值为结果数据序列中当前检测时间所获取到的结果数据与前一个结果数据间的差异值;所述结果数据序列由结果数据按照所获取的时间从先到后的顺序排列得到;所述差异值为反映所述结果数据间的变化程度的参数值;

第一获取单元,用于基于检测时间序列,获取在所述当前检测时间的前预设数量个检测时间分别计算得到的差异值;所述检测时间序列由检测时间按照从先到后的顺序排列得到;

第一确定单元,用于在满足预设条件的情况下,确定所述当前检测时间所获取的结果数据准确。

其中,所述第一确定单元中的预设条件,包括:所获取的预设数量个差异值以及所述第一差异值均小于预设阈值。

其中,所述第一确定单元中的预设条件,包括:所获取的预设数量个差异值以及所述第一差异值均小于所述预设阈值,以及已生成的计算任务中不存在未执行的计算任务,所述计算任务用于对预设设备产生的数据进行至少一次计算得到至少一个计算结果;所述当前检测时间所获取的结果数据为所述至少一个计算结果中最后一次计算出的数据。

其中,还包括:

第二确定单元,用于在已生成的计算任务中不存在未执行的计算任务,且预设数量个差异值以及所述第一差异值未全部小于所述预设阈值的情况下,确定所述当前检测时间所获取的结果数据不准确;

第二获取单元,用于在时间达到第一目标时间戳时,从所述至少一个计算结果中获取最后一次计算出的数据为结果数据,并执行所述计算第一差异值的步骤;所述第一目标时间戳为预设的多个时间戳中大于当前检测时间的最小时间戳;所述预设的多个时间戳中相邻两个时间戳间的时长为预设时长。

其中,还包括:

第三确定单元,用于在已生成的计算任务中存在未执行的计算任务的情况下,确定当前检测时间所获取的结果数据不准确;

第四确定单元,用于依据所述未执行的计算任务的数量以及执行一个计算任务所需的预设时长,确定完成所述未执行的计算任务所需的总时长;

第五确定单元,用于确定在当前检测时间延迟所述总时长所得到的时间戳为参考时间戳;

第六确定单元,用于将所述预设的多个时间戳中大于所述参考时间戳的最小时间戳,确定为第二目标时间戳;

第三获取单元,用于在时间达到所述第二目标时间戳时,从所述至少一个计算结果中获取截止所述第二目标时间戳最后一次计算出的数据为结果数据,并执行所述计算第一差异值的步骤。

其中,所述计算单元,具体用于:

计算所述当前检测时间获取的结果数据与前一个结果数据间的差值;

计算所述差值与目标时长间的比值为所述差异值;所述目标时长为获取所述前一个结果数据对应的检测时间与当前检测时所对应的时长。

本申请所述的数据准确性的检测方法及装置中,计算第一差异值,其中第一差异值为结果数据序列中当前检测时间所获取到的结果数据与前一个结果数据间的差异值;其中,结果数据序列是由结果数据按照所获取的时间从先到后的顺序排列得到;基于检测时间序列,获取在当前检测时间的前预设数量个检测时间分别计算得到的差异值,此时,得到以当前检测时间为起点,按照检测时间从后到前的顺序的多个检测时间分别获取的差异值,即得到包含当前检测时间获取的差异值在内的与连续的多个差异值,由于差异值反映的是结果数据间的变化程度的参数,因此,本领域技术人员可以基于所获取的多个差异值,确定当前检测时间所获取的结果数据是否准确。

附图说明

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

图1为本申请提供的一种数据准确性的检测装置的应用场景示例图;

图2为本申请提供的一种产生时间戳对应的预设指标的取值的计算方法实施例的流程图;

图3为本申请提供的一种检测计算任务是否存在堆积的方法实施例的流程图;

图4为本申请提供的一种检测目标产生时间戳对应的预设指标的最新取值是否准确的方法实施例的流程图;

图5为本申请提供的又一种检测目标产生时间戳对应的预设指标的最新取值是否准确的方法实施例的流程图;

图6为本申请实施例提供的一种数据准确性的检测装置实施例的结构示意图。

具体实施方式

发明人在研究中发现,用于计算某一时间戳对应的预设指标的取值所基于的数据的数量是非常大的,所以基于这些数据需要进行多次计算才能得到该预设指标的最终取值。但是,在得到预设指标的最终取值的过程中,还得到了预设指标对应的一些中间值,如果获取的该时间戳对应的预设指标值是该时间戳对应的预设指标的一个中间值,使得基于所获取的预设指标的中间值导致错误的决策。

图1为本申请的数据准确性的检测装置的应用场景示例图,图1中包括广告日志服务器和数据准确性的检测装置。其中,广告日志服务器产生广告日志数据流;数据准确性检测装置,用于检测广告日志数据流中任一产生时间戳对应的预设指标的最新取值是否准确。

在图1中的数据准确性检测装置可以集成在广告日志服务器,也可以独立设置。

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

图2为本申请提供的一种产生时间戳对应的预设指标的取值的计算方法,包括以下步骤:

s201、对消息队列中的数据进行解析,得到解析后的多条数据。

在本实施例中,数据产生者将所产生的数据实时传输到消息队列,使得后续数据处理装置从消息队列中提取数据并对所提取的数据进行处理。其中,数据产生者为产生数据的设备,例如,日志服务器。

以日志服务器产生广告日志为例,将所产生的广告日志输出至消息队列,后续数据处理装置从消息队列中提取广告日志并对所提取的广告日志进行解析计算等处理。

在本实施例中,消息队列的使用使得从产生数据到处理数据的过程是实时的,即数据产生者产生数据后就可以将所产生的数据传输至消息队列,然后,只要消息队列中存在数据数据处理装置就可以对消息队列中的数据进行处理,无需数据产生者将数据都产生完成后,数据处理装置才能对所产生的所有数据进行后续处理,进而保证了数据从产生到处理的过程的实时性。

在本步骤中,对消息队列中的数据进行解析,得到解析后的多条数据,其中,解析后的每条数据都对应有该条数据的产生时间戳。其中,任意一条数据的产生时间戳指该条数据产生的时刻;例如,广告日志服务器在14点30分23秒时产生的1万条数据,此时,该1万条数据的产生时间戳就是14点30分23秒。

在本实施例中,对消息队列中的数据进行解析的过程,可以采用分布式的方式进行解析,例如,可以采用多个处理器同时对消息队列中的数据进行解析。

s202、按照产生时间戳的先后顺序,将解析出的多条数据中的预设数量条数据进行保存。

为了方便后续确定待检测预设指标的取值准确性的产生时间戳,在本实施例中,按照产生时间戳的先后顺序,从解析出的多条数据中将预设数量条的数据进行保存。具体的,可以保存在日志延迟表。

本实施例中,由于对消息队列中的数据进行解析的过程可以采用分布式的方式进行处理。例如,对于任意一个处理器解析数据后,都需要执行本步骤的动作。

需要说明的是,在s201对消息队列中的数据进行解析后得到多条解析数据,对于s201得到的解析后的数据,s202与s203这两个步骤是可以并行执行的。

s203、依据解析后的数据计算预设指标的取值,并按照计算的先后顺序保存计算得到的预设指标的取值。

在本步骤中,预设指标可以由技术人员根据实际情况进行确定,本实施例不对预设指标作限定。对解析后的数据中的哪些内容计算预设指标的取值,以及如何计算预设指标的取值的过程为现有技术,这里不再赘述。

在本实施例中,由于一个产生时间戳对应很多条数据,因此,对一个产生时间戳对应的数据计算预设指标的取值的过程,可能需要进行多次计算才能得到该产生时间戳对应的预设指标的最终取值。在本步骤中,按照计算的先后顺序,保存产生时间戳对应的预设指标在每次的计算结果,即从时间的角度,所保存的计算结果的个数是依次增加的。其中,每次的计算结果包括:数据的产生时间戳、本次计算的预设指标(例如,曝光率)、本次计算得到的预设指标的取值(例如,曝光率值)等。

在本实施例中,针对任意一个产生时间戳对应的数据计算预设指标的取值的过程中,每个计算指标对应一套用于对数据进行计算的预设逻辑。其中,将对任意一个产生时间戳对应的数据计算预设指标的取值的过程,被生成多个计算任务,在执行计算任务的过程可能会出现故障,使得已生成的计算任务实际却未执行,为了描述方便,本实施例将已生成却未执行的计算任务称为堆积的计算任务。

需要说明的是,上述s201~s203是对消息队列中的数据进行解析计算的过程,下面的s301~s303是对计算任务状态的检测过程,在本实施例中,解析计算的过程与计算任务状态的检测的过程是并行执行。

具体的,图3为本申请公开的一种检测计算任务是否存在堆积的方法,包括以下步骤:

s301、每隔预设时长,检测是否存在堆积的计算任务,如果存在,则执行s302,否则,执行s301。

在本实施例中,在对解析后的数据进行计算过程中,会存在一个界面,如果存在堆积的计算任务,在该界面中会显示当前所堆积的计算任务的数量。对于显示在界面中的堆积的计算任务是如何确定出来的是现有技术,这里不再赘述。

在本步骤中,检测是否存在堆积的计算任务,可以通过爬虫技术从显示当前堆积的计算任务的界面中爬取到当前堆积的计算任务,如果爬取到当前堆积的计算任务的数量不为零,则表示当前存在堆积的计算任务;否则,如果爬取到当前堆积的计算任务的数量为零,则表示当前不存在堆积的计算任务。

s302、确定完成堆积的计算任务所需的时长为延迟时长。

在本步骤中,对于每个计算任务都对应有一个预设计算时长,因此,将堆积的计算任务的总数量与预设计算时长的乘积,就是完成堆积的计算任务所需的时长,为了描述方便,将所计算出的时长称为延迟时长。

s303、保存计算任务状态和数据延迟,并返回执行s301。

在本实施例中,计算任务状态包括堆积状态与正常状态,如果存在堆积的计算任务,则计算任务状态为堆积状态,如果不存在堆积的计算任务,则计算任务状态为正常状态。每隔预设时长检测一次计算任务状态,在本步骤中,将检测到的计算任务状态与延迟时长进行保存。

上述的s201~s203以及s301~s303是为本申请中进行产生时间戳对应的预设指标的取值是否准确做基础,即任意一个产生时间戳对应的预设指标的取值是否准确的检测,需要基于s201~s203以及s301~s303所得到的结果进行检测。

需要说明的是,上述s201~s203计算产生时间戳对应的预设指标的取值的过程、上述s301~s303对计算任务的检测过程,以及产生时间戳对应的预设指标的取值是否准确的检测过程这三个过程是并行执行的。

针对产生时间戳对应的预设指标的取值是否准确的检测过程在以下进行介绍。

由于对数据产生者产生的各产生时间戳对应的数据进行解析与计算的过程,是按照产生时间戳的先后顺序依次进行的,因此,各产生时间戳对应的预设指标的最新取值准确的时间也是具有先后顺序的,即靠前的产生时间戳对应的预设指标的最新取值也是先达到准确的。

例如,数据产生者产生的数据的产生时间戳依次为14点23分30秒、14点23分31秒和14点23分32秒,对应的预设指标的最新取值达到准确的先后顺序也是14点23分30秒、14点23分31秒和14点23分32秒。

即在14点23分30秒对应的预设指标的最新取值没有达到准确的时候,14点23分31秒和14点23分32秒分别对应的预设指标的最新取值也不会达到准确,因此,如果检测14点23分30秒对应的预设指标的最新取值是否准确的同时,检测14点23分31秒和14点23分32秒分别对应的预设指标的最新取值是否准确,降低检测效率。

因此,在本实施例中,为了提高检测效率,通过检测滑动时间窗口内的各产生时间戳对应的预设指标的取值是否准确的方式,依次检测数据产生者依次产生的各产生时间戳对应的预设指标的最新取值是否准确。

其中,滑动时间窗口指从起始时间点到结束时间点所构成的时间范围。其中,在本本实施中,起始时间点为对应的预设指标的取值未准确的产生时间戳中的最小产生时间戳,结束时间点为上述得到的日志延迟表中大于等于起始时间点的任意一个产生时间戳。

例如,当前未准确的产生时间戳中的最小时间戳为15点20分25秒,日志延迟表中的产生时间戳分别为15点20分26秒、15点20分27秒、15点20分28秒和15点20分29秒,则结束时间点可以为日志延迟表中的这四个产生时间戳中的任意一个产生时间戳。

在本步骤中,需要对检测滑动时间窗口所包含的各产生时间戳对应的预设指标的取值是否准确。例如,滑动时间窗口内包括3个产生时间戳,在本步骤中,需要检测该3个产生时间戳对应的预设指标的取值是否准确。

在本实施例中,对于滑动时间窗口内的任意一个产生时间戳,检测该产生时间戳对应的预设指标的取值是否准确的过程是相同的,为了方便介绍,本实施例以滑动时间窗口内的任意一个产生时间戳(目标产生时间戳)为例,介绍检测该产生时间戳对应的预设指标的取值是否准确的过程。

具体的,图4为本申请实施例公开了一种检测目标产生时间戳对应的预设指标的最新取值是否准确的方法。

该检测过程是一个循环执行的过程,在达到以预设检测时长为间隔的多个检测时间中的一个检测时间时,触发执行一次检测过程,直至在某次执行检测过程中判断出满足预设条件时,则表示该目标产生时间戳对应的预设指标的取值已准确。

其中,每次检测过程都对应一个检测时间,每次检测过程中都需要获取预设指标的取值(计算结果)中的最后一次计算出的预设指标的取值,即获取预设指标的最新取值,为了描述方便,将每次检测过程中所获取的计算结果称为结果数据。

由于本实施例是一个循环执行的过程,为了描述方便,将按照从先到后的检测时间排列得到的序列称为检测时间序列,将按照检测时间从先到后所获取的结果数据排列得到的序列称为结果数据序列。

具体的,可以包括以下步骤:

s401、在达到目标检测时间时,从结果数据表中获取目标产生时间戳对应的预设指标的最新取值。

在本实施例中,为了描述方便,将滑动时间窗口中的任意一个产生时间戳称为目标产生时间戳。在本步骤中,目标检测时间的初始值为以预设检测时长为间隔的多个检测时间中的第一个检测时间,该第一个检测时间可以由用户设定。

在本实施例中,由于结果数据表中按照计算的先后顺序记录了预设指标在每次计算得到的取值(计算结果),在本步骤中,从结果数据表中获取目标产生时间戳对应的预设指标的最新取值。

由于计算预设指标的取值的计算过程包括至少一次计算,每次计算得到一个计算结果,并且,预设指标的取值的计算过程与本实施例的数据准确性的检测过程是相独立的过程。因此,在本步骤中,所获取的预设指标的最新取值是截止当前检测时间最后一次所计算出的取值,为了描述方便,将所获取的预设指标的最新取值称为结果数据,即当前检测时间所获取的结果数据。

s402、计算本次获取的预设指标的最新取值上一次所获取的预设指标的最新取值间的差异值,得到第一差异值。

在本实施例中,本次是指当前检测时间,上一次是指历史检测时间中与当前检测时间相邻的检测时间。如果本实施例是第一次执行,则不存在上一次,即上一次所获取的预设指标的最新取值为空。

在本步骤中,差异反映的是相邻两次获取的预设指标的最新取值间的变化程度。具体的,差异值可以为差值或者变化率,其中,差值为本次获取的预设指标的最新取值与上一次获取的预设指标的最新取值间的差值;变化率为差值与本次获取与上一次获取的时间间隔的比值。当然,在实际应用中,差异还可以为其他内容,本实施例不对差异的具体内容作限定,只要差异可以反映相邻两次获取的目标产生时间戳对应的预设指标的最新取值间的变化程度即可。

为了描述方便,将本次获取的预设指标的最新取值与上次获取的预设指标的最新取值间的差异值称为第一差异值。

s403、基于检测时间序列,获取在当前检测时间的前预设数量个检测时间分别计算得到的差异值。

在本步骤是第一次执行时,在当前检测时间的前预设数量个检测时间分别计算得到的差异值为空。

s404、判断是否满足预设条件,如果满足,则执行s405,如果不满足,则执行s406。

在本步骤中,预设条件包括:第一差异值与所获取的预设数量个差异值都小于预设阈值,其中,预设阈值为同一个数值。

如果本步骤是第一次执行,则只存在一个差异,该差异就是第一差异值,所获取的差异值为空。可以将所获取的差异值看作无限大,此时,第一次执行本步骤时,判断结果一定为不满足预设条件。

需要说明的是,本步骤中的预设条件只是一种实现方式,在实际中,本领域技术人员可以根据实际情况确定预设条件的具体内容。

s405、确定目标产生时间戳对应的预设指标的最新取值已准确。

在本步骤中,确定目标产生时间戳对应的预设指标的最新取值已准确。

s406、确定目标产生时间戳对应的预设指标的最新取值不准确。

在本步骤中,确定目标产生时间戳对应的预设指标最新取值是不准确的。

s407、更新目标检测时间。

在本实施例中,检测目标产生时间戳对应的预设指标的最新取值是否准确是循环进行的,循环间隔为预设检测时长,即检测时间是按照预设检测时长分布。例如,预设检测时长为一分钟,检测时间依次为14点30分、14点31分、14点32分……。

在本步骤中,目标检测时间为预设的多个时间戳中大于当前检测时间的最小时间戳,其中,当前检测时间即为本次执行过程中达到s401中的目标检测时间。例如,本次执行过程中s401中的目标检测时间为14点30分,则在本步骤中,目标检测时间为14点31分,使得在时间达到14点31分时,继续执行s401。

由于在实际中计算预设指标的取值过程可能出现故障,造成计算任务产生堆积,在计算任务产生堆积时,在s404中判断出所获取的预设数量个差异值以及所述第一差异值均小于预设阈值,但是,对于该目标产生时间戳对应的数据计算预设指标的取值的过程,该目标产生时间戳对应的数据中还存在未计算的数据,即当前所得到的预设指标的最新取值不是该产生时间戳对应的所有数据的最终计算结果;但是,依据s404判断出满足预设条件,即该目标产生时间戳对应的预设指标的最新取值已经准确;因此,对该目标产生时间戳对应的预设指标的最新取值已准确这一检测结果的准确性较低。

为了提高对于该目标产生时间戳对应的预设指标的最新取值已准确的检测结果的准确性,检测目标产生时间戳对应的预设指标的最新取值是否准确的过程,如图5所示。

在该检测过程中,每次执行过程中,预设条件中除了包括所获取的预设数量个差异值以及所述第一差异值均小于预设阈值之外,还包括已生成的计算任务中不存在未执行的计算任务。即在某个检测时间,在所获取的预设数量个差异值以及第一差异值均小于预设阈值,并且已生成的计算任务中不存在未执行的计算任务,则目标产生时间戳对应的预设指标的最新取值在该检测时间准确,否则,确定该目标产生时间戳对应的预设指标的最新取值在该检测时间不准确,在达到目标检测时间时,继续按照上述思路执行,直至满足该预设条件时,则确定该目标产生时间戳对应的预设指标的最新取值准确。

具体的,该过程可以包括以下步骤:

s501、在达到目标检测时间时,从结果数据表中获取目标产生时间戳对应的预设指标的最新取值。

s502、计算本次获取的预设指标的最新取值与上一次所获取的预设指标的最新取值间的差异值,得到第一差异值。

s503、基于检测时间序列,获取在当前检测时间的前预设数量个检测时间分别计算得到的差异值。

s501~s503的实施细节与图4对应的s401~s403相同,这里不再赘述。

s504、判断是否满足预设条件,如果满足,则执行s505,如果不满足,则执行s506。

在本步骤中,预设条件包括:所获取的预设数量个差异值以及第一差异值均小于预设阈值,并且已生成的计算任务中不存在未执行的计算任务。

如果不满足预设条件的情况包括:

第一种情况:已生成的计算任务中存在未执行的计算任务;

第二种情况:已生成的计算任务中不存在未执行的计算任务,且所获取的预设数量个差异值以及第一差异值未全部小于预设阈值。

s505、确定目标产生时间戳对应的预设指标的最新取值已准确。

s506、确定目标产生时间戳对应的预设指标的最新取值不准确。

s506、更新目标检测时间。

在本步骤中,如果已生成的计算任务中不存在未执行的计算任务,但是所获取的预设数量个差异值以及第一差异值未全部小于预设阈值,则下一次触发检测过程的检测时间为按照预设检测时长分布的多个检测时间中,大于当前检测时间的最小时间戳。例如,当前检测时间为14点30分,预设检测时长为1分钟,则目标检测时间为14点31分。为了描述方便,将已生成的计算任务中不存在未执行的计算任务,且所获取的预设数量个差异值以及第一差异值未全部小于预设阈值这种情况下,所确定出的检测时间称为第一目标检测时间,将该第一目标检测时间作为目标检测时间。

如果已生成的计算任务中存在未执行的计算任务,即本次执行过程中获取的预设指标的最新取值可能是上次执行过程中获取的预设指标的最新取值,因此,即使所获取的预设数量个差异值以及第一差异值均小于预设阈值,也不能确保目标产生时间戳对应的预设指标的最新取值已准确。

由于可以确定出延迟时长,即在该延迟时长后堆积的计算任务才能计算完成,因此,确定触发下一次检测的检测时间为预设的多个检测时间戳中,从当前检测时间向后推迟该延迟时长后的最小时间戳,为了描述方便,将所确定出的检测时间称为第二目标检测时间,将该第二目标检测时间作为目标检测时间,在达到该目标检测时间时继续执行检测过程。

具体的,确定触发下一次检测过程的检测时间的确定方式包括:

a1、计算当前检测时间延迟该延迟时长后的时间点为参考时间戳。

a2、从以预设检测时长分布的多个检测时间中,确定大于参考时间戳的最小时间戳为第二目标检测时间。

例如,当前检测时间为14点30分,检测时长为2分钟,延迟时长为3分钟,则第二目标检测时间为14点34分。

有益效果:在本实施例中,对消息队列中数据产生者产生的数据进行解析,以及对任一产生时间戳对应的解析后的数据依次进行计算,得到该产生时间戳对应的预设指标的多个取值;基于该产生时间戳对应的预设指标的取值,检测该产生时间戳对应的预设指标的最新取值是否准确。具体的,通过循环的检测过程,在每次检测过程中,获取产生时间戳对应的预设指标的最新取值,基于所获取的最新取值确定第一差异值,判断该产生时间戳对应的预设指标的最新取值是否准确。

其中,判断预设指标最新取值是否准确的一种方式可以包括:所获取的预设数量个差异值以及第一差异值均小于预设阈值。

在实际中,在计算产生时间戳对应的预设指标的取值的过程的程序出现故障中,使得已生成的计算任务中存在未执行的计算任务,使得产生了堆积的计算任务,此时,由于程序故障导致在多次检测过程中所多次获取的预设指标的最新取值是同一个中间值,此时,判断出所获取的预设数量个差异值以及第一差异值均小于预设阈值,但是预设指标的最新取值并不准确。为了提高预设指标的最新取值准确的检测结果的准确性,本实施例除了判断所获取的预设数量个差异值以及第一差异值均小于预设阈值外,同时还判断已生成的计算任务中是否存在未执行的计算任务,只有在所获取的预设数量个差异值以及所述第一差异值均小于预设阈值,并且,已生成的计算任务中不存在未执行的计算任务时,确定该产生时间戳对应的预设指标的最新取值已准确,此时,该检测结果具有较高的准确性。

为了提高检测效率,当已生成的计算任务中存在未执行的计算任务时,计算该未执行的计算任务所需的总时长,并在当前检测时间延迟该总时长后的第二目标检测时间进行下一次检测过程。

图6为本申请公开的一种数据准确性的检测装置,包括:

计算单元601,用于计算第一差异值,所述第一差异值为结果数据序列中当前检测时间所获取到的结果数据与前一个结果数据间的差异值;所述结果数据序列由结果数据按照所获取的时间从先到后的顺序排列得到;所述差异值为反映所述结果数据间的变化程度的参数值;

第一获取单元602,用于基于检测时间序列,获取在所述当前检测时间的前预设数量个检测时间分别计算得到的差异值;所述检测时间序列由检测时间按照从先到后的顺序排列得到;

第一确定单元603,用于在满足预设条件的情况下,确定所述当前检测时间所获取的结果数据准确。

其中,所述第一确定单元603中的预设条件,包括:所获取的预设数量个差异值以及所述第一差异值均小于预设阈值。

其中,所述第一确定单元603中的预设条件,包括:所获取的预设数量个差异值以及所述第一差异值均小于所述预设阈值,以及已生成的计算任务中不存在未执行的计算任务,所述计算任务用于对预设设备产生的数据进行至少一次计算得到至少一个计算结果;所述当前检测时间所获取的结果数据为所述至少一个计算结果中最后一次计算出的数据。

其中,还包括:

第二确定单元,用于在已生成的计算任务中不存在未执行的计算任务,且预设数量个差异值以及所述第一差异值未全部小于所述预设阈值的情况下,确定所述当前检测时间所获取的结果数据不准确;

第二获取单元,用于在时间达到第一目标时间戳时,从所述至少一个计算结果中获取最后一次计算出的数据为结果数据,并执行所述计算第一差异值的步骤;所述第一目标时间戳为预设的多个时间戳中大于当前检测时间的最小时间戳;所述预设的多个时间戳中相邻两个时间戳间的时长为预设时长。

其中,还包括:

第三确定单元,用于在已生成的计算任务中存在未执行的计算任务的情况下,确定当前检测时间所获取的结果数据不准确;

第四确定单元,用于依据所述未执行的计算任务的数量以及执行一个计算任务所需的预设时长,确定完成所述未执行的计算任务所需的总时长;

第五确定单元,用于确定在当前检测时间延迟所述总时长所得到的时间戳为参考时间戳;

第六确定单元,用于将所述预设的多个时间戳中大于所述参考时间戳的最小时间戳,确定为第二目标时间戳;

第三获取单元,用于在时间达到所述第二目标时间戳时,从所述至少一个计算结果中获取截止所述第二目标时间戳最后一次计算出的数据为结果数据,并执行所述计算第一差异值的步骤。

其中,所述计算单元601,具体用于:

计算所述当前检测时间获取的结果数据与前一个结果数据间的差值;

计算所述差值与目标时长间的比值为所述差异值;所述目标时长为获取所述前一个结果数据对应的检测时间与当前检测时所对应的时长。

本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1