基于低水位滑动时间窗口的离群数据发现方法及系统与流程

文档序号:11410752阅读:478来源:国知局
基于低水位滑动时间窗口的离群数据发现方法及系统与流程

本发明涉及一种离群数据发现方法,尤其涉及基于低水位滑动时间窗口的离群数据发现方法及系统。



背景技术:

流处理是对不断变化的数据流进行实时计算。为了应对用户对海量数据的即时处理带来的挑战,解决传统mapreduce为代表的批处理方式在实时处理的瓶颈问题,新兴的流处理方法,在风险管理、营销管理、广告投放、社会化推荐等方面均具有重要的应用价值。

流处理的数据来源由于网络延迟、系统内在并发等原因,同类数据不能保证严格按照时间戳顺序到达数据处理节点,出现数据产生与到达数据处理节点先后不一致的离群数据。大量离群数据,其处理速度慢,对数据处理故障判定产生干扰,增大流处理故障误判概率。

现有技术主要通过日志、热复制、上游备份等方法实现容错,均未讨论离群数据。日志和热复制容错方法使用同步协议增量复制,因此大量离群数据会严重拖垮复制过程;上游备份容错方法会将离群数据当作故障处理,将会启动错误的故障恢复。

现有技术d-stream采用并行恢复方法发现离群数据,采用推测执行进行故障恢复,其依赖于批处理数据分析堆栈。现有技术给出了一种乱序到达处理方法,通过标点符号和心跳机制等显式方法将乱序数据有序化。现有技术millwheel系统在此原理基础上提出了低水位概念表示待处理数据的底限,当时间戳小于低水位的数据到达数据处理时,会被直接丢弃。该方法给出了丢失数据的判定方法,但未给出离群数据的判定方法,仅仅用时间点表示低水位无法严格区分离群数据。现有技术trident通过待处理数据严格有序需求避免产生离群数据,该方法依赖于事务框架,产生大量额外的开销。



技术实现要素:

本发明的目的就是为了解决上述问题,提供基于低水位滑动时间窗口的离群数据发现方法及系统,有效区分可丢弃数据、离群数据与正常待处理数据,提高数据处理可靠性,加速故障恢复。

为了实现上述目的,本发明采用如下技术方案:

基于低水位滑动时间窗口的离群数据发现方法,包括:

步骤(1):数据分发:接收外部数据流,然后将外部数据流分发给各个数据处理节点;

步骤(2):数据处理:数据处理节点对接收到的外部数据流进行处理;

定义低水位滑动时间窗口,低水位滑动时间窗口的时间戳起始于低水位初值,低水位滑动时间窗口的宽度为w;低水位滑动时间窗口的时间戳范围为[低水位初值,低水位初值+低水位滑动时间窗口的宽度w];

以时间戳为水平坐标轴,随着时间推移,低水位滑动时间窗口在时间戳水平坐标轴上从左往右不断移动,在任意时间点,低水位滑动时间窗口水平坐标轴上方为未处理数据,水平坐标轴下方为已处理数据;然后根据当前数据处理时间戳在低水位滑动时间窗口范围内的位置来发现当前数据处理是否为离群数据;

步骤(3):数据聚合:将数据处理的结果进行汇总进行输出。

步骤(2)中来自不同关键词的数据流能够并发在不同的数据处理节点上进行处理。

所述低水位初值的获取步骤为:标识当前数据处理中最早的未被处理的数据包的时间戳为当前数据处理的低水位;标识当前数据处理的上游数据处理中最早的未被处理的数据包的时间戳为上游数据处理的低水位;然后比较当前数据处理的低水位与当前数据处理的上游数据处理的低水位二者的大小,将小的低水位作为当前数据处理的低水位,然后,沿流处理网络拓扑追溯上游数据处理,最终通过递归,找到整个流处理网络的最早未处理数据,并以整个流处理网络的最早未处理数据时间戳作为低水位初值。

根据当前数据处理时间戳在低水位滑动时间窗口范围内的位置来发现当前数据处理是否为离群数据的步骤为:

如果当前数据处理时间戳在[低水位,低水位+滑动时间窗口宽度/2)范围,则未处理数据包为离群数据;

如果当前数据处理时间戳在[低水位+滑动时间窗口宽度/2,低水位+滑动时间窗口宽度]范围,则未处理数据包为正常待处理数据;

如果当前数据处理时间戳小于低水位,则未处理数据为可丢弃数据。

低水位滑动时间窗口大小w是根据数据处理能容忍的最大数据延迟达到时间来设定的。

基于低水位滑动时间窗口的离群数据发现系统,包括:

数据分发模块:接收外部数据流,然后将外部数据流分发给各个数据处理节点;

数据处理模块:数据处理节点对接收到的外部数据流进行处理;

定义低水位滑动时间窗口,低水位滑动时间窗口的时间戳起始于低水位初值,低水位滑动时间窗口的宽度为w;低水位滑动时间窗口的时间戳范围为[低水位初值,低水位初值+低水位滑动时间窗口的宽度w];

以时间戳为水平坐标轴,随着时间推移,低水位滑动时间窗口在时间戳水平坐标轴上从左往右不断移动,在任意时间点,低水位滑动时间窗口水平坐标轴上方为未处理数据,水平坐标轴下方为已处理数据;然后根据当前数据处理时间戳在低水位滑动时间窗口范围内的位置来发现当前数据处理是否为离群数据;

