实时任务的数据校准方法及装置与流程

文档序号:14426605阅读:321来源:国知局

本发明涉及实时数据计算技术领域,特别是涉及一种实时任务的数据校准方法及装置。



背景技术:

随着现代商业和信息化的发展,对于数据的计算处理要求,例如数据处理速度、处理规模以及处理的精度等方面,都在逐步提高。对于互联网+商业的场合,例如商场或者网站等,通常会需要及时掌握用户量、交易量、偏好数据或者点击量等关键数据情况,以便及时进行决策调整。为了获得及时的关键数据反馈,主流的技术是通过实时任务系统,例如storm(分布式实时平台)流计算框架进行实时计算,以得到所需的关键数据反馈。然而,传统的实时任务系统中的数据由于存在短暂的延时性,以及计算框架可能出现任务崩溃的异常,从而,得到实际计算结果存在偏差。



技术实现要素:

基于上述分析,有必要针对传统的实时任务系统所得实际计算结果存在偏差的问题,提供一种实时任务的数据校准方法以及一种实时任务的数据校准装置。

本发明实施例提供一种实时任务的数据校准方法,包括步骤:

对实时任务的多个历史实时数据进行分时间段的离线计算,得到与各时间段对应的离线计算结果;

根据所述离线计算结果,对所述实时任务在当前时间段内的实时数据结果进行校准处理,得到所述实时任务在当前时间段内的展示数据结果。

在其中一个实施例中,根据所述离线计算结果,对所述实时任务在当前时间段内的实时数据结果进行校准处理,得到所述实时任务在当前时间段内的展示数据结果的步骤前,还包括步骤:

根据所述当前时间段内的实时数据结果,确定所述实时任务的执行状态;

根据所述执行状态确定所述校准处理的预定方案;其中,所述预定方案包括结合处理或数据预测模拟处理。

在其中一个实施例中,所述展示数据结果包括校准数据结果;

根据所述离线计算结果,对所述实时任务在当前时间段内的实时数据结果进行校准处理,得到所述实时任务在当前时间段内的展示数据结果的步骤中,包括:

在确定所述实时任务的执行状态为正常状态时,对上一时间段的所述离线计算结果与所述当前时间段内的实时数据结果进行结合处理,得到所述校准数据结果。

在其中一个实施例中,所述结合处理包括指标直接加和处理或指标净值加和处理。

在其中一个实施例中,所述展示数据结果包括模拟数据结果;

根据所述离线计算结果,对所述实时任务在当前时间段内的实时数据结果进行校准处理,得到所述实时任务在当前时间段内的展示数据结果的步骤中,还包括:

获取所述当前时间段前的各时间段校准后的所述实时数据结果;其中,校准后的所述实时数据结果为根据所述各时间段对应的离线计算结果,对对应的所述各时间段内的所述实时数据结果进行校准,得到校准后的所述实时数据结果;

在确定所述实时任务的执行状态为异常状态时,根据各校准后的所述实时数据结果进行数据预测模拟处理,得到所述模拟数据结果。

在其中一个实施例中,所述时间段的时长大于或等于15分钟。

本发明实施例还提供一种实时任务的数据校准装置,包括:

离线计算模块,用于对实时任务的多个历史实时数据进行分时间段的离线计算,得到与各时间段对应的离线计算结果;

校准处理模块,用于根据所述离线计算结果,对所述实时任务在当前时间段内的实时数据结果进行校准处理,得到所述实时任务在当前时间段内的展示数据结果。

在其中一个实施例中,所述的实时任务的数据校准装置还包括任务状态确定模块,用于根据所述当前时间段内的实时数据结果,确定所述实时任务的执行状态;

处理方案确定模块,用于根据所述执行状态确定所述校准处理的预定方案;其中,所述预定方案包括结合处理或数据预测模拟处理。

本发明实施例还提供一种计算机设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的实时任务的数据校准方法的步骤。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的实时任务的数据校准方法的步骤。

上述技术方案中的一个技术方案具有如下优点和有益效果:

通过对实时任务在当前时间段之前的历史实时数据进行分时间段的离线计算处理,得到对应各时间段的离线计算结果;调用离线计算结果对当前时间段内的实时数据结果进行校准处理得到实时任务用于当前时间段的展示数据结果。本发明实施例解决了传统的实时任务系统所得实际计算结果存在偏差的问题,达到使实时展示结果更准确的效果,从而更好地改善了用户体验。

附图说明

图1为本发明一个实施例的实时任务的数据校准方法流程示意图;

图2为本发明另一个实施例的实时任务的数据校准方法流程示意图;

