读数据可视化18时变数据(下)

1. 流数据可视化
1.1. 流数据是一类特殊的时变型数据,输入数据(全部或部分)并不存储在可随机访问的磁盘或内存中,而是以一个或多个“连续数据流”的形式到达
1.2. 常见的流数据
-
1.2.1. 移动通信日志
-
1.2.2. 网络数据(日志、传输数据包、警报等)
-
1.2.3. 高性能集群平台日志
-
1.2.4. 传感器网络记录
-
1.2.5. 金融数据(如股票市场)
-
1.2.6. 社交数据等
1.3. 特点
-
1.3.1. 数据流的潜在大小也许是无限的
-
1.3.2. 数据元素在线到达,需要实时处理,否则数据的价值随时间的流逝可能降低
-
1.3.3. 无法控制数据元素的到达顺序和数量,每次流入的数据顺序可能不一致,数量时多时少
-
1.3.4. 某个元素被处理后,要么被丢弃,要么被归档存储
-
1.3.5. 对于流数据的查询异常情况和相似类型比较耗时,人工检测日志相当乏味且易出错
1.4. 流数据可视化模型
-
1.4.1. 流数据处理并没有一个固定的模型,通常按处理目的和方法的不同(如聚类、检索、监控等)会有不同的模型
-
1.4.2. 用户交互
-
1.4.2.1. 输出内容的可视检索
-
1.4.2.2. 对可视布局的基本交互
-
1.4.2.3. 自定义的数据定制
-
1.4.3. 多数据库的设计既保护了原始数据,也提高了数据存取效率,而多处理器的设计也是为了同样的两个目的
1.5. 流数据处理技术
-
1.5.1. 流数据挖掘的算法种类繁多,包括分类、聚类、频繁模式挖掘、降维等传统数据挖掘算法在流数据中的改进算法,大数据相关的统计方法、采样算法和哈希算法,以及滑动窗口、数据预测等流数据特有的算法
-
1.5.2. 在传统数据挖掘或一些流数据挖掘中,数据的重要性是相同的,数据处理技术在整个数据集汇总进行
-
1.5.2.1. 有时人们更关心最近的数据,以前的数据只有参考价值或者基本可以忽略
-
1.5.2.2. 需要一种技术在数据的时间上进行限定,这就是窗口技术
-
1.5.3. 窗口技术
-
1.5.3.1. 是时序数据特有的技术
-
1.5.3.2. 包括滑动窗口、衰减窗口和时间盒,给予不同时间段的数据不同的权重,让最近的数据发挥更大效用
-
1.5.3.3. 滑动窗口
1.5.3.3.1. Sliding Window
1.5.3.3.2. 指在时间轴上滑动的窗口,挖掘技术的对象限定为窗口内的数据
1.5.3.3.3. 滑动窗口的设计假设数据带有时效性,用户只关心最近一周、最近一天、最近一个小时等的数据,随着时间流逝,窗口向前滑动,始终只包含有效时间范围内的数据
1.5.3.3.4. 滑动窗口数据与静态数据的区别是滑动窗口每向前推进一个时间单元,只需要增加最近一分钟的数据,删除最老的一分钟的数据
- 1.5.3.4. 衰减窗口
1.5.3.4.1. Decaying Window
1.5.3.4.2. 将历史数据考虑在内,每个数据项都被赋予一个随时间不断减小的衰减因子,从而达到越历史的数据权重越低的效果
1.5.3.4.3. 衰减窗口在衰减模型下考虑数据流的分类、聚类、降维等计算
1.5.3.4.4. 一般衰减模型在每个数据上乘以一个衰减系数
1.5.3.4.5. 历史数据的权重呈指数减小,显然新产生的数据相对于历史数据更能影响算法结果
- 1.5.3.5. 时间盒
1.5.3.5.1. Timebox
1.5.3.5.2. 是一种交互技术,通过时间盒框选部分数据进行联合搜索
-
1.5.4. 对于大多数算法,只能以降低计算结果的精度为代价,从而达到降低算法时空复杂度的目的,实现流数据的实时处理
-
1.5.5. 相似性计算是时序数据聚类、分类、检索、降维以及异常检测的基础,符号技术将时序数据转化到另一个维度
-
1.5.6. 时序数据相似性技术
-
1.5.6.1. 基于形状的(Shape-based)相似度
-
1.5.6.2. 基于特征(Feature-based)的相似度
-
1.5.6.3. 基于模型的(Model-based)相似度
-
1.5.6.4. 基于压缩(Compression-based)的相似度
-
1.5.6.5. 对于时序数据,不管是出于分类、聚类、降维还是有效检索,相似性计算都是非常重要的
-
1.5.6.6. 动态时间扭曲(Dynamic Time Warping,DTW)是基于形状的相似性算法
1.5.6.6.1. 为了达到扭曲的目的,算法容忍序列的偏差,也就是说,序列的距离并不由相同位置的序列值计算得到,而是由序列的最短距离决定
-
1.5.7. 符号技术
-
1.5.7.1. 符号累积近似(Symbolic Aggregate Approximation,SAX)是一种针对时序数据的符号表达
-
1.5.7.2. 增强了SAX的数据可扩展性,使之可以处理TB级别时序数据的索引和挖掘
-
1.5.7.3. SAX经过两次离散化将时序数据近似转化为字符串,所有时序数据的聚类、检索等操作都转化为字符串操作,并借助后缀树的数据结构和相关算法加速字符串操作
1.6. 流数据可视化案例
-
1.6.1. 可视化类型
-
1.6.1.1. 监控型,用滑动窗口固定一个时间区间,把流数据转化为静态数据,数据更新方式可以是刷新,属于局部分析
-
1.6.1.2. 叠加型,或者是历史型,把新产生的数据可视映射到原来的历史数据可视化结果上,更新方式是渐进式更新,属于全局分析
-
1.6.2. 系统日志监控流数据
-
1.6.2.1. 系统日志数据反映了一台机器、一个计算集群的系统性能,是商业智能和高性能计算中的重要数据
-
1.6.2.2. 在工业界已经有Splunk、Loggly、Flume等诸多或收费或开源的系统日志监控工具
-
1.6.2.3. LogTool*是一个可视化用户浏览行为的工具,它通过分析数据包的不同IP地址和端口,判断用户正在使用的网络程序或者服务
-
1.6.2.4. LiveRAC
1.6.2.4.1. 是一个交互式系统管理可视化工具,支持对大量的系统性能管理时间序列数据的分析
1.6.2.4.2. LiveRAC使用可重排序的矩阵表达设备及其性能之间的关系,每个关系用折线图表示,整个矩阵是一个高信息密度的监控界面,可以按用户的兴趣自由地进行语义缩放
- 1.6.2.5. IOVIS
1.6.2.5.1. 是针对高性能计算集群I/O系统的可视分析工具,其目标是为高性能计算集群的I/O系统提供点对点的分析
1.6.2.5.2. 包括一个连接集群I/O系统软件的数据收集工具并对I/O进行追踪
-
1.6.3. 文本流数据
-
1.6.3.1. EventRiver
1.6.3.1.1. 是一个广播新闻视频集合的交互式探索工具
1.6.3.1.2. EventRiver首先使用增量式聚类算法从一系列事件中提取热门话题,然后用河流的隐喻将事件的语义和上下文在一个布局界面中自然地表达出来
- 1.6.3.2. StreamIT
1.6.3.2.1. 是另一个在线新闻流的可视化工具,该工具结合动态力引导布局、自动话题建模技术展现了新闻的发展和演变。用户可以对新闻事件进行动态聚类、细节探索以及新闻动态演变探索等交互操作,并按用户感兴趣的关键词和话题对事件进行检索,从而观察热门事件的爆发和演变
- 1.6.3.3. FluxFlow
1.6.3.3.1. 是一个分析社交媒体中异常信息扩散的可视分析系统
1.6.3.3.2. 该系统首先对时序文本进行聚类,然后利用类似于文本流的可视化设计对每个聚类中的帖子进行可视化
- 1.6.3.4. D-Map
1.6.3.4.1. 利用地图的隐喻来对时序文本进行可视化
2. 并行流计算框架
2.1. 流计算强调的是数据流的形式和实时性
2.2. 流式计算系统在启动时,一般数据并没有完全到位,而是经由外部数据流源源不断地流入,并且不像批处理系统重视的是总数据处理的吞吐,而是对数据处理的低延迟,希望进入的数据越快处理越好
2.3. 数据的价值随着时间的递增而递减,所以数据越快处理,结果就越有价值,这也是实时处理的价值所在
2.4. S4
-
2.4.1. Simple Scalable Streaming System,简单可扩展的流系统
-
2.4.2. S4最初是Yahoo!为提高搜索广告有效点击率的问题而开发的一个平台,通过统计分析用户对广告的点击率,排除相关度低的广告,提升点击率
-
2.4.3. S4对流数据的高可用性和良好的用户体验使其成为现在最流行的流数据计算框架
-
2.4.4. S4最大的优点是*低延迟、可扩展
-
2.4.5. 最大的缺点是部分容错,不支持节点的动态增减
2.5. Twitter的实时数据处理框架Storm
-
2.5.1. Storm核心的抽象概念是“流”
-
2.5.2. 流是一个分布式并行创建和处理的无界的连续元组(Tuple)
-
2.5.3. 流通过一种模式来定义,该模式是给流元组中的字段命名
-
2.5.4. 随机分组(Shuffle Grouping)
-
2.5.4.1. 随机分发元组到Bolt的任务,保证每个任务获得相等数量的元组
-
2.5.5. 字段分组(Fields Grouping)
-
2.5.5.1. 根据指定字段分割数据流并分组
-
2.5.6. 全部分组(All Grouping)
-
2.5.6.1. 元组被复制到Bolt的所有任务
-
2.5.7. 全局分组(Global Grouping)
-
2.5.7.1. 全部流都分配到Bolt的同一个任务,明确地说,是分配给ID最小的那个任务
-
2.5.8. 无分组(None Grouping)
-
2.5.8.1. 你不需要关心流是如何分组的
-
2.5.8.2. 无分组等效于随机分组
-
2.5.8.3. 最终Storm将把无分组的Bolts放到Bolts或Spouts订阅它们的同一线程去执行
-
2.5.9. 直接分组(Direct Grouping)
-
2.5.9.1. 这是一个特别的分组类型
-
2.5.9.2. 元组生产者决定元组由哪个元组消费者任务接收
-
2.5.10. Storm的优点是适用场景广泛,可以用来处理消息和更新数据库(消息流处理),对一个数据量进行持续的查询并返回客户端(持续计算),或者对一个耗资源的查询进行实时并行化的处理(分布式方法调用)
-
2.5.11. Storm也具有很高的可伸缩性
-
2.5.12. 与S4相比,Storm更加可靠,保证所有的数据被成功地处理
-
2.5.13. 容易管理是Storm的设计目标之一
-
2.5.14. 与Hadoop相比,Storm集群更易于管理
-
2.5.15. Storm也拥有非常好的容错性,如果在消息处理过程中出了一些异常,它会重新安排这个出问题的处理逻辑
-
2.5.16. Storm保证一个处理逻辑永远运行,除非用户要求停止该逻辑
-
2.5.17. Storm的拓扑和消息处理组件可以用任何语言来定义,语言的无关性使得Storm能被更多用户接受
浙公网安备 33010602011771号