首页> 中国专利> 一种面向多数据流的分布式实时压缩方法

一种面向多数据流的分布式实时压缩方法

摘要

本发明涉及数据流压缩技术,具体涉及一种面向多数据流的分布式实时压缩方法,首先利用相关关系对数据流进行粗粒度的在线分片;使用贪心策略构建了粗粒度的时序数据流在线分片算法,一方面考虑了分片内时序数据流的相关关系,保证了压缩误差以及分组的动态性,另一方面保证了分片长度最大即考虑压缩率。接下来对分片内的数据流进行细粒度的聚类;针对分片内数据特征,从无监督学习角度出发,提出面向时间序列的段聚类算法,不仅可以对分片内读数接近的信号量进行细粒度的分组,还可以标记分组内的核心线段和噪声片段,加快了后期代表序列选择的过程。最后在聚簇中选择有代表性的数据流序列进行存储及压缩;提高了压缩效果和效率。

著录项

  • 公开/公告号CN112636763A

    专利类型发明专利

  • 公开/公告日2021-04-09

    原文格式PDF

  • 申请/专利权人 武汉大学;

    申请/专利号CN202011546377.9

  • 申请日2020-12-24

  • 分类号H03M7/40(20060101);

  • 代理机构42222 武汉科皓知识产权代理事务所(特殊普通合伙);

  • 代理人彭艳君

  • 地址 430072 湖北省武汉市武昌区珞珈山武汉大学

  • 入库时间 2023-06-19 10:32:14

说明书

技术领域

本发明属于数据流压缩技术领域,尤其涉及一种面向多数据流的分布式实时 压缩方法。

背景技术

随着传感器技术的蓬勃发展,越来越多的领域开始对系统内的数据进行监控 (例如空气质量检测,交通状态监控,气候变化检测等)。然而为了提供近乎实 时的监测,传感器必须以高频率进行采样,这就产生了前所未有的大规模流式时 序数据。越来越多的学者提出这些数据必须经过有效地汇总,存储和检索才能被 更好的挖掘、利用。直观看来,这些序列结构存在时间上的相关性或者序列间的 相关性,利用此特性进行时间序列的压缩一方面可以减少存储开销,另一方面也 不会影响监控或者分析的性能。

因而面向多条时序数据流实时压缩的目的在于在一个拥有海量分布式数据 源(例如分布式传感器)、每个数据源都实时产生监测数据,但是数据间存在动 态关系的在线数据流压缩任务中,实时地在数据中划分时间间隔,并在该间隔中 依据数据流的相关性,进一步产生动态分组,并在分组中识别出有代表性的序列 来表示剩余的序列而不是存储全部序列值。通常情况下,该问题可以作如下定义: 给定K条规则时序数据TS

发明内容

针对背景技术存在的问题,本发明提供一种面向多数据流的分布式实时压缩 方法。

为解决上述技术问题,本发明采用如下技术方案:一种面向多数据流的分布 式实时压缩方法,包括:

S1.利用相关关系对数据流进行粗粒度的在线分片;

S2.对分片内的数据流进行细粒度的聚类;

S3.在聚簇中选择有代表性的数据流序列进行存储及压缩。

在上述的面向多数据流的分布式实时压缩方法中,S1的实现具体包括:以 多条数据流为基础,在master节点上运行粗粒度的关系划分算法,识别缓冲区 内的时序数据相关关系改变的变更点,基于起始点和变更点形成微批;master 节点将微批内的全部数据点发送到worker节点。

在上述的面向多数据流的分布式实时压缩方法中,S2的实现具体包括: worker节点接收到分片内数据后,运行细粒度的聚类算法,分片内数据按照基于 段的距离度量,将相近的时序片段划分到一个簇内,保证每个簇内至少存在一条 代表序列,使其在压缩误差内代表此簇的剩余序列。

在上述的面向多数据流的分布式实时压缩方法中,S3的实现具体包括:每 个簇生成一条最优代表序列表示簇内的剩余序列,通过存储代表序列的时间序列 进行压缩。

与现有技术相比,本发明1、显著提高了数据流的压缩效果(压缩比例), 不同于依靠用户预定义的数据标签进行分组的在线多数据流压缩技术,本发明利 用无监督学习技术可以自动发掘多数据流间复杂的相关关系,提高了数据流的压 缩比例;2、本发明更适用于在在线环境下产生的时序数据流进行压缩,由于在 线产生的数据规模大,且每个传感器监测发送读数的时间间隔较短,在基站汇总 所有传感器数据时势必面临着数据吞吐量巨大的困难,而在线处理任务又要求我 们在较低延迟下获得目标输出。本发明中利用分布式spark集群进行数据流的运 算很好地弥补了这个缺陷。解决了在线场景下的数据压缩问题,同时提高了压缩 效果和效率。

附图说明

图1为本发明实施例的流程图;

图2为本发明实施例的时序数据聚类算法流程图。

具体实施方式

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

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可 以相互组合。

下面结合具体实施例对本发明作进一步说明,但不作为本发明的限定。

本实施例提出了一种面向多数据流的分布式实时压缩方法,该方法首先基于 压缩问题本质,使用贪心策略构建了粗粒度的时序数据流在线分片算法,一方面 考虑了分片内时序数据流的相关关系(保证压缩误差以及分组的动态性),另一 方面保证了分片长度最大(考虑压缩率);然后,针对分片内数据特征,从无监 督学习角度出发,提出新的面向时间序列的段聚类算法,该算法不仅可以对分片 内读数接近的信号量进行细粒度的分组,还可以标记分组内的核心线段和噪声片 段,从而加快了后期选择代表序列的进程;最后,在代表序列的选择上该方法使 用最小集合覆盖问题的近似解法,该算法可以在log