图3为本发明另一个实施例的实时任务的数据校准方法具体流程示意图;

图4为本发明一个实施例的实时任务的数据校准装置的模块结构示意图。

具体实施方式

下面结合附图对本发明的实时任务的数据校准方法及装置的具体实施方式作详细的描述。附图中给出了本发明的首选实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本发明的公开内容更加透彻全面。

实时计算,是针对用户想要获取实时性的关键信息,例如商场当前人流量、网站当前浏览量、购物网站某件商品的当前点击量等信息,以针对性地制定营销策略的需求发展而来的一种数据实时计算处理方式。实时计算的基本要求是其实时性。在海量数据的今天,对实时数据进行展示的需求面临着更大的挑战,以往的单机实时数据计算技术已无力应对。随着分布式技术的快速发展,分布式实时数据计算技术越来越受到重视。相应的出现了多种实时分布式计算框架。其中具有代表性的便是发展较早且应用广泛的storm流计算框架。

storm流计算框架本身传递真实的数据流,利用备份和确认字符(ack)回复确认机制,保证每一条流入的数据都能被处理到。实现本发明的过程中,发明人发现,在基于storm流计算框架建立的实时任务系统中,一方面,数据从分布式发布订阅消息系统(kafka)流入到storm流计算框架中有极短暂的延迟,程序执行过程中对时间字段进行判断时,例如精确到1小时的时间字段判断,会有部分数据由于延迟被误判过滤掉;随着时间的推移,由此造成的计算偏差会被放大。另一方面实时计算任务可能会出现异常崩溃,异常后流入的实时数据都无法被计算,而导致异常时间下的实时数据无线正常展示。因此实际统计的实时数据与真实值会存在偏差,偏差随时间的不断增大将会影响到用户体验。

请参阅图1,为解决上述传统的实时任务系统所得实际计算结果存在偏差的技术问题,本发明实施例提供一种实时任务的数据校准方法,包括以下步骤:

s12,对实时任务的多个历史实时数据进行分时间段的离线计算,得到与各时间段对应的离线计算结果。

其中,历史实时数据可以是实时任务执行到当前时间段之前、所有已经过实时计算过程的实时数据,是相对与当前时间段而言的。时间段的时长可以根据为获得一个时间段的离线计算结果而进行离线计算所需要的时长来设定。例如,对一个预定时长的时间段内的历史实时数据进行离线计算,而且要求所得的离线计算结果的精度达到一定级别,则前述离线计算过程进行到刚好得到所需的离线计算结果即止。如此,可以该离线计算过程全部所需的时长设定为上述时间段的时长。时间段的时长例如可以是1小时。可以理解,在同一个实时任务系统中,各个时间段的时长可以是相同的。

可选的,分时间段的方式可以例如是:以时间轴的方式,以1小时为单位,将截至当前时刻之前的1小时时长定为当前时间段t0,则当前之间段t0的上一个时间段为t-1,上一个时间段t-1的再上一个时间段则为t-2,以此类推。如此,实时任务系统可以在t-1时间段的结束时刻,开始对t-1时间段内的所有历史实时数据进行离线结算;到当前时间段t0的结束时刻,针对t-1时间段的离线计算结束并得到t-1时间段的离线结算结果。如此,对于所有其他时间段均可以作相同同理理解。

具体的,实时任务在执行过程中,实时任务系统可以对经过storm流计算框架持续输出的实时数据按时间段划分,并且在任一个时间段结束时,即对该时间段内的所有实时数据进行离线计算,得到一个对应于该时间段的离线计算结果。可以理解,经过storm流计算框架持续输出的一个时间段内的实时数据,可以对应着多个实时数据的计算结果,也即实时数据结果。如此,在整个实时任务开始之后,对每一个时间段的实时数据均进行对应的离线计算,得到各个时间段对应的离线计算结果。

在其中一个可选的实施例中,时间段的时长可以是大于或等于15分钟,小于15分钟或者小于10分钟将由于时长过短,导致离线计算没有足够的时间完成而大大降低计算精度,不利于后续的数据校准。但计算任务较为简单、数据量较少或计算精度要求较低的情况,可以设定到小于15分钟的时长,也即是说,本实施例仅是提供可选的实施例,而非唯一设定方式;因此,时间段的时长可以根据为获得一个时间段的合理离线计算结果而进行离线计算所需要的时长,来具体设定在15分钟以上的时长。时间段的时长优选的是1小时,如此,可以较小实时任务随着时间而累计的实时计算误差且确保每一时间段的离线计算过程可以有足够时间完成。

s14,根据离线计算结果,对实时任务在当前时间段内的实时数据结果进行校准处理,得到实时任务在当前时间段内的展示数据结果。

