论文部分内容阅读
随着新型网络应用的不断出现,流形态数据已经成为数据管理领域研究的新热点。与传统数据相比,数据流具有时变、高到达速率和大数据量等特点。在CPU和存储资源有限的约束条件下,需要对数据流管理系统的体系结构进行全新的设计和实现。目前比较完整的数据流管理原型系统有Aurora、Borealis和STREAM。其中前两个系统由布兰代斯大学、布朗大学和麻省理工学院合作开发,而STREAM则是由斯坦福大学单独完成的。Aurora系统提供了完整的数据流处理功能,但只支持基于网络流的查询表达;STREAM在SQL的基础上定义了语义明确的数据流查询语言CQL,但并没有完整的系统实现。为此,本课题基于Aurora开发了支持CQL的数据流管理系统Conger。本课题首先比较了当前的几种数据流查询语言,其中包括Aurora的基于网络流的查询语言和STREAM的类SQL的查询语言Stanford CQL。我们分析了各个查询语言之间语义有分歧的的部分,并给出了我们的解决方案。综合这些语言的优缺点,设计了一个具有丰富表达能力、易于使用的持续型查询语言Conger CQL本课题基于ANTLR3的扩展BNF描述了Conger CQL的语法定义。然后,我们在Aurora的基础之上实现了Conger CQL,具体包括使用ANTLR3解析用户注册的CQL得到查询参数,并与Aurora操作符绑定,最终生成物理执行计划。为了验证Conger CQL的表达能力,本课题实现了Linear Road Benchmark(LRB)的计费管理模块。Linear Road Benchmark是Aurora和STREAM的开发者合作设计的一个数据流管理系统的基准测试。LRB测试表明Conger CQL具有丰富的表达能力,完全可以表达复杂的持续型查询。