本篇主要介绍流数据的研究内容。
数据流处理准备知识。
1. 数据流模型的研究
数据流模型是对数据流的逻辑抽象,合理的数据流模型,可以改善数据流的处理效率,是设计高效的处理算法的基础。数据流分析模型主要包括:
滑动窗口模型(sliding window model)、界标模型(landmark model)和快照窗口模型(snapshot window model)。
快照窗口:
该窗口事先设定好起始(Ts)和结束时间戳(Te)并保持固定,仅考虑Ts和Te之间的数据流。
界标窗口:
该窗口包括从某一起始时间戳(Ts)到当前时间戳(Tc)之间的所有数据流,其中初始时间戳始终不变。
滑动窗口:
该窗口的起始和结束时间戳都可以变化,新的数据进入滑动窗口,而旧的数据则不断被删除。
在以上这三种窗口中,界标和滑动窗口具有处理新数据的能力,更接近于实际的应用,尤其是滑动窗口应用尤为广泛。
2. 目前数据流的研究主要集中在数据流管理系统和数据流分析两个方面。
数据流管理主要从系统的角度针对不同的应用背景,重点研究数据流的查询语言、查询模型、操作调度、资源管理、负载控制等与管理系统密切相关的问题。与数据流管理的
研究问题相比较,数据流分析偏重于理论研究,更多的关注与分析相关的处理算法。
关于数据流管理系统的研究,在上一篇中我们已经做了简单介绍。
国内外许多大学和研究机构依托数据库管理系统的设计思路,针对具体行业背景,相继提出了多种数据流模型,并研发了一些具有代表性的数据流管理系统。典型的
有:
STREAM(Stanford Stream Data Manager):它是斯坦福大学推出的一个通用型数据流原型系统,以关系型数据为基础设计了一种支持数据流的连续查询语言:CQL(Continuous Query Language)。STREAM系统的设计目标是在资源紧张的情况下能有效地给出连续近似的查询结果。其设计重心为针对连续、时变数据流的管理与近似查询处理,主要的研究内容包括:查询语言、操作调度、资源管理、负载控制等。该系统能适应海量、快速和易变的数据流环境,具有非常好的连续查询能力。
TelegraphCQ:该原型系统由加州大学伯克利分校开发,建立在开源数据库Postgresql之上。它采用工作流系统的设计思想,查询处理上基于主动查询处理引擎,并通过元组路由和分组过滤技术实现了多查询操作算子的共享。其重点考虑自适应处理和基于流水线的动态操作调度等。
Aurora&Borealis:Aurora系统是布朗大学、布兰蒂斯大学和麻省理工大学联合开发的一个实时数据流系统,该系统主要针对三类应用:实时监控应用、数据归档型应用和包含对历史与当前数据处理的应用。该系统偏重于实时处理,如:QoS管理,内存感知的操作调度,基于语义的负载控制,以及支持归档的存储管理等。
Gigascope:它是AT&T实验室开发的高性能数据流管理系统,主要用于分布高速网络数据流的监控[14]。该系统采用两层查询结构,能够根据流速和可用资源选择最恰当的处理策略。
数据流分析方面包括:
数据流频繁项集挖掘
数据流聚类
数据流分类
数据流离群点检测
数据流Skyline计算
数据流子序列匹配
数据流索引结构
数据流概要结构生成
数据采样以及压缩
数据流粒度表示
数据流相似性度量
数据流趋势预测
等内容。
目前这方面的研究国内外已有丰富成果。特别是数据流管理、数据流聚集分析和数据流挖掘得到广泛而深入的研究。
3. 数据流挖掘的挑战
针对数据流模型的特点,目前的工作主要有以下挑战:
低时空复杂度。无限快速性是数据流的基本特点,从而无限快速的流数据与有限资源(计算、存储和网络带宽等)之间的矛盾成为数据流研究面临的基本矛盾。数据流规模在理论上是无限的,为保证算法能适应无限快速的数据流处理,要求数据流算法具有非常低的时空复杂度。
增量近实时性。数据流的单遍扫描性要求算法必需具备可增量更新的功能。由于历史数据通常不再保存,原有针对数据库中持久存储的数据而设计的可多遍扫描的算法将不再适用于数据流应用,针对不同的数据流分析处理问题,都将需要设计相应的可增量更新的数据结构和算法;数据流的快速性势必要求算法能近实时的处理每个流数据,通常要求算法具有线性甚至次线性的处理速度[,次线性可通过抽样等技术获得。
自适应近似性。数据流的不确定性和时变性要求算法具有自适应的功能。数据流算法应能及时检测到数据流的动态变化,如负载、流速和数据分布等的变化,并根据变化而自适应的调整算法的相应参数,进而提高算法稳定性和可靠性,例如过载情况下可通过调度优化、负载平衡和降载(Load Shedding)等技术进行处理;数据流应用通常仅需满足精度要求的近似结果,其算法可应用近似算法的设计思想和方法。