其中,校准处理可以是:对上一个时间段对应的一个离线计算结果与当前时间段内的各实时数据结果进行数据加和,得到校准数据结果的校准处理。校准处理也可以是:根据当前时间段之前的、两个或两个以上的连续无数据异常历史时间段对应的、两个或两个以上的离线计算结果,进行数据预测和模拟,得到一个最接近当前时间段内各应有实时数据结果的模拟数据结果。展示数据结果可以是当前时间段的展示给用户的实时数据结果,可以包括前述的校准数据结果和模拟数据结果。

具体的,实时任务系统可以根据上一个时间段的一个离线计算结果对当前时间段内的实时数据结果进行校准处理,得到实时任务在当前时间段内的展示数据结果。实时任务系统也可以是根据当前时间段之前的两个或者两个以上的离线计算结果进行数据预测和模拟,得到实时任务在当前时间段内较准确的展示数据结果。

如此,实时任务系统通过对storm流计算框架输出的历史实时数据进行分时间段的离线计算处理,得到对应各时间段的离线计算结果;调用离线计算结果对当前时间段内的实时数据结果进行校准处理得到实时任务用于当前时间段的展示数据结果,解决了传统的实时任务系统所得实际计算结果存在偏差的问题,达到了使实时展示结果更准确的效果,大幅提升实时任务的容错性能,更好地改善了用户体验。

请参阅图2,在一个实施例中,步骤s14之前,还可以包括步骤:

s13,根据当前时间段内的实时数据结果,确定实时任务的执行状态。

其中,实时任务的执行状态可以是实时数据结果存在偏差但仍可以有实时数据结果展示给用户的展示正常状态,也可以是当前时间段的实时计算任务出现异常崩溃,导致当前时间段内没有实时数据展示给用户的展示异常状态。

可以理解,实时任务系统可以在对当前时间段内的实时数据结果进行校准处理之前,根据当前时间段内的实时数据结果确定实时任务的执行状态。例如,在当前时间段内,当storm流计算框架有输出当前时间段内的实时数据结果时,确定实时任务的执行状态为正常状态。在当前时间段内,当storm流计算框架没有输出当前时间段内的实时数据结果时,确定实时任务的执行状态为异常状态。如此,实时任务系统通过预判实时任务的执行状态,可以有效地针对不同状态下的当前时间段内的实时数据结果进行校准处理,节省系统开支和提高校准效率。

s135,根据执行状态确定校准处理的预定方案。

其中,预定方案可以是上述实施例中的结合处理或数据预测及模拟处理。

具体的,实时任务可以在确定实时任务的执行状态后,根据执行状态调用预存在系统中的预定方案来进行所需的校准处理,如此,针对不同的执行状态调用适合的校准处理的具体预定方案,可以节省系统开销和提高数据校准效率。

请参阅图3,在其中一个实施例中,具体的,对于步骤s14,可以包括步骤:

s142,在确定实时任务的执行状态为正常状态时,对上一时间段的离线计算结果与当前时间段内的实时数据结果进行结合处理,得到校准数据结果。

其中,结合处理可以是指标直接加和处理或指标净值加和处理。例如,对于网站的启动次数指标,可以对前后时间段内的启动次数指标直接加和处理,得到的结果即是校准后的启动次数数据。又例如,对于网站的活跃用户数量指标,通常直接加和会产生重复计算,因此可以利用bloomfilter(二进制向量数据结构)算法,判断活跃用户在数据结构服务器(redis)中的活跃用户集合在当天内是否已经存在。若不存在则进行计算并追加到当天活跃用户集合中,从而实现对活跃用户数量指标进行净值加和处理。

具体的,实时任务系统在确定实时任务的执行状态为正常状态时,调用上一时间段的离线计算结果,并将上一时间段的离线计算结果与当前时间段内的实时数据结果进行结合处理,得到校准数据结果。如此,通过结合处理,可以大大提高展示给用户的数据结果的准确度。

在另一个实施例中,具体的,对于步骤s14,还可以包括步骤:

s144,获取当前时间段前的各时间段校准后的实时数据结果。

其中,校准后的实时数据结果可以是根据各时间段对应的离线计算结果,对对应的各时间段内的实时数据结果进行校准,得到的各时间段的校准后的实时数据结果。

可以理解,实时任务系统在得到一个时间段的离线计算结果后,还可以根据该时间段的离线计算结果对该时间段内的实时数据结果进行校准处理,以校准该时间段内的所有实时数据结果,从而得到该时间段内的校准后的实时数据结果。实时任务系统在实时任务的执行时间内,对于每一个时间段内的实时数据结果均可以进行上述的校准处理过程。从而,随着时间的推移,实时任务系统可以得到每一个时间段对应的离线计算结果以及每一个时间段内的校准后的实时数据结果。