数据聚合模块:将数据处理的结果进行汇总进行输出。

数据处理模块中来自不同关键词的数据流能够并发在不同的数据处理节点上进行处理。

所述低水位初值的获取步骤为:标识当前数据处理中最早的未被处理的数据包的时间戳为当前数据处理的低水位;标识当前数据处理的上游数据处理中最早的未被处理的数据包的时间戳为上游数据处理的低水位;然后比较当前数据处理的低水位与当前数据处理的上游数据处理的低水位二者的大小,将小的低水位作为当前数据处理的低水位,然后,沿流处理网络拓扑追溯上游数据处理,最终通过递归,找到整个流处理网络的最早未处理数据,并以整个流处理网络的最早未处理数据时间戳作为低水位初值。

根据当前数据处理时间戳在低水位滑动时间窗口范围内的位置来发现当前数据处理是否为离群数据的步骤为:

如果当前数据处理时间戳在[低水位,低水位+滑动时间窗口宽度/2)范围,则未处理数据包为离群数据;

如果当前数据处理时间戳在[低水位+滑动时间窗口宽度/2,低水位+滑动时间窗口宽度]范围,则未处理数据包为正常待处理数据;

如果当前数据处理时间戳小于低水位,则未处理数据为可丢弃数据。

低水位滑动时间窗口大小w是根据数据处理能容忍的最大数据延迟达到时间来设定的。

由于低水位滑动时间窗口的控制,丢弃数据极少。

关于专业术语的解释:

流处理,是对不断变化的数据流进行实时计算。

数据流,流处理过程中处理的数据包,数据包由关键词、关键值、时间戳三元组组成。流计算可以按照数据包的关键词的范围将其分布在多个流处理节点上运行。

本发明的有益效果:

1、在低水位滑动时间窗口内有效区分数据延迟到达与数据处理故障,减少流处理过程中数据处理故障恢复误判次数;

2、有效区分数据处理中的可丢弃数据、离群数据与正常待处理数据;

3、发现数据处理中的离群数据,可提高数据处理可靠性,加速故障恢复。

4、所述步骤(2)低水位基于数据处理之间的数据流来定义,保证当前数据处理不再产生时间戳更早的数据包。数据处理只处理时间戳比低水位大的数据包,时间戳比低水位小的数据包直接丢弃。

附图说明

图1流处理网络拓扑;

图2低水位滑动时间窗口;

图3低水位滑动时间窗口实施例;

图4数据处理在三个时间点的低水位滑动时间窗口快照。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

如图1所示,流处理网络拓扑,包括数据分发101、各种数据处理102、103、104、105与数据聚合106。所述数据分发101用于接收外部数据流转发到后续各种数据处理。所述数据处理102、103、104、105,是流处理的计算单元。所述数据聚合106,将数据处理的结果进行汇总进行输出。来自不同关键词的数据流可以并发在不同的数据处理节点上执行。

所述低水位基于数据处理之间的数据流来定义,标识了当前数据处理中最早的未被处理的数据包的时间戳,保证当前数据处理不再产生时间戳更早的数据包。数据处理只处理时间戳比低水位大的数据包,时间戳比低水位小的数据包直接丢弃。

给定数据处理a与b,b是a的上游数据处理,数据处理a的低水位递归定义为lowwatermark(a)=min(oldestwork(a),lowwatermark(b)),其中oldestwork函数表示数据处理a中时间戳最小的未处理数据的时间戳。沿流处理网络拓扑追溯上游数据处理,可以找出整个流处理的最早未处理数据,并以其时间戳作为低水位初值。根据数据处理能容忍的最大数据延迟达到时间设定低水位滑动时间窗口大小w。

如图2所示,所述低水位滑动时间窗口200,时间戳起始于低水位201,宽度为w的时间窗口。低水位滑动时间窗口的时间戳范围为[低水位,低水位+滑动时间窗口宽度]。

基于低水位滑动时间窗口的离群数据发现方法:

当前数据处理时间戳在[低水位,低水位+滑动时间窗口宽度/2)范围的未处理数据包为离群数据;

当前数据处理时间戳在[低水位+滑动时间窗口宽度/2,低水位+滑动时间窗口宽度]范围的未处理数据包为正常待处理数据;

当前数据处理时间戳小于低水位的未处理数据为可丢弃数据,由于低水位滑动时间窗口的控制,丢弃数据极少。

如图3所示,低水位滑动时间窗口具体实施例,a为可丢弃数据,b、d、f为已处理数据,c为离群数据,e、g为正常待处理数据。

如图4所示,数据处理在三个时间点的低水位滑动时间窗口快照,矩形表示低水位滑动时间窗口,矩形左竖线为低水位,随系统时间推移,低水位滑动时间窗口不断右移。每个数据处理快照中的数据分布在水平时间轴。在任意时间点,低水位滑动时间窗口水平轴上方为未处理数据,水平轴下方为已处理数据。低水位滑动时间窗口时间戳范围为[lowwatermark,lowwatermark+w]。在低水位滑动时间窗口内,时间戳在[lowwatermark+w/2,lowwatermark+w]的未处理数据为非离群数据,时间戳在[lowwatermark,lowwatermark+w/2)的未处理数据为离群数据(如图4数据i)。未在低水位滑动时间窗口内的未处理数据直接丢弃(如图4数据h),由于低水位滑动时间窗口的控制,丢弃数据极少。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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