【数据可视化】流数据可视化

流数据可视化

     流数据是一种特殊的时变型数据,输入数据并不存储在可随机访问的磁盘或内存中,而是以一个或多个“连续数据流”的形式到达。常见的流数据有移动通信日志、网络数据(日志、传输数据包、警报等)、高性能集群平台日志、传感器网络记录、金融数据(如股票市场)、社交数据等。

     处理流数据与传统的数据池处理方法相比,有以下特点:

1.        数据流的潜在大小也许是无限的

2.        数据元素在线到达,需要实时处理,否则数据的价值随时间的流逝可能降低。

3.        无法控制数据元素的到达顺序和数量,每次流入的数据顺序可能不一致,数量时多时少。

4.        某个元素被处理后,要么被丢弃要么被归档存储。

5.        对于流数据的查询异常情况和相似类型比较耗时,人工检测日志相当乏味且易出错。

 

1 流数据可视化模型

流数据处理没有一个固定的模型,通常按照处理目的和方法的不同(如聚类、检索、监控等)会有不同的模型。

    

    流数据分析流水线,表达了流数据的数据处理的流水线。到达流数据按时间、空间进行分割或按规则聚类后进行摘要统计,形成一个统计模型或分析模型。可视化可以在流水线的任意过程中参与数据分析,但在一般应用中可视化往往在最后一步的统计和分析中参与数据分析,而用户交互同过数据定制会涉及前面的步骤。

      

   

2 流数据处理技术

    流数据挖掘的算法种类繁多,包括分类聚类频率模式挖掘、降维等传统数据挖掘中的改进算法,大数据相关的统计方法采样算法哈希算法,以及滑动窗口数据预测等流数据特有的算法。

这一节只关注窗口技术时序数据相似性技术符号技术,窗口技术是时序数据特有的技术,而相似性计算是时序数据聚类、分类、检索、降维以及异常检测的基础,符号技术将时序数据转换到另一个维度。窗口技术包括滑动窗口、衰减窗口和时间盒,给予不同时间段的数据不同的权重,让最近的数据发挥更大效用。时序数据相似性技术分为4类:基于形状的相似度、基于特征的相似度、基于模型的相似度和基于压缩的相似度。

 

窗口技术,有时人们只关心最近的数据,以前的数据只是参考价值或者基本可以忽略,因此需要一种技术在数据的时间上进行限定,这就是窗口技术。

   滑动窗口,指在时间轴上滑动的窗口,挖掘技术的对象线定为窗口内的数据;

衰减窗口,将历史数据考虑在内,每个数据项都被赋予一个时间不断减小的衰减因子,从而达到越历史的数据权重越低的效果。

时间盒,一种交互技术,通过时间盒框选部分数据进行联合搜索。

  

时序数据相似性计算

对于时序数据,不管是处于分类、聚类、降维还是有效检索,相似性计算都是非常重要的。动态时间扭曲(Dynamic Time Warping ,DTW)是基于形状的相似性算法。

对于两个时序数据如序列A:1,1,1,10,2,3和序列B:1,1,1,2,10,3,要测量序列的距离也就是计算两个序列的相似性,通常采用欧氏距离。

然而这两个看起来很相似的序列的欧是距离却非常大。为了解决这个问题,人们提出了动态时间扭曲的方法,采用扭曲的序列对齐方式计算两个序列的距离。这一方法在机器学习,尤其是语音识别和签名识别上得到广泛的应用。

 

符号技术

符号累积近似(SymbolicAggregate Approximation,SAX)是一种针对时序数据的符号表达。数据经SAX表达转换后可以再用时序数据相似性算法快速得到其相似性。2003年由加州大学河滨分校的Eamonn Keogh和Jess Lin首次提出了SAX方法,2008年Eamonn Keogh又提出了iSAX,增强了SAX的数据可扩展性,使之可以处理TB级别时序数据的索引和挖掘。简单来说,SAX经过两次离散化将时序数据近似转化为字符串,所有时序数据的聚类、检索等操作都转化为字符串操作,并借助后缀树的数据结构和相关算法加速字符串操作。

 

 

3 流数据可视化案例

    流数据可视化按功能可以分为两种可视化类型:一种是监控型,用滑动窗口固定一个时间区间,把流数据转化为静态数据,数据更新方式可以是刷新,属于局部分析;另一种是叠加型,或者是历史型,把新产生的数据可视映射到原来的历史数据可视化结果上,更新方式是渐进更新,属于全局分析。局部分析与全局分析各有侧重点,为了得到更加全面的分析结果,人们往往将两种可视化结合到一个系统中。