s146,在确定实时任务的执行状态为异常状态时,根据各校准后的实时数据结果进行数据预测模拟处理,得到模拟数据结果。

其中,各校准后的实时数据结果可以是当天之内、实时任务的执行状态为异常状态的时间段之前、所有时间段内的已校准后的实时数据结果。各校准后的实时数据结果的数量可以是两个或者两个以上的数量。

可以理解,实时任务系统在确定实时任务的执行状态为异常状态时,根据前述获取的各校准后的实时数据结果,进行数据预测和模拟处理,得到一个最接近当前时间段在正常状态时应有的实时展示数据结果的模拟数据结果。如此,在实时任务短时间异常的情况下,仍然能够得到相对准确的实时展示数据结果,大大提升了实时计算任务的容错性,提升了用户体验。

可选的,以应用的活跃用户为例,实时任务系统在接口程序读取实时任务的当前时间段数据为无效(null)时,也即无数据时,确定实时任务为异常状态。实时任务系统读取截至当天所有已进行过校准的时间段内的启动次数、新增用户数及活跃用户数,确定加权后的平均启动次数与新增用户数之和,同平均启动次数的比例;若该比例大于设定值,例如设定值为1,则判定启动次数减少相应比例的随机差为模拟活跃用户数。模拟活跃用户数也即前述的模拟数据结果中的一种。

在一个实施例中,上述各实施例中的实时数据结果和离线计算结果可以存储在分布式内存对象缓存系统(memcached)中。如此,可以利用memcached的数据查询接口获得更快的数据查询读取速度。

请参阅图4,本发明实施例提供一种实时任务的数据校准装置100,包括离线计算模块22和校准处理模块24。离线计算模块22用于对实时任务的多个历史实时数据进行分时间段的离线计算,得到与各时间段对应的离线计算结果。校准处理模块24用于根据离线计算结果,对实时任务在当前时间段内的实时数据结果进行校准处理,得到实时任务在当前时间段内的展示数据结果。

如此,本发明实施例的实时任务的数据校准装置100,通过离线计算模块22对实时任务在当前时间段之前的历史实时数据进行分时间段的离线计算处理,得到对应各时间段的离线计算结果。校准处理模块24调用离线计算结果对当前时间段内的实时数据结果进行校准处理得到实时任务用于当前时间段的展示数据结果。解决了传统的实时任务系统所得实际计算结果存在偏差的问题,达到使实时展示结果更准确的效果,较好地提升了用户体验。

在另一个实施例中,可选的,实时任务的数据校准装置100还可以包括任务状态确定模块23和处理方案确定模块231。任务状态确定模块23用于根据当前时间段内的实时数据结果,确定实时任务的执行状态。处理方案确定模块231用于根据执行状态确定校准处理的预定方案。如此,通过预判实时任务的执行状态并根据执行状态确定预定方案来进行针对性的校准处理,可以有效地针对不同状态下的当前时间段内的实时数据结果进行校准处理,可以节省实时任务的数据校准装置100的系统开销和提高校准效率。

在一个实施例中,提供一种计算机设备,该计算机设备可以是普通电脑或专用电脑。该计算机设备包括存储器和处理器。存储器上存储有可在处理器上运行的计算机程序。处理器执行存储器上的计算机程序时,可以执行如下步骤:对实时任务的多个历史实时数据进行分时间段的离线计算,得到与各时间段对应的离线计算结果;根据离线计算结果,对实时任务在当前时间段内的实时数据结果进行校准处理,得到实时任务在当前时间段内的展示数据结果。

在一个可选的实施例中,前述的计算机设备,在处理器执行存储器上的计算机程序时,还可以执行上述各实施例中的实时任务的数据校准方法的步骤。

在一个实施例中,还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序。该计算机程序被处理器执行时,可使得处理器执行如下步骤:对实时任务的多个历史实时数据进行分时间段的离线计算,得到与各时间段对应的离线计算结果;根据离线计算结果,对实时任务在当前时间段内的实时数据结果进行校准处理,得到实时任务在当前时间段内的展示数据结果。

在一个可选的实施例中,前述的计算机可读存储介质上的计算机程序被处理器执行时,还可以执行上述各实施例中的实时任务的数据校准方法的步骤。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,所述的计算机程序可存储于计算机可读取存储介质中,作为独立的产品销售或使用。所述的计算机程序被处理器执行时,可使得处理器执行如上述各方法的实施例的全部或部分步骤。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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