巨量数据流实时处理的新方法

  • 格式:pdf
  • 大小:273.60 KB
  • 文档页数:4

文章编号:100923443(2004)0520015204

巨量数据流实时处理的新方法张 睿1, 陈 鸣2, 孙文桥3(1.解放军理工大学通信工程学院,江苏南京210007;2.解放军理工大学指挥自动化学院,江苏南京210007;

3.解放军第210医院,辽宁大连116021)

摘 要:在处理资源有限的情况下,传统的DBMS系统不能实时有效地处理和查询连续的和数量巨大的数据流,而DSMS作为解决此类问题的新方法得到广泛的研究。DBMS通过引入新算子和新的查询模型,提高了数据处理和查询的效率。首先介绍了DSMS的概念,分析了DSMS系统的原理与结构,然后对具有代表性的DSMS实例进行了介绍和比较。关键词:数据流;数据流管理系统;查询中图分类号:TP311文献标识码:A

NewProcessMethodforUnboundedDataStreamZHANGRui1, CHENMing2, SUNWen2qiao3(1.InstituteofCommunicationsEngineering,PLAUniv.ofSci.&Tech.,Nanjing210007,China

;

2.InstituteofCommandAutomation,PLAUniv.ofSci.&Tech.,Nanjing210007,China;3.No.210HospitalofPLA,Dalian116021,China

)

Abstract:Withboundedresources,traditionalDBMScan’tprocessandquerythecontinuousandunbound2

eddatastreaminrealtime,andDBMSisresearchedwidelyasanewmethodtodealwiththisproblem.Theefficiencyoftheprocessandthequeryisimprovedwiththenewoperatorandthenewquerymodelin2troducedinDBMS.Firstly,theDSMSconceptisintroduced,andtheprincipleofDSMSaswellasthear2chitectureofDSMSisdiscussed.FinallyseveraltypicalDSMSinstancesareintroducedandcompared.Keywords:datastream;DSMS(datastreammanagementsystem);query

收稿日期:2004203210.

基金项目:国家863计划资助项目(2001AA112090);江苏省自然科学基金资助项目(BK2001022).

作者简介:张 睿(1977-),男,博士生.

随着Internet以及数据密集型应用的发展,产生了大量待处理的实时数据,例如网络监测数据、电信呼叫记录、金融应用数据、Web日志及点击流等。这些实时数据具有连续性、数据量极大、生成速度快和生成速率随时间变化等特点。而对这些数据的处理又要求能够做到连续不间断的查询,甚至要求实时的连续查询。在有限的内存和处理器资源的情况下,保证这些实时数据能够快速、有效的处理变得越来越重要。传统的关系数据库管理系统在处理有限的存储数据方面是高效的,但是处理此类数据则效率低下,甚至无法处理。因此一些处理实时巨容量数据的新方法成为目前数据库领域研究的新热点。其中,基于数据流(datastream)概念[1]的数据流管理系统DSMS的研究[2~6]最具有应用前景。数据流是指一些带有时戳并属于相同模式的元组的集合,而数据流的处理结果一般与元组的到达时间及前后次序有紧密的联系[7]。

1 DSMS与DBMS

传统的数据库管理系统DBMS特点:①处理的数据具有持久性;②查询的方式是一次查询;③读取数据的方式是随机读取;④存取的计划是由查询处理器和物理DB的构造所决定。而实时巨容量数据

第5卷第5期2004年 月解放军理工大学学报(自然科学版)JournalofPLAUniversityofScienceandTechnologyVol.5No.5Oct.2004的处理要求决定了DSMS必须具有以下特点:①处理的数据具有过渡性,即初始数据需要加工处理才能变成持久性的数据;②查询的方式是连续查询,由数据驱动查询的动作,只要数据不结束,查询就一直保持,因此必须具有在线处理的能力;③读取数据的方式是连续读取,一般按照到达时间的先后依次处理;④不可预知的数据特点和到达方式决定了存取计划的不确定性。DSMS系统的最终目标是在有限的处理资源(内存和处理器)和能够达到查询规划要求的前提

下,具有查询时间最短的数据流处理能力,并且支持实时的连续查询。

2 DSMS原理与结构2.1 DSMS原理 DSMS的原理是建立一种查询模型,如图1所示。这种查询模型具有3个连续性特点:①输入的待处理数据具有连续性,数据在时间和次序上具有敏感性;②查询具有连续性,即数据驱动查询,数据不结束则查询不结束;③输出的查询结果具有连续性,

查询的结果可以是一次查询的结果,也可以是连续的数据流。

图1 DSMS的查询模型Fig.1 QuerymodelofDSMS

凡具有以上3个特点的数据管理系统都可以认为是基于DSMS原理的数据管理系统。

2.2 DSMS结构通过对目前已有的DSMS实例总结,DSMS的结构都应该包括3大部分:查询处理器、输入输出接口和存储器,如图2所示。在图2的查询处理器中,