系统日志监控流数据

系统日志反映了一台机器、一个计算集群的系统性能,是商业智能中最重要的数据,在工业界已经有Splunk、Loggly、Flume等诸多或收费或开源的系统日志监控工具。这些工具在系统底层插入脚本获取性能数据,再用基本的条形图、折线图等基本统计图和信息建龙哦工具得到系统性能的概要分析。

 

文本流数据

本节主要从事件角度对文本进行可视化分析,挖掘事件的发生、发展及变化。

EventRiver是一个广播新闻视频集合的交互式探索工具。它首先用增量式聚类算法从一系列事件中提取热门话题,然后用河流的隐喻将时间的语义和上下文在一个布局界面中自然地表达出来。

StreamIT是一个在线新闻流的可视化工具,该工具结合动态力引导布局、自动话题建模技术展现了新闻的发展和演变。用户可以对新闻时间进行动态聚类、细节探索以及新闻动态演变探索等交互操作,并按照用户感兴趣的关键词和话题对事件进行检索。

 

 

 

4 并行流计算框架

    流计算强调的是数据流的形式和实时性。流式计算系统在启动时,一般数据并没有完全到位,而是由外部数据流源源不断地流入,并且不像批处理系统重视的是总数据处理的吞吐,而是对数据处理的低延迟,希望进入独山越快被处理,结果就有越具有价值,这也是事实处理价值所在。

S4 (simplescalable streaming System 简单可扩展的流系统

       S4最初时Yahoo!为提高搜索广告有效点击率的问题二开发的一个平台,通过统计分析用户对广告的点击率,排除相关度低的广告,提升点击率。但是S4对流数据的高可用性和良好的用户体验使其成为线在最流行的流数据处理计算框架。S4最大的优点是低延迟、可扩展;最大的缺点是部分容错,不支持节点的动态增减。

Twitter的实时数据处理框架Storm

Storm核心的抽象概念是“流”。流是一个分布式并行创建和处理的无界的连续元组(tuple)。流通过一种模式来定义,该模式是给流元组中的字段命名。实时应用的逻辑被打包的Storm拓扑里。Storm拓扑类似于MapReduce任务,一个关键的区别是MapReduce任务运行一段时间后最终完成,而Storm拓扑一直运行直到被用户关闭。一个拓扑是有喷嘴(spouts)和螺栓(bolts)组成的图。spout是拓扑中流的源泉,通常spouts从外部资源读取元组,然后发射元组到拓扑中。拓扑中的所有处理都在bolts中完成,如过滤、业务功能、聚合、连接(合并)、访问数据库等。Spouts和bolts之间通过流分组连接起来,指定每个bolt应接受的输入流是定义bolts的一部分工作,流分组定义流应该如何分割到各个任务。Storm包括6种流分组类型。

1.随机分组:随机分发元组到bolt的任务,保证每个任务获得相等数量的元组。

2.字段分组:根据指定字段分割数据流并分组。

3.全部分组:元组被复制到bolt的所有任务。

4.全局分组:全部流都分配到bolt的同一个任务,明确地说,是分配给ID最小的那个任务。

5.无分组:你不需要关心流是如何分组的。

6.直接分组:这是一个特别的分组类型。元组生产者决定元组由哪个元组消费者任务接收。

 

        Storm的优点是适用场景广泛,可以用来处理消息和更新数据库,对一个数据量进行持续的查询并返回客户端,或者对一个耗费资源的查询进行实时并行化的处理。Storm也具有很高的可伸缩性。为了扩展一个实时计算任务,所需要做的就是增加集群并且提高这个计算任务的并行度设置。可扩伸缩性,一个Storm应用在一个有10个节点的集群上每秒处理1000000个消息——包括每秒一百次的数据库调用。Storm也使用Zookeeper来协调群内的各种配置,使得Storm的集群可以很容易扩展到很大。与S4相比,Storm更加可靠,保证所有的数据被成功地处理。容易管理市场storm的设计目标之一。与Hadoop相比,Storm集群更易于管理。Storm也拥有非常好的容错性,如果在消息处理过程中处理一些异常,它会重新安排这个问题的处理逻辑。Storm保证一个处理永远运行,除非用户要求停止该逻辑。Storm的拓扑和消息处理组件可以用任何语言来定义,语言的无关性使得Storm能够被更多用户接收。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值