本实施例是通过以下技术方案来实现的:一种面向多数据流的分布式实时压 缩方法,在分布式环境下实时计算,包括以下步骤:

步骤1:利用相关关系对数据流进行粗粒度的在线分片;

步骤2:对分片内的数据流进行细粒度的聚类;

步骤3:在聚簇中选择有代表性的数据流序列进行存储及压缩。

本实施例面向多数据流的分布式实时压缩方法,以多条数据流为基础,首先 在master节点上运行粗粒度的关系划分算法,它可以识别缓冲区内的时序数据 相关关系改变的时间点,基于起始点和此时间点形成微批。然后,master节点 将微批内的全部数据点发送到worker节点;worker节点接收到分片内数据后, 运行细粒度的聚类算法,将分片内数据按照本实施例定义的基于段的距离度量, 将相近的时序片段划分到一个簇内,保证每个簇内都存在一(多)条代表序列使 其可以在压缩误差内代表此簇的剩余序列。最后,每个簇生成一条最优代表序列 对簇内的剩余序列进行表示,因此可以通过存储代表序列而非全部的时间序列进 行压缩。由于此聚类过程可以分布式运行在各个slave节点上,并且经过分片后 的数据量明显较少,因此可以快速完成计算过程,满足在线场景。

具体实施时,如图1所示,一种面向多数据流的分布式实时压缩方法,包括 以下步骤:

步骤1:利用相关关系对数据流进行粗粒度的在线分片;

针对多条时序数据流压缩问题中检测算法以及变更点的特有特征,提出了新 的变更点检测算法;然后提出了基于这种变更点检测算法以及滑动窗口算法的在 线分片方法。

变更点是指时间序列数据中不同状态之间的发生过渡的时间点。而在本实施 例的问题设置中,它和以往定义主要有以下区别:(1)所有的时序数据点包括变 更点都是实时到来的,(2)变更点应该在多条时序数据之间的相关关系发生变化 时被识别。

因此,变更点发生在数据分组发生变化的时刻,而这往往伴随着数据值的“跃迁”,即数据点v

使用值变更点有助于更快的形成数据分片。具体做法是从初始点开始,遍历 所有的值变更点,统计其组成的各个窗口内时序线的密度。基于贪心策略,(1) 窗口大小越长越好,因为这样可以保证产生最少的时间片划分。由于每个时间片 划分内都采用最佳近似的代表序列进行代表,因此最少的时间片可以产生最高的 压缩率;(2)由于每个时间片内的相关关系同时也是会影响压缩效果,所以本实 施例同样需要关注相关关系,并且使用类似网格密度的思想来粗略考虑相关关 系。假设在单位时间内,网格内的线密度大小可以衡量相关关系。网格是这样形 成的,由起始点到值变更点的时间间隔组成矩形的长,由用户指定的参数h作为 矩形的高,矩形的中线是上一个分片内对应矩形内的序列的最大值和最小值的均 值。对于初始分片,这一选择是随机的。对于正常情况来讲,该网格内的密度应 该是非单调递减的,而当不同网格内的密度出现递减的情况就认为发生了相关关 系变更点(correlation-change point)。

步骤2:对分片内的数据流进行细粒度的聚类。

由于数据量巨大,并且数据都是实时生成,采用有监督方式或者人工标注对 时序数据分类是不可能的。所以采用基于时序数据分片框架对时序数据自动分组 的无监督聚类技术。首先,使用针对时间片内时序数据的距离度量方式,然后采 用基于密度的时序数据流在线聚类算法(TSDBSCAN),这种算法不仅可以发现 任意形状的簇,有助于发现异常的读数值,还可以融合压缩误差。

时序数据聚类过程需要定义聚类时序线段中使用的距离函数,针对多个分片 内的时序数据特征,提出基于时序片段的距离定义,它由两部分组成:垂直距离 d

通过定义1和2正式定义这两个组成部分。假设有两个时序数据片段L

定义1:L

定义2:L

这两个组件可以使用向量操作计算得到。让

确定两个线段之间的距离如下:

dist(L

公式(4)中的权重w

本实施例时序数据线段聚类算法,最初,所有线段均假定为未分类的。随着 算法的进行,它们被标记为属于某个簇或者噪声片段。该算法包括两个步骤:在 第一步中,该算法将计算每个未分类线段L的“邻域”。如果L被确定为核心线段, 该算法将继续执行第二步扩展集群。到这一步为止,集群目前只包含N

步骤3:在聚簇中选择有代表性的数据流序列进行存储及压缩。

本实施例的目标是在每个分组内,识别出一些有代表性的时序片段(代表序 列),使得分组内的剩余序列可以由这些代表序列进行表示,这样就可以只存储 代表序列而不是全部数据,从而达到压缩目的。将这些数据片段聚类并且每个分 组中都会有一条/多条核心片段,并且对边缘的序列进行了噪声标记。然后寻找 核心片段以及噪声片段的集合作为代表序列,来覆盖簇内剩余的全部片段。

其优化目标是寻找核心/噪声片段的集合,使其可以覆盖簇内全部的片段, 并且集合内片段的数量最少。可以抽象为经典集合覆盖(Set Cover)问题。通 常,经典的集合覆盖问题的定义如下:令X={1,2,...,n}表示由n个元素组成的全 集,S表示一组X的子集构成的集合,S包含的元素个数为m个。一个覆盖就是 S中一些子集的组合使它们的并集是X,每一个组合都会有一个与之相关的代价, 问题目标是找到最小代价的子集组合。

以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范 围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书内容所作出 的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围 内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号