有2个正在执行的连续查询计划Q1和Q2。Q1的查询结果是数据流A和B经过ς算子处理后的结果,与数据流C经过Χ算子处理后的结果,再经过Α算图2 DSMS的结构Fig.2 ArchitectureofDSMS子处理后的最终输出结果。Q2的查询结果是数据流C经过Χ算子和Β算子处理后的最终输出结果。从图2中可以看出DSMS结构最核心的部分是查询处理器。查询处理器拥有处理资源,负责数据的查询处理。所有的查询处理器都必须有存放数据的队列,处理数据的算子以及负责运算控制的调度机制。算子需要根据查询的约束条件对数据流进行过滤,按照算子运算语言的不同,可以将算子分为两类:SQL算子和Ad2hoc算子。SQL算子的语言是以关系查询语言SQL为基础,对其语义进行扩展,对语法进行简化和引入等价的概念[8],建立SQL语言中数据流到关系和关系到数据流的映射,并且提高SQL语言在处理数据流时的效率。Ad2hoc算子就是独立开发的新语言,需要定义语言的语法和语义。Ad2hoc算子的性能一般都具有侧重点,与语言的设计者最初的设计目标紧密相关,但是开发的难度较大。在DSMS系统中,操作系统的调度不能满足DSMS系统所要达到的运作效率,因此需要设计独立的调度控制机制来协调并发查询任务的执行。调度控制机制的调度算法可以根据调度目标的需求来设计,例如最小的查询处理时延、内存的使用情况和饥饿程度等。优化调度控制器的调度算法可以提高查询处理器的效率。目前,DSMS研究的目标一般都集中在内存的管理[9~11]、算子的语言设计[3,4,8]和调度机制的优化[3,4,12]方法3个方面。输入输出接口的作用是为查询处理器输入数据流,输入的数据流可以是多条。为查询处理器输入查询条件,提高查询的效率,可以将相近或相关的查询进行合并。为用户或者应用输出查询结果,结果的表

61解放军理工大学学报(自然科学版)第5卷 现方式可以是多样的:一次查询的方式、基于事件或定时器的方式、周期性的方式和连续的方式等;提供管理员监视DSMS系统的资源利用情况,管理员可以根据资源利用情况,动态地调整调度方式,达到查询处理器的处理效率全局最优。存储器存储经过处理后形成的持久数据,这些数据可以用于离线情况下的数据挖掘和分析。3 DSMS实例数据流处理的研究有广泛的应用需求。例如:网络安全,通常需要对网络上的数据包流设置复杂的规则进行过滤查询;日志分析,一些Web站点的服务都是通过分布式的Web服务来提供,这些分布式的Web服务需要对访问站点的点击率分析,以此为依据进行负载均衡,个性化服务等;金融服务,为用户提供对实时的金融数据流(如股票、期货等)的查询。这些应用都需要具有对巨量数据流实时处理的能力,而DSMS系统可以作为开发这些应用的底层数据处理平台。目前,STREAM(Stanfordstreamdatamanag2er)[1],TelegraphCQ和Aurora等研究机构正在开发通用的DSMS系统,他们的结构都具备DSMS系统结构的特点,但又各有侧重点。他们的特点比较,如表1所示。表1 3种DSMS系统的性能比较Tab.1 PerformancecomparisonamongthreekindsofDSMS系统通用性算子类型语言效率内存管理优化能力接口友好程度STREAM通用SQL算子高动态(手动)一般较好Telegra2phCQ通用SQL算子一般动态强好Aurora通用Ad2hoc算子高动态较强一般3.1 STREAMSTREAM是美国斯坦福大学正在开发的DSMS系统。它定义了一种公开的连续查询语言CQL[8](continuousquerylanguage),建立了数据流到关系、关系到关系、关系到数据流的映射[13]。CQL语言是SQL语言的一个超集,对SQL语言的语义进行了扩充,简化了SQL语言的一些语法,引入了等价的关系,使CQL能够处理数据流,且在关系运算上比SQL效率有所提高。另外,CQL语言还引入了WindowSpec.Language(SQL299)来定义数据流的存取方式。STREAM还为管理员提供了监视系统运行状况的接口,可以了解系统运行时内存的使用情况,通过管理员手动对有限的内存进行合理分配。另外STREAM还通过利用近似统计的查询结果来代替精确查询以提高查询的效率[14]。

3.2

TelegraphCQ

TelegraphCQ[15,16]是美国伯克利大学研发用于

电报查询的DSMS系统。它的特点是查询处理器处理数据流时具有自适应性,这种自适应性主要体现在调度控制器内部实现了自适应路由机制,自适应的目的是为了实现查询过程中的再优化。数据流中的每个数据单元都被打上标签,控制器中的路由组件根据路由策略将每个分组转发到相应的处理算子进行计算。在动态的连续查询中,只要改变相应的路由策略就可以控制分组的走向,从而达到查询的动态再优化能力。TelegraphCQ采用了PostgreSQL[3]来实现

TelegraphCQ算子功能,但PostgreSQL语言本身并不具有对数据流处理和连续查询的能力。因此,