分布式数据流关系查询技术研究pdf

分布式数据流关系查询技术研究pdf
分布式数据流关系查询技术研究pdf

网络出版时间:2015-10-20 13:01:53

网络出版地址:https://www.360docs.net/doc/8d10720002.html,/kcms/detail/11.1826.TP.20151020.1301.004.html

第38卷计算机学报V ol.38 2015 论文在线出版号No.104 CHINESE JOURNAL OF COMPUTERS Online Publishing No.104

分布式数据流关系查询技术研究

王春凯, 孟小峰

(中国人民大学信息学院,北京100872)

摘要在线分析连续数据流的需求日益增多,用于实时处理海量、易变数据的数据流管理系统由此产生。大数据时代下,随着开放式处理平台的发展,为处理大规模且多样化的数据流,出现了若干分布式流处理系统,如S4, Storm, Spark Streaming 等。然而,为提升处理系统的易用性和处理能力,需要在之上构建具有抽象查询语言的关系查询系统,以构筑完整的分布式数据流管理系统。如何设计并实现高效易用的关系查询系统是一个亟待解决的问题。本文首先概述了分布式数据流查询处理的典型应用、数据特征和实现目标。进而,提出了分布式数据流关系查询系统的基础架构,并基于此架构深入分析了用户自定义函数查询、查询优化、驱动方式、编译技术、算子管理、调度管理和并行管理等关键技术。然后,对比分析了SPL, StreamingSQL, Squall, DBToaster四种具有代表性的查询系统实例。最后,指明了该技术在优化技术、执行策略、实时精准查询和复杂查询分析等方面所面临的挑战和今后的研究工作。

关键词大数据;数据流;流处理系统;流查询系统;关系查询技术

中图法分类号TP311

论文引用格式

王春凯, 孟小峰,分布式数据流关系查询技术研究,2015,V ol.38:在线出版号No.104

WANG Chun-Kai, MENG Xiao-Feng, Relational Query Techniques for Distributed Data Stream: A Survey, Chinese Journal of Computers,2015, V ol.38: Online Publishing No.104

Relational Query Techniques for Distributed Data Stream: A Survey

WANG Chun-Kai, MENG Xiao-Feng

(School of Information, Renmin University of China, Beijing 100872)

Abstract The applications that require online processing continuous data stream are increasing. Data stream management systems which are used to deal with massive and variable data in real time have been produced.

With the development of open processing platforms in the ear of big data, a number of distributed data stream processing systems have emerged for dealing with large scale and diverse data stream, such as S4, Storm, Spark Streaming, etc. However, we should construct relational query systems which have abstract query language on basis of the processing systems for improving the ease of use and processing capability of them, so as to build complete distributed data stream management systems. How to design and realize the high efficiency and easy-to-use query systems is a great challenge. In this survey, we first provide an overview of typical applications, data characteristics and achieve goals of distributed data stream query processing. Furthermore, we propose the framework of distributed data stream relational query systems. Based on the framework, we analyze the key techniques in several aspects: UDF query, query optimization, query-driven approaches, compiling techniques, operator management, scheduling management and parallel management. Then, there is the ———————————————

本课题得到国家自然科学基金项目(61379050, 91224008);国家“八六三”高技术研究发展计划项目基金计划项目(2013AA013204);高等学校博士学科点专项科研基金资助课题(20130004130001);中国人民大学科学研究基金(11XNL010)资助. 王春凯,男,1981年生,博士研究生,主要研究领域为分布式数据流管理,E-mail: chunkai_wang@https://www.360docs.net/doc/8d10720002.html,. 孟小峰,男,1964年生,博士,教授,博士生导师,主要研究领域为网络数据管

2 计算机学报2015年

comparison of representative query systems including SPL, StreamingSQL, Squall and DBToaster. Finally, some new challenges are put forward, including optimization technique, execution strategy, real-time precise query and complex query analysis.

Keywords big data; data stream; stream processing system; stream query system; relational query technique

1引言

近年来,随着社交网络、物联网和移动互联网等领域的快速发展,数据量呈爆炸式增长,大数据时代已真正到来[1-3]。在这些应用中,数据变化的速度越来越快,需要处理和响应的时间越来越短,针对大数据3V特性[4]中的高速性(velocity)处理显得非常重要。因此,数据流的实时分析和流式处理成为当今热点研究领域之一。

二十一世纪初,学术界开始对数据流管理系统(data stream management system,DSMS)展开研究工作并推出了原型系统,如Aurora[5],TelegraphCQ[6]和STREAM[7]等。研究者认为,数据流的产生一般通过外部资源获取(如,传感器网络等),而非人为主动地发出数据,因此,数据流管理系统属于系统主动-用户被动(system-active human-passive)[5]的管理模式。此外,数据流管理系统处理的数据重点是按照时间排序的内存数据,这要求系统具有序列化的访问模式和实时的响应时间。并且,数据库管理系统(data base management system,DBMS)一般提供即席(ad-hoc)查询模式,而数据流管理系统往往针对的是连续查询(continuous query,CQ)。表1对数据库管理系统和数据流管理系统进行了对比分析。

表1数据库管理系统和数据流管理系统对比分析

对比指标系统管理模式数据状态访问模式响应时间查询模式数据库管理系统用户主动-系统被动历史数据随机访问非实时响应即席查询数据流管理系统系统主动-用户被动时间序列数据序列访问实时响应连续查询

大数据时代下,出现了使用MapReduce[8]编程框架的分布式数据库管理系统,文献[9]对使用MapReduce框架的关系查询处理语言、实现的算子以及系统实例等整个分布式数据管理系统的生态圈进行了详实的综述和分析。为满足数据流海量和高速等特点的流式处理,工业界和学术相继出现了大量的分布式数据流处理系统,如Yahoo!的S4[10], Twitter的Storm①[11]和伯克利大学的Spark Streaming②等。目前国内外对分布式数据流处理的相关综述文章包括:文献[12]对大数据流处理的关键技术和流行的系统实例进行了分析;文献[13]着重关注数据流处理系统的实现技术;文献[14]把分布式流处理系统作为一种实时处理的内存数据管理系统进行了说明。然而,目前的分布式数据流处理系统对数据的查询操作需要用户编码实现,系统本身未提供相应的查询语言。因此,为提高处理系统的易用性和处理能力,增强应用程序的可重用性和移植性,需在处理系统之上实现具有抽象查询语

①https://www.360docs.net/doc/8d10720002.html,/

②https://https://www.360docs.net/doc/8d10720002.html,/streaming/

言的关系查询系统③,以构筑完整的分布式数据流管理系统。本文重点分析查询系统中关于关系查询技术④的相关研究工作。

本文的组织结构如下:第2节总体概述分布式数据流查询处理的典型应用、数据特征和实现目标;第3节提出了分布式数据流查询技术的基础架构,并基于此架构深入分析了用户自定义函数查询、查询优化、驱动方式、编译技术、算子管理、调度管理和并行管理等关键技术。第4节对比分析了具有代表性的数据流查询系统;第5节指明了针对优化技术、执行策略、实时精准查询和复杂查询分析等方面所面临的挑战和今后的研究工作。

2分布式数据流查询处理概述

分布式数据流处理系统具有查询响应时间短、查询精度高、可靠性强、易于扩展和使用灵活等特点。然而,数据流往往具有监控周期长、输入速率

③下文将关系查询系统简称为查询系统

④下文将关系查询技术简称为查询技术

论文在线出版号No.104 王春凯等:分布式数据流关系查询技术研究 3

不稳定等特征。在处理系统之上,如何构建高效、易用的查询系统是满足用户查询需求的关键所在。

本节列举了分布式数据流查询处理的典型应用,分析了查询处理中分布式数据流的特征,并阐述了查询处理的相关目标。

2.1分布式数据流查询处理的典型应用

分布式数据流处理系统的应用范围较为广泛。如,微博、Twitter等社交网站提供实时搜索博文的服务;移动互联网领域提出的实时监控移动宽带业务的需求;金融领域针对高频交易的实时分析软件;以及电子商务领域的实时推荐系统等。

随着这些应用需求的不断扩展,出现了相关的查询系统。如,洛桑联邦理工学院数据实验室基于Storm推出了针对实时查询处理的Squall①系统;文献[15]为提升Squall连接操作的扩展性并降低数据的冗余度,推出了BiStream系统;以及腾讯公司基于Storm设计的实时数据流推荐系统TencentRec[16]等。

2.2 分布式数据流的特征

为确保分布式数据流的实时处理,需要对数据流的传输和模型进行说明。

(1) 数据流传输。为保证实时、完整且稳定地将数据流传输到处理系统,一般可通过消息队列和网络Socket传输等方法完成,以保证将数据发送到每台物理节点,为数据处理提供保障。利用消息队列的方式进行数据采集和传输是较为常用的一种方法,常见的消息队列产品有Facebook的Scribe②、LinkedIn的Kafka③和Cloudera的Flume④等。

(2) 数据流模型。在查询处理过程中,由于数据流的来源不同,需要针对不同的数据源制定不同的数据样式。一般来讲,通用的数据流管理系统支持关系型数据模型,数据定义语言是基于关系型的原子类型,便于以属性和元组的形式划分和发送数据;针对特殊领域的数据流管理系统,可根据领域数据的特点设计基于对象类型的复合数据类型。如,针对传感器网络的COUGAR[17]和管理网络数据传输的Tribeca[18]。

2.3分布式数据流查询处理的目标

将分布式数据流查询处理集成到处理系统之上,可便于用户灵活地调用处理系统的函数库,提高处理系统的易用性。分布式数据流查询处理需要

①https://https://www.360docs.net/doc/8d10720002.html,/epfldata/squall

②https://https://www.360docs.net/doc/8d10720002.html,/facebookarchive/scribe

③https://www.360docs.net/doc/8d10720002.html,/

④https://www.360docs.net/doc/8d10720002.html,/ 实现的目标可总结为以下几点:

(1) 声明式查询语言。类似于基于Hadoop⑤构建的Hive[19]中设计HiveQL的思想,在数据流处理系统之上设计的查询系统需支持类SQL的声明式描述语言,并将查询计划自动编译成处理系统的工作任务。利用查询系统提供的算子库可降低用户使用处理系统的难度,提升使用效率。

(2) 查询的自适应性。为应对分布式数据流传输速率不稳定和数据动态分布等特点,查询系统应具有自适应性。可根据查询算子处理数据流的时间变化、查询谓词选择率的变化以及数据流传输速率的变化,实现查询算子的动态调度和自适应地查询处理[20]。

(3) 查询的可扩展性。为快速响应查询请求,查询系统需支持查询算子的可扩展性。设计完备的可扩展策略,可降低分布式处理的开销,提高查询性能。可扩展性策略一般涉及到两个方面:①伸缩性:可根据处理数据流数量的变化,动态增减处理节点。②有效性:尽量提高新增处理节点的使用效率,充分利用集群的整体资源。

(4) 查询的容错性。查询系统的查询过程中,一般存在两种数据丢失的现象。一种是执行过程中算子状态信息的数据丢失,这种数据的丢失往往通过复制算子的状态信息进行容错处理;另外一种是分布式环境下网络传输过程中的数据丢失,这种情况一般通过上游备份[21]和主动备份[22]等策略进行容错处理。

(5) 查询的实时性。由于数据流具有不稳定性和易变性等特点,需要实时获取查询过程的中间结果。可根据用户接受的查询延迟时间,设定批量处理数据的大小[23],将查询结果分批返回给用户;或者可引入过程调用等技术,将运行结果实时返回给用户,如在Storm中引入的分布式远程过程调用(distributed remote procedure call, DRPC)技术。

3 分布式数据流查询技术研究

新型的分布式数据流处理系统,提供开放的编程接口,可为用户提供丰富的计算资源。然而,如何高效、便捷地使用处理系统提供的计算资源,是设计查询系统的关键所在。本节首先提出分布式数据流查询系统的基础架构,然后重点分析用户自定义函数(user defined function, UDF)查询、查询优化、

⑤https://www.360docs.net/doc/8d10720002.html,/hadoop

4 计 算 机 学 报 2015年

查询驱动方式、编译技术、算子管理、调度管理和并行管理等关键的查询技术。 3.1 分布式数据流查询系统架构

分布式数据流处理系统具有高扩展性、高可用性、负载均衡和容错控制等特性。因此,在这种开放式处理系统之上构建的分布式数据流查询系统

不同于传统的集中式系统。这要求系统在查询优化、调度管理和并行管理等方面要有满足分布式特征的架构体系。我们归纳总结了分布式数据流查询系统的技术要点,并设计了基础架构。如图1所示,该架构被分为5个方面。

查询解析层

流处理系统层

语法解析

词法分析 语义解析

实时查询监控

语法分析

逻辑计划逻辑优化 用户接口层

用户自定义函数库

SQL 接口/Script 接口

基础算子

物理计划

物理优化

查询管理层

数据字典

全局管理

系统配置参数设置日志管理

数据采集

数据流传输

消息队列

数据流处理

集群管理容错控制

协调服务zookeeper

处理单元管理

负载均衡

编译技术硬件资源

编译框架

调度管理调度优化

路由决策

并行管理划分策略

粒度设定

驱动方式

有窗模式

无窗模式

算子管理维护策略

共享策略

图1 分布式数据流查询系统架构

(1) 用户接口层。该层负责接收用户的查询请求,提供统一的查询接口。制定相应的SQL 查询标准,并支持用户自定义函数(UDF)的访问模式和复杂查询过程的脚本模式,以及提供图形化的访问界面等。

(2) 查询解析层。根据用户接口层提交的查询请求,进行语法和语义解析;完成词法和语法的解析任务,生成相应的逻辑查询计划和物理查询计划并对其进行优化。该层还提供基于查询处理所需的基础算子库,以及根据用户需求构建的用户自定义函数库。

(3) 查询管理层。控制查询系统的整体流程,是提升查询性能的关键一层。我们将该层分为五个模块:①查询驱动方式:根据查询请求制定不同的查询驱动方式(如,滑动窗口和无窗口的驱动方式)。②编译技术:根据新型的硬件资源特征设计的查询编译框架及其优化技术。③算子管理:针对分布式环境下有向无环图(directed acyclic graph, DAG)的处理方式,需根据系统性能和算子状态信息,设计查询系统的部署和维护策略;以及针对多查询处理的应用场景需引入的算子共享机制。④调度管理:为满足自适应性的查询需求,对查询算子和数据流

论文在线出版号No.104 王春凯等:分布式数据流关系查询技术研究 5

需进行实时的调度优化和动态的路由决策。⑤并行管理:分布式环境下,实现针对算子和数据流的划分策略。以及为提升处理系统的性能,动态设置各个处理节点的并行度。

(4) 流处理系统层。完成多数据源的传输和查询任务的执行。处理层一般利用zookeeper[24]进行协调服务。其中,数据流传输往往通过消息队列的方式实现(详见2.2节)。数据流处理系统完成执行查询任务的核心功能,负责管理集群和各个处理单元,以及系统底层的负载均衡和容错控制等。(5) 全局管理模块。负责全局数据词典的维护和更新,并实现全局查询处理的实时监控功能,以及完成整个数据流查询系统的配置信息和日志管理等任务。

3.2分布式数据流查询处理关键技术研究

通过对分布式数据流查询系统架构的分层说明,我们可将流查询系统涉及到的关键技术归纳为:关注于支持复杂任务分析的用户自定义函数(UDF)查询,查询解析过程中的查询优化,驱动方式,编译技术,算子管理,调度管理,以及针对分布式shared-nothing处理框架的并行管理等。

3.2.1用户自定义函数查询

用户自定义函数(UDF)是数据库管理系统可扩展的高级功能,允许用户通过创建存储方法将复杂SQL逻辑封装成函数,便于用户使用。用户自定义函数(UDF)可发挥其灵活和易用的特性,充分提高查询系统的查询效率和处理能力。

用户自定义函数(UDF)一般有三种类型:标量UDF,源UDF和聚集UDF。标量UDF一般利用返回值为确定类型的标量函数定义,用于操作数据库中标量类型值(如,获取子字符串SUBSTR的标量函数)。源UDF是基于已存在函数的扩展,一般可通过系统内置函数或已定义的UDF表示。除了可利用标量函数外,还可针对数据表的列进行扩展操作(如,SELECT语句中求最大值MAX的列操作)。聚集UDF,又称为用户自定义聚集函数(user defined aggregation, UDA),是在UDF的基础上增加了数据分析和挖掘的功能。UDA往往用于决策支持系统,被认为是数据库高级应用的关键所在。UDA作用范围较广,除了可对标量类型和列进行操作外,还可操作整个数据表的任意列。如IBM DB2上实现的高级语言SADL[25],可支持针对数据表的不同聚集操作。表2总结了各种UDF的应用范围。

表 2 UDF应用范围

标量列表标量UDF √- -

源UDF √√-

UDA √√√

在分布式数据流查询系统中,针对数据流动态、易失和非确定等特点,文献[26]提出了在非确定数据集上支持UDF的通用框架,并通过基于高斯过程[27]的学习方法,可计算输出UDF结果的近似分布情况,确保查询结果的错误区间。文献[28]基于MapReduce编程模型,利用数据重排的方式为数据划分做预处理,进一步优化了UDF的执行效率。文献[29]构建了UDA的执行框架,重点涉及到关于UDA的查询优化、查询重写和视图维护等关键流程。文献[30]解除了UDF中包含强制性构建函数(如,条件分支、循环等)的相关性,允许以面向集合的方式执行查询。通过将嵌套查询重写成平面查询的方法,生成对应的UDF树,并利用转换规则对其进行优化。

通常支持UDF的查询系统需要构建支持UDF 的查询分析器和函数库,再根据UDF的查询处理流程生成对应的查询计划和执行计划。

3.2.2查询优化

查询优化是查询处理的永恒主题,针对数据流易变的特点,查询系统需要快速响应用户提交的查询请求。一般的优化方法分为编译时的静态优化和运行时的动态优化,现归纳如下:

(1) 静态优化

静态优化可分为逻辑优化和物理优化两种。

逻辑优化。一般采用基于启发式的优化规则,比如优先做选择和投影、剪枝优化、连接条件下推等规则。在分布式环境下,数据流查询系统一般均支持有向无环图(DAG)的处理模型。此时,基于规则的逻辑优化可将规则转换器传入有向无环图(DAG)的拓扑结构中顺序执行,通过查询重写得到优化后的执行计划。

物理优化。从逻辑计划可以派生出多个物理计划,物理优化器则对每个物理计划进行代价估计,从而选择出最小估计代价的物理查询计划,这种代价估计往往基于数据分布的元数据信息。在分布式环境下,需要利用调度器协同考虑各节点的计算能力。在流应用场景中,数据分布的元数据信息可以根据历史数据的信息进行估计(如,算子的选择率,数据流速等)。基于这些统计信息,查询优化器可以

6 计算机学报2015年

估计中间结果的大小。另外,基于分布式集群中各节点的资源配置情况,估算出不同算子在不同节点上的执行代价。

(2) 动态优化:数据流是源源不断输入的,数据分布的信息难以预测和准确估计。由于最优查询计划的代价是基于查询提交时获取的统计信息来估算的,但这些统计信息在查询执行过程中往往会发生改变,很可能导致“最优”查询计划的执行代价变得很高。因此,在查询提交时由优化器选中的查询计划很难保证在整个查询执行过程中都是最优的。这就需要在查询执行的过程中,动态自适应地优化查询执行计划。

表3对比分析了不同的查询优化技术。关于静态优化的代表技术,康奈尔大学数据库研究组设计了基于规则的多查询优化框架RUMOR[31]。该框架针对多查询需要共享状态和计算的特点,扩展了基于规则的查询和基于查询计划的处理模型。根据转换规则,扩展和映射流到信道的关系,并基于自动机的事件监控系统[32]向基于关系的查询系统进行转换,将查询系统和事件监控系统集成到RUMOR 中。文献[33]提到的分布式多模型优化技术综合考虑了输出率和计算代价两个方面,并设计了在分布式环境下分解查询计划的算法,进一步提升了物理优化的效果。由于数据流不易确定表的基数,文献[34] 针对选择、投影、连接等不同算子构建基于速率的代价模型,并以最大输出速率为优化目标利用启发式规则生成优化框架。关于动态优化的代表技术,文献[35]在辅助系统上模拟原始数据流,用于验证优化的查询计划。在保证原始查询计划可正常执行的基础上,仅将已验证的有效查询计划迁移到主系统。文献[36]针对多个连续查询设计了基于共享的自适应优化方案A-SEGO。通过设置共享连接算子的代价边界,可从不同的优化策略中生成全局执行计划,在最优执行计划和执行优化的处理时间上寻求平衡点。

表3 查询优化技术

优化策略代表技术优化方式

静态优化

逻辑优化RUMOR[31]基于规则转换的多查询优化框架

物理优化

分布式多模型优化[33]基于输出率和计算代价的代价模型优化

基于速率的优化[34]产生输出速率最大化的查询计划

动态优化

基于模拟的优化[35]通过辅助模拟系统优化查询计划

A-SEGO[36]设置共享连接算子的代价边界进行二次优化

3.2.3 驱动方式

根据不同区间的数据流连续查询,可将查询驱动方式分为滑动窗口类型和无窗口类型两种,如图2所示。

滑动窗口将无限的数据流切分成若干有限子数据流,每次的查询处理仅针对当前滑动窗口内的子数据流。一般可根据用户设定的时间间隔或窗口内元组数量设定滑动窗口的大小。除此之外,CQL[37]引入了基于划分的滑动窗口,序列数据库SEQ[38]设计了基于属性值排序的划分窗口,在Aurora[5]系统中定义了翻转窗口等。

随着数据流挖掘算法的深入研究和分布式查询处理能力的不断提高,人们需要对窗口外的历史数据进行分析,基于窗口的驱动方式不能满足这样的要求。因此,需要引入无窗口的处理模式。在无窗口模式下,对全部历史(full-history)数据有两种处理方法。一种是引入衰减因子的概念,即数据流中越陈旧的数据对整个分析模型的影响越小。此类处理方法往往应用于数据流的挖掘算法中[39-41]。衰减因子还可分为多项式衰减[42],指数衰减因子[43]和前向衰减因子[44]等,以说明历史数据对分析模型的影响程度。另一种是随着分布式数据流处理系统的不断完善,以及实时监控等需求的发展,需要对全部历史数据给出实时精准的查询结果。Squall①和BiStream[15]对实时到来的数据流进行路由选择和可扩展的连接查询,保证查询的实时性和正确性;DBToaster[45]基于敏捷视图(agile view)[46]的方法,通过递归编译的思想对数据流进行增量处理,以获得全部历史数据的查询结果。

①https://https://www.360docs.net/doc/8d10720002.html,/epfldata/squall

论文在线出版号No.104 王春凯等:分布式数据流关系查询技术研究7 查询驱动

滑动窗口基

间无窗口

基于元组基

询图2查询驱动分类

可以看出,针对不同的查询需求和查询系统的处理能力,需要在控制管理阶段选择不同的查询驱动方式。

3.2.4编译技术

为满足流查询系统的实时快速响应,在考虑查询优化和调度优化的同时,需结合先进的硬件设施和编译技术进一步提高查询效率。

针对以计算为瓶颈的复杂分析任务(如,UDF 的决策支持等),需要应对较高的查询工作负载。这需要纵向扩展查询系统的处理能力,尽量提高CPU的处理效率,降低指令周期的处理时间。文献[47]基于MonetDB系统设计了一种基于向量处理模型的X100查询系统。运用块处理方式提高缓存的随机读写效率;并为进一步提高CPU的吞吐量,X100可将整个表达式编译成向量原语,无需单独编译各个函数。文献[48]利用与语言无关的LLVM[49]编译框架,将查询转换成高效的机器代码进行优化。并以数据为中心,将待处理的数据推向不同算子。通过利用单指令多数据(single instruction multiple data, SIMD) CPU寄存器实现的数据扫描方法[50],可在同一时刻处理多条数据,从而大大提高查询的并行处理能力。

除了将硬件设施和编译框架结合外,还可集成优化策略和编译技术。针对流查询处理均是在内存中进行操作的特点,文献[51]利用基于动态划分的部分分解存储模型(partially decomposed storage model)[52]和及时(just-in-time)编译的方法,在节省内存带宽的同时,尽量不影响CPU的处理能力。文献[53]设计的LegoBase查询系统,利用支持运行时编译和代码生成工具的LMS[54]框架,实现了高级语言和生成式程序结合的优化方案。Koch等人设计的DBToaster系统[45]在前端利用LLVM[49]编译框架生成LLVM程序,在后端利用LMS[54]框架递归编译增量的敏捷视图,生成相应的C++或Scala函数,实现对数据流的高效处理机制。

3.2.5算子管理

为满足用户的不同需求,在分布式环境下,需要对算子库中的算子进行高效的管理,以提升查询的效率,并确保查询的正确性。

为实时获取最新的查询结果,满足用户pay-as-you-go的计算模型,文献[55]在处理包含状态信息的算子时(如,连接、去重等算子),设计了具有检查、备份、恢复和划分等功能的算子模型,以保证查询系统具有自动扩展虚拟机数目和快速容错的能力。

在多查询的应用场景下,CQL[37]通过概要(synopses)存储中间状态结果,用于共享算子的处理。SBON[56]算法利用网络感知的算子部署,自动检测不同查询的数据共享和算子共享,提供多查询优化机制。文献[57]设计的共享感知的中间件技术,可共享多查询情况下的算子和中间结果,自适应地调整网络间的查询部署,提升查询效率。

分布式数据流查询系统中,针对连接算子的管理最为复杂。实现可扩展且实时的连接操作是一个具有挑战性的研究问题。如表4所示,我们总结了目前流行的分布式数据流在线连接算子的连接类型、连接模型和处理方式等相关特性。

Photon[58]是谷歌公司针对连接网络查询的数据流和用户点击广告的数据流而设计的,支持两种数据流的等值连接操作,通过中心协调器实现多数据中心的容错和扩展连接。利用向中心协调器注册查询事件的方法和多数据中心的分布式架构确保数据的完备性,并采用非阻塞方式实时处理新到来的每条元组。但Photon主要处理事件ID 的等值连接,不支持θ连接操作。

D-Streams[59]是Spark Streaming定义的数据流操作对象,可支持多数据流的θ连接。通过转换(transformations)操作,可利用底层Spark①提供的RDD[60]机制确保查询处理的正确性和容错性。D-Streams是将若干数据流元组以阻塞的方式构造成一系列的微批次(mini-batch)进行处理。这种处理方式也导致了某些离散的batch存在丢失连接元组对的现象,从而仅可获得近似的查询结果。

TimeStream[61]设计的弹性替代(resilient substitution)和依赖追踪(dependency tracking)机

①https://www.360docs.net/doc/8d10720002.html,/

8 计算机学报2015年

制,确保了数据流计算的可信赖性。针对任意数据流的θ连接操作提供MapReduce风格的批处理和非阻塞的元组处理两种方式。但TimeStream需要维护连接状态的依赖信息,通信代价较大。

ATR/CTR[62]是应对多个窗口数据流θ连接操作设计的自适应负载扩散算法。这两个算法可实现保留语义的元组路由功能,实现细粒度的负载均衡和连接操作的正确性。通过主从数据流切换的一步(one-hop)扩散法或基于路由表的多步(multi-hop)扩散法,可保证至少执行一次的语义保障。但ATR/CTR需要控制计算重复结果的开销,且只能处理基于窗口模式的数据流连接操作。

PSP[63]设计了基于时间的算子状态划分环以支持多个窗口数据流θ连接操作。流水线状态划分技术提供了每个连接子操作的状态信息,将连接算子拆分成若干子连接算子进行操作。但维护分布式的连接状态信息增加的系统的通信开销,且该操作受限于窗口模式下的数据流。

DYNAMIC[64]算子支持多个数据流的θ连接操作,使用基于矩阵的连接模型Join-matrix,冗余存储每个子处理单元的数据,并采用无窗口模式下的非阻塞元组处理方式以实时获取正确的查询结果。DYNAMIC算子设计的重组器(reshuffler)可动态设计划分样式,确保最小化的数据输入装载因子(input-load factor)。但该算子存储的数据冗余度较大。

JB[15]算子利用基于完全二部图概念构建的Join-biclique模型,将集群分成两个部分。JB算子可支持多个数据流的θ连接操作,并支持无窗口模式下的非阻塞元组处理方式,还可根据θ连接操作的负载程度动态扩展处理单元的数量。相对于DYNAMIC算子使用的Join-matrix模型来讲,JB算子使用的Join-biclique模型大幅降低了数据备份的冗余度,提高了资源利用率。但在数据分组时JB算子利用元组内容敏感性的混合路由策略,需要人工干预数据分组的参数设置。

表4 连接算子对比

连接算子连接类型连接模型处理方式算子特点

Photon[58]多数据流等值连接多数据中心非阻塞的元组处理优点:利用中心协调器实现容错和扩展的连接操作缺点:不支持θ连接操作

D-Streams[59]多数据流θ连接RDD转换阻塞的微批次处理优点:利用世系机制,实现快速容错降低连接时延缺点:有窗口大小的限制,某些离散的batch存在丢失连接元组的现象,导致只能获得近似查询结果

TimeStream[61]多数据流θ连接弹性替代和依赖追踪阻塞的批次处理、非阻塞

的元组处理

优点:利用元组依赖性,确保连接可靠性

缺点:连接状态的备份导致过高的通信开销

ATR/CTR[62]多数据流θ连接一部/多步扩散非阻塞的元组处理优点:根据数据特征实时自适应调度

缺点:基于窗口语义的操作,有窗口尺寸的限制

PSP[63]多数据流θ连接流水线状态维护非阻塞的元组处理优点:通过时间切片,构造环结构,将连接算子拆分成若干的子算子进行操作

缺点:连接状态的备份导致过高的通信开销,有窗口大小的限制

DYNAMIC[64]多数据流θ连接Join-matrix 非阻塞的元组处理优点:设计动态划分样式,最小化输入装载因子缺点:数据备份量大

JB[15]多数据流θ连接Join-biclique 非阻塞的元组处理优点:数据备份量小

缺点:需要人工干预数据分组的参数设置

3.2.6调度管理

分布式数据流查询系统中,一般需要根据查询算子的缓冲队列长度、查询代价和选择率等方面考虑系统的调度策略。如表5所示,调度优化策略可分为基于算子的调度,基于数据的调度和混合调度策略等。

基于算子的调度策略往往通过在主控节点制定服务质量(QoS)指标[65]、路由调度算法[66]和监控

论文在线出版号No.104 王春凯等:分布式数据流关系查询技术研究9

内存消耗情况[67],以更改相应的算子执行顺序和对应的查询计划。基于数据的调度策略,以Juggle[68]和Borealis[69]为代表技术。Juggle针对感兴趣的元组内容信息,设计了重排序(reorder)算子,将已扫描的元组重新排序。Borealis在Aurora[5]的基础上,计算每个盒处理器的平均服务质量(QoS)梯度值,用于重排元组的执行顺序。JuggleEddy[70]是基于算子和数据的混合调度策略的代表,JuggleEddy根据在线查询处理产生的部分查询结果,通过计算相关元组的重要性和对应算子的处理时延,利用juggle对同一数据流中的中间元组进行重新排序,并结合Eddy的原理,通过路由调度将对应算子进行重新排序,以达到调度优化的目的。

表5调度策略技术

调度策略代表技术调度方式

基于算子的调度策略Aurora[5]指定查询的QoS指标[65],动态确定算子的执行顺序Eddy[66]通过路由调度,重排算子关系并更改查询计划Chain[67]根据运行时最小化内存的需求,更改算子调度策略

基于数据的调度策略

Juggle[68]根据关注元组内容信息,将已扫描的元组重新排序

Borealis[69]根据元组的QoS值和QoS梯度,确定元组的执行顺序

基于算子和数据的混合调度JuggleEddy[70]根据元组的重要性和算子的处理时延,重排序元组和算子关系

3.2.7并行管理

为实时处理大量数据流,提高整个分布式系统的处理能力和吞吐量,需划分查询任务和设定处理单元的查询粒度。

针对数据流处理的并发性来讲,存在两种划分机制。一种是划分查询执行计划;另一种是划分输入的数据流。

文献[71]是基于Aurora系统实现的划分查询计划的分布式划分策略。但因为存在某些占用资源较多和耗时较长的算子,导致无法生成有效的执行计划,因此划分查询执行计划的方法使用较少。较常见的解决方法是针对不同的应用需求,对某些负载过重的算子进行划分,如文献[64]设计的DYNAMIC算子,可对算子内部进行实时自适应的划分,确保最少的状态迁移开销。

基于输入数据流划分的策略是应用较多的划分方法,一般可分为静态划分和动态划分两种。静态划分是指在查询编译时确定具体的划分码(如图3(a)所示);动态划分是在查询执行过程中根据数据流的分布和关联情况动态调整划分码(如图3(b)所示),减少网络开销,提高查询效率。AT&T实验室首先提出了感知查询的划分方法[72]:针对具有聚集和连接操作的多查询来讲,根据每个查询的划分码,求出向上兼容的最大划分码集合。基于代价模型,通过规则转换将逻辑查询计划转换成最优的物理查询计划。文献[73]基于文献[72]设计的方法,提出了挖掘划分码间时态近似依赖性(temporal approximate dependencies, TADs)的概念。为避免运行时的二次划分和最小化额外的通信开销,将满足TADs规则的范式进行规约,实现对划分码动态合并的优化处理。文献[74]设计了感知数据关联性的多查询优化器CMR。在运行时,根据分析和判断每个数据流内部的倾斜一致性(skewed uniformity),动态划分各个数据流;再根据查询的聚集或连接码选取各个被划分子数据流的聚类特征,利用BIRCH[75]方法进行层次聚类,以获得最终的划分区间。

10 计 算 机 学 报 2015年

查询集合

提交查询

编译器划分码

划分器

Worker 1Stream

逻辑计划

转换规则

物理计划执行器

Worker 2

Worker 3

Worker n

…控制节点

查询集合

提交查询

编译器 划分器

Worker 1Stream

逻辑计划

转换规则

物理计划Worker 2

Worker 3

Worker n

…控制节点

划分码/

划分区间

执行器优化器动态调优

(a) 静态划分 (b) 动态划分

图3 数据划分策略

划分后的数据通过处理系统计算时,根据数据量的多少和计算的复杂度,优化算子内部的并行度,对各个处理节点的负载进行动态调整。文献[76]以Storm 为实验平台,根据有向无环图(DAG)中不同bolt 的处理复杂度,动态设定其并行处理粒度以提升查询系统的性能。

4 分布式数据流查询系统介绍

为提升分布式数据流处理系统的简洁性、易用性和扩展性等特点,工业界和学术界相继推出了支持不同处理系统的查询系统。本章选择有代表性的分布式查询系统实例SPL [77],StreamingSQL ①,Squall ②,和DBToaster [45]进行对比分析。分析内容包括底层处理系统的简介,查询系统的实现原理,以及查询系统的相关特征等。 4.1 SPL 查询系统

SPL [77]是由IBM 的声明式系统SPADE [78]演化成的商业软件,构建在支持处理高速数据流的InfoSphere Streams ③之上。作为商业产品的代表,SPL 不仅具有丰富的系统内置算子,而且可较好支持用户自定义函数(UDF)的功能。 4.1.1 InfoSphere Streams 简介

InfoSphere Streams 广泛应用于电信、金融和医疗等多个领域,可快速提取、分析和关联来自多个数据源的信息,并可处理结构化、半结构化和非结构化的不同数据类型。InfoSphere Streams 根据多个连续查询构建数据流图(data-flow graph),用于支持高效的分布式数据流处理框架。

https://https://www.360docs.net/doc/8d10720002.html,/Intel-bigdata/spark-streamingsql ② https://https://www.360docs.net/doc/8d10720002.html,/epfldata/squall

https://www.360docs.net/doc/8d10720002.html,/software/data/infosphere/streams/

4.1.2 SPL 实现原理

SPL 支持关系型数据流,可定义嵌套的元组类型和带环的拓扑结构。利用算子和数据流的概念,SPL 为每个应用程序产生一个数据流图,图中的每个顶点对应于后台的算子代码。算子具有声明式语义信息,便于用户描述具体的应用需求。SPL 提供利用本地语言(C++或Java)定义的原始算子(包括系统内置算子和用户自定义算子),以及包含可重用数据流子图的复合算子[79]。SPL 利用非阻塞的元组处理以及基于时间和元组的滑动窗口,实现窗口内部数据的实时处理。

图4[77]说明了SPL 处理原始算子的流程。每个原始算子由算子模式(operator model)和算子代码生成器(operator code generator)两部分组成。其中,算子模式是一个描述算子到SPL 编译器的XML 文档;算子代码生成器负责为特定算子生成相应代码。在编译应用源码(application source code)时,SPL 会产生多个算子调用,每个算子调用均需要检查算子模式并产生相应的算子实例模式(operator instance model),并利用算子代码生成器产生算子实例(operator instance)。在运行时,InfoSphere Streams 根据已定义的应用模式(application model)触发算子并产生数据流图,利用InfoSphere Streams 的处理单元(processing elements, PEs)对数据流进行分析处理。

?期作者名等:论文题目11

图4算子处理流程

4.1.3 小结

SPL 查询系统具有的特征包括:①SPL通过编程式语言描述数据流处理过程,不受限于数据流图的描述形式和中间语言的转换。②SPL可生成便于组合的并行或分布式数据流图的中间语言,并支持用户自定义的数据类型和算子。③SPL支持代码的错误检查,利用编译器搜集的信息进行优化,并支持C++或Java代码的转换。

SPL查询系统的不足之处在于:用户需要掌握SPL提供的不同算子进行编程实现,缺少抽象语义的描述性信息,不如SQL类型的查询系统易于使用。

4.2 StreamingSQL查询系统

StreamingSQL是Intel公司基于Spark Streaming①和结构化数据查询框架Catalyst②实现的数据流查询系统。

4.2.1 Spark Streaming简介

由于Spark只支持数据的批量处理模式而不支持流式处理模式,伯克利大学设计了Spark Streaming以满足对数据流的处理。Spark Streaming 定义了用于描述数据流计算的操作对象D-Streams[59],并将输入数据流切分成Spark可以处理的若干RDD[60]。这使得Spark Streaming对D-Streams的操作可转换为Spark对RDD的操作,实现了数据流的批量处理。

4.2.2 StreamingSQL实现原理

StreamingSQL使用类SQL声明式语言调度和操作Spark Streaming的任务,利用Scala语言实现系统的核心功能。StreamingSQL的定义参照了SQLstream公司的Streaming SQL标准③,并对HiveQL进行了扩展。StreamingSQL类似于操作数据库中的结构化数据来处理数据流,并构建支持连续查询的模块。StreamingSQL支持基于时间的滑动

①https://https://www.360docs.net/doc/8d10720002.html,/streaming/

②https://www.360docs.net/doc/8d10720002.html,/wp-content/uploads/2013/10/J-Michael-Arm burst-catalyst-spark-summit-dec-2013.pptx

③https://www.360docs.net/doc/8d10720002.html,/docs/ 窗口和无窗口两种驱动方式,分别利用阻塞的窗口处理和阻塞的微批次处理实现聚集和连接操作。

StreamingSQL基于修改Hive的解析器设计自身语言并增加了关于数据流的语义操作;为易于和Hive集成,共享了Hive的Metastore [80]。StreamingSQL的设计复用了Spark原始的逻辑计划和相应的分析规则,通过构造包装器的方法进行物理计划树的转换。StreamingSQL的处理流程如图5所示。

Catalyst优化

StreamingSQL查询请求抽象语法树逻辑计划

优化的逻辑计划

物理计划

流式物理计划

RDD

D-Streams

图5StreamingSQL处理流程

StreamingSQL利用Hive解析的抽象语法树(abstract syntax tree, AST),生成对应的逻辑计划,并通过Catalyst进行优化,最终生成分别依赖于RDD和D-Streams的不同的物理计划。StreamingSQL通过从抽象语法树叶子节点的D-Streams中提取RDD,可将流式物理计划树转换成Spark的物理计划树,以获取最终的查询结果。

4.2.3 小结

StreamingSQL查询系统具有的特征包括:①支持多种查询驱动方式。②可在同一个查询中进行表和数据流的交互式操作。

StreamingSQL查询系统的不足之处在于:①不支持嵌套等复杂查询。②不支持基于元组的滑动窗口操作。

4.3 Squall查询系统

Squall④是由洛桑联邦理工学院数据实验室开发的基于Storm⑤[11]的分布式在线查询系统,可利用SQL查询语句实现对数据流的实时分析处理。

4.3.1 Storm简介

Storm是Twitter开源的实时数据流处理框架,具有简单的编程模型,可利用不同的通信协议支持多种编程语言,并通过acker机制实现可靠的消息处理。Storm集群架构如图6所示。Storm由一个nimbus节点和若干supervisor节点组成。其中,

④https://https://www.360docs.net/doc/8d10720002.html,/epfldata/squall

⑤https://www.360docs.net/doc/8d10720002.html,/

12 计 算 机 学 报 20??年

nimbus 节点负责资源分配、任务调度和监控各个supervisor 节点的运行情况;各个supervisor 节点负责接受nimbus 分配的任务和管理该节点下的各个工作进程worker 。整个Storm 集群利用Zookeeper [24]提供分布式应用的协调管理。

nimbus

Zookeeper

Zookeeper

...

supervisor supervisor worker worker

...worker worker

......

图6 Storm 组成架构

4.3.2 Squall 实现原理

Squall 将SQL 查询翻译成由执行算子构成的有向无环图(DAG)的查询计划,用Java 语言编写了查询系统。每个算子对应于Storm 的一个组件(spout 或bolt),并通过构建Storm 的拓扑结构(topology)执行查询计划。

Squall 采用基于矩阵的连接模型join-matrix 适应数据流不断增长的应用场景,支持无窗口驱动方式下全部历史数据的θ连接处理,并实现了基于非阻塞元组处理的DYNAMIC 连接算子[64]。Squall 将连接操作分解成连接器(joiner)和重组器(reshuffler)两部分。其中,连接器负责实际连接计算,重组器负责分发和路由元组。重组器负责监控全部历史数据的统计信息和支持自适应调整的样式划分。这样的组合设计确保了数据流连接算子的负载均衡,分摊了输入元组的处理代价,并利用对内容的不敏感性来抵御数据倾斜的问题。 4.3.3 小结

Squall 查询系统具有的特征包括:①Squall 实现了在线数据流连接算子,支持任意谓词的连接操作。可根据数据的动态变化对算子进行连续调整和状态的重划分。②Squall 设计了带状态的在线连接算子,在缺乏数据流统计信息的情况下可自适应处理连接操作。③Squall 提供一种位置感知的迁移机制,确保最小的状态迁移开销。

Squall 查询系统的不足之处在于:①Squall 目前只支持简单的连接查询操作,不支持IN 、BETWEEN 、LIKE, EXISTS, HA VING 等SQL 子句。②连接条件不支持OR 表达式,也不支持嵌套查询

和过程查询。

4.4 DBToaster 查询系统

DBToaster [45]是洛桑联邦理工学院数据实验室开发的新型数据流查询系统,提供从SQL 查询语句到生成本地代码的编译框架。 4.4.1 处理系统简介

根据不同的业务需求,可将DBToaster 部署在不同的处理系统上。若需保证数据流的并行处理能力和处理效率,可使用Storm 作为底层处理系统(详见参见 4.3.1节);若有大量联机分析处理(online analytical processing ,OLAP)的操作,可使用Cumulus [81]作为底层处理系统。本节简要介绍Cumulus 处理系统。

Cumulus 是洛桑联邦理工学院和图卢兹大学联合开发的可信云系统,Cumulus 提出一种新的拜占庭容错(byzantine fault tolerance ,BFT)[82]协议CBFT ,可保证机器之间独立且无感知的数据备份,为DBToaster 的视图维护操作提供可靠的信息传输和实时的精准聚集结果①。 4.4.2 DBToaster 实现原理

DBToaster 通过递归的思想将增量查询转换为C++或Scala 函数,利用敏捷视图(agile view)[46]保持实时更新,省略了多余的扫描和连接操作,并消除了解释查询计划的冗余开销。DBToaster 还可以将用于维护敏捷视图的程序嵌入到用户的应用程序中,根据支持数据流管理系统中物化视图[46]的机制,确保将更新视图的最新查询结果直接返回给用户。DBToaster 采用无窗口的非阻塞元组处理方式,实现全部历史数据的实时增量计算。 4.4.3 小结

DBToaster 查询系统具有的特征包括:①DBToaster 通过LLVM [49]和LMS [54]编译技术直接生成目标代码,消除了解释器所需的时间成本,提高了查询性能。②DBToaster 通过物化视图的操作,快速处理大量更新的数据流,而且打破了基于窗口的数据流操作方法,可以访问内存中的全部历史数据。③为了支持复杂的聚集操作,DBToaster 构建了支持增量处理的数据库环[83]。用环作为设计查询计算的基础,可保证增量计算的封闭性,同时简化了处理机制。④DBToaster 利用有限差的方法,提出了小视图变换(viewlet transforms)的概念[84],可将高阶的增量查询集合物化成视图,降低视图维护的

①http://webdam.inria.fr/wordpress/wp-content/uploads/2013/10/christo

ph.ppt

?期作者名等:论文题目13

代价;并通过启发式和基于代价的优化框架,保证视图的频繁更新。

DBToaster查询系统的不足之处在于:①不支持排序(order by)和外连接(outer join)等查询操作。

②内存溢出时需进行内外存的交互处理,查询响应时间增长。③进行多查询处理时,会出现敏捷视图的存储冲突和版本不一致等问题。

4.5 查询系统对比分析

针对以上数据流查询系统的分析说明,可以看出:针对数据流处理的不同需求,需采用不同的查询系统和处理方法。各个查询系统的特点分析如表6所示。

5挑战与展望

分布式数据流查询系统为满足查询速度快、查询精度高且功能完备等特点,依然存在着很多有价值的研究问题。

5.1分布式数据流查询优化技术

为满足实时性的查询要求,分布式数据流查询处理的优化技术需不断完善。相关技术可归纳为如下几点:

(1)在查询优化的过程中,为适应数据流波动、有损、易失等特点,需制定流查询系统的优化规则,并协调规则的执行顺序,进一步完善基于规则的优化策略。

(2) 针对无窗口驱动方式的连续查询,由于数据分布和执行代价等信息的动态变化,查询系统需要实时调整查询计划。例如,在Shark系统中引入部分有向无环图执行策略(partial DAG execution, PDE)[85]的概念,可利用在查询处理中实时收集到的统计信息动态改变查询计划。为满足自适应查询处理需求,宾夕法尼亚大学的学者们设计了基于代价模型的二次优化框架[86],可根据代价信息增量更新查询优化器。如何在运行时自适应地寻求最小代价的查询计划,成为近年来一个热门的研究问题。

(3)针对用户提交的复杂查询(如,多查询和嵌套查询等),对查询重写、算子共享等数据库管理系统中关注的优化问题,在数据流处理场景中也有很多研究工作要做。

表 6 分布式数据流查询系统对比分析

对比指标SPL StreamingSQL Squall DBToaster

处理系统InfoSphere Streams Spark Storm Storm/Cumulus 抽象语言编程式语言SQL类型语言SQL类型语言SQL类型语言处理方式非阻塞的元组处理阻塞的微批次处理非阻塞的元组处理非阻塞的元组处理查询驱动方式基于时间和元组的滑动窗口

基于时间的滑动窗口

无窗口

无窗口无窗口

开发语言C++或Java Scala Java C++或Scala

5.2分布式数据流查询执行策略

基于分布式环境下的数据流查询处理框架,流查询系统将各个查询处理计划以流水线形式组织在一起。在运行时,需重点关注算子和数据的调度执行策略,存在的挑战性问题分析如下:

(1) 执行需保持状态信息的算子时,要设计算子调度和执行的策略,以最低的代价存储和传输中间状态信息。

(2) 针对用户提交的多查询请求,需引入数据流和查询划分码的相关性评测标准。根据不同的查询驱动方式和数据分布情况,制定综合的划分策略作为数据分组的处理依据。

(3) 根据分布式集群的部署情况和用户提交的查询请求,随着数据流分布特征的不断变化,需设计出合理且高效的最优并行度分裂算法(包括数据流的划分和复制),尽可能提高查询系统的并行处理能力。

5.3分布式数据流实时精准查询

分布式数据流处理系统在可伸缩性、容错性、状态一致性管理和数据细粒度处理等方面不断提升和发展,系统处理大量无损数据流的能力得以完善。因此,学者们将研究的重点从丢弃部分元组的降载[87]方式转向处理全部历史数据的实时精准查询。面临的研究点包括:分布式环境下的本地增量视图和全局增量视图的统一与维护;针对多查询应用场景下的视图一致性管理和共享算子的状态管理等。针对这些问题的研究,对提高系统的查询速度和查询精度均具有十分重要的意义。

14 计算机学报20??年

5.4分布式数据流复杂查询分析

为满足以用户自定义函数(UDF)、嵌套查询等为代表的复杂查询分析,分布式数据流查询系统需构建实时高效的以有向无环图(DAG)为拓扑结构的任务执行计划。因此,为了充分发挥系统性能,如何优化有向无环图(DAG)的层次划分,如何利用重写规则的模板推断语义等价的查询执行计划,是需要重点考虑的问题。另外,针对数据流的动态和不确定性,如何更好地设计在线计算模型以支持复杂查询的处理能力,也是值得研究的问题。并且,如何利用增量聚集算法和增量学习框架[88,89]支持无窗口驱动方式的用户自定义函数(UDF),以及如何优化同时处理多个用户自定义函数(UDF)的执行计划问题,也值得我们进一步深入研究。

5.5其他研究点

为制定流查询系统的相关标准和增强数据的处理能力,仍有许多其他的研究课题。例如,为应对不同模式定义的异构数据源,查询系统需根据用户需求的变化支持不同的查询请求。参照文献[90]的思想和方法,可制定统一的流查询系统标准和算子转换规则,以适应不同的数据流处理系统,使其具有更好的参照性、完备性和通用性。此外,为支持Lambda架构①,可设计同时进行批量处理和流式处理的查询计划适配器,通过统一的查询系统接口,不仅可以实时获取当前数据流的查询结果,而且可以从离线的历史数据中获取相应的查询结果。

6结论

随着大数据概念的兴起,分布式数据流处理技术已成为新型数据处理技术的一个重要分支。基于流处理系统的查询技术成为研究热点,受到了学术界和工业界的共同关注。查询技术需要对相关概念、理论、方法和体系进行深入研究。本文主要归纳总结了近年来分布式数据流查询技术的若干关键特性,并对比了四种有代表性的查询系统。同时指出了存在的挑战性问题。这些问题的研究还处于起步阶段,均没有较为成熟的、可以进行大规模实际应用的成果和方案。因此,这些课题具有重要的研究价值和意义。

参考文献

①https://www.360docs.net/doc/8d10720002.html,/ [1] Li Guo-Jie, Cheng Xue-Qi. Research status and scientific thinking of

big data. Bulletin of Chinese Academy of Sciences,2012,27(6): 647?657 (in Chinese)

(李国杰,程学旗. 大数据研究:未来科技及经济社会发展的重大战略领域——大数据的研究现状与科学思考. 中国科学院院刊.

2012(06):647-657)

[2] Wang Y uan-Zhuo, Jin Xiao-Long, Cheng Xue-Qi. Network big data:

Present and future. Chinese Journal of Computers, 2013,36(6):1125-1138 (in Chinese)

(王元卓, 靳小龙, 程学旗. 网络大数据: 现状与展望. 计算机学报,2013,36(6):1125-1138)

[3] Meng Xiao-Feng, Ci Xiang. Big data management: Concepts,

techniques and challenges. Journal of Computer Research and Development, 2013,50(1):146? 169 (in Chinese)

(孟小峰, 慈祥. 大数据管理: 概念、技术与挑战. 计算机研究与发展,2013,50(1):146 ? 169)

[4] Big data: Science in the petabyte era. Nature, 2008, 455:1-136

[5] Carney D, Cetintemel U, Cherniack M, Convey C, Lee S, Seidman G,

Stonebraker M, Tatbul N, Zdonik S. Monitoring Streams - A New Class of Data Management Applications. //Proceedings of 28th International Conference on Very Large Data Bases (VLDB2002).

Hong Kong, China, 2002: 215-226

[6] Chandrasekaran S, Cooper O, Deshpande A, Franklin M, Hellerstein J,

Hong W, Krishnamurthy S, Madden S, Raman V, Reiss F, Shah M.

TelegraphCQ: Continuous Dataflow Processing for an Uncertain World. //Proceedings of the first Biennial Conference on Innovative Data Systems Research(CIDR 2003), Asilomar, CA, USA, 2003:269-280

[7] Arasu A, Babcock B, Babu S Datar M, Ito K, Motwani R, Nishizawa I,

Srivastava U, Thomas D, Varma R, Widom J. STREAM: The Stanford Stream Data Manager. IEEE Data Engineering Bulletin, 2003,26(1):19-26

[8] Dean J, Ghemawat S. MapReduce: Simplified Data Processing on

Large Clusters. //Proceedings of 6th Symposium on Operating System Design and Implementation (OSDI 2004), San Francisco, California, USA, 2004: 137-150

[9] Li Feng, Ooi B C, ?zsu M T, Wu S:. Distributed data management

using MapReduce. ACM Computing Surveys, 2014, 46(3):31:1-31:42.

[10] Neumeyer L, Robbins B, Nair A, Kesari A. S4: Distributed Stream

Computing Platform. //Proceedings of the 2010 Industrial Conference on Data Mining Workshops (ICDM2010).Berlin, Germany, 2010:170-177

[11] Toshniwal A, Taneja S, Shukla A, Ramasamy K, Patel J M, Kulkarni

S, Jackson J, Gade K, Fu M, Donham J, Bhagat N, Mittal S, Ryaboy

D V. Storm@twitter. //Proceedings of the 2014 International

?期作者名等:论文题目15

Conference on Management of Data(SIGMOD 2014),Snowbird, UT, USA, 2014: 147-156

[12] Sun Da-Wei, Zhang Guang-Yan, Zheng Wei-Min. Big data stream

computing: Technologies and instances. Journal of Software, 2014,25(4):839?862 (in Chinese)

(孙大为, 张广艳, 郑纬民. 大数据流式计算:关键技术及系统实例.

软件学报, 2014,25(4):839?862)

[13] Cui Xing-Can, Y u Xiao-Hui, Liu Yang, Lv Zhao-Yang. Distributed

Stream Processing: A Survey. Journal of Computer Research and Development, 2015,52(2):318?332 (in Chinese)

(崔星灿,禹晓辉,刘洋,吕朝阳. 分布式流处理技术综述. 计算机研究与发展,2015,52(2):318?332)

[14] Zhang H, Chen G, Ooi B C, Tan K L, Zhang M. In-Memory Big Data

Management and Processing: A Survey. IEEE Transactions on Knowledge and Data Engineering, 2015, 27(7):1920-1948

[15] Lin Q, Ooi B C, Wang Z, Yu C. Scalable Distributed Stream Join

Processing. //Proceedings of the 2015 International Conference on Management of Data(SIGMOD 2015),Melbourne, Victoria, Australia, SIGMOD 2015:811-825

[16] Huang Y, Cui B, Zhang W, Xu Y. TencentRec: Real-time Stream

Recommendation in Practice. //Proceedings of the 2015 International Conference on Management of Data(SIGMOD 2015),Melbourne, Victoria, Australia, 2015:227-238

[17] Bonnet P, Gehrke J, Seshadri P. Towards sensor database systems.

//Proceedings of Second International Conference on Mobile Data Management(MDM2001), Hong Kong, China,2001:3-14

[18] Sullivan M, Heybey A. Tribeca: A System for Managing Large

Databases of Network Traffic. //Proceedings of the USENIX Annual Technical Conference (NO 98), New Orleans, Louisiana, 1998:13-24 [19] Thusoo A, Saram J S, Jain N, Shao Z, Chakka P, Zhang N, Anthony

S, Liu H, Murthy R. Hive - a petabyte scale data warehouse using Hadoop. //Proceedings of the 26th IEEE International Conference on Data Engineering(ICDE2010). California, USA, 2010: 996-1005 [20] Gounaris A, Tsamoura E, Manolopoulos Y. Adaptive Query

Processing in Distributed Settings. Advanced Query Processing 2013:211-236

[21] Hwang J, Balazinska M, Rasin A, Cetintemel U, Stonebraker M,

Zdonik S B. High-Availability Algorithms for Distributed Stream Processing. //Proceedings of the 21th International Conference on Data Engineering (ICDE 2005), Tokyo, Japan, 2005: 779-790 [22] Balazinska M, Balakrishnan H, Madden S, Stonebraker M.

Fault-tolerance in the Borealis distributed stream processing system.

//Proceedings of the 2005 International Conference on Management of Data(SIGMOD 2005), Baltimore, Maryland, USA, 2005: 13-24 [23] Chandramouli B, Goldstein J, Barnett M, DeLine R, Platt J C,

Terwilliger J F, Wernsing J. Trill: A High-Performance Incremental Query Processor for Diverse Analytics. Proceedings of the VLDB Endowment, 2014, 8(4):401-412

[24] Hunt P, Konar M, Junqueira F P, et al. ZooKeeper: Wait-free

Coordination for Internet-scale Systems. //Proceedings of the 2010 USENIX conference on USENIX annual technical conference, Boston, MA, USA, 2010:11-11

[25] Wang H, Zaniolo C. User Defined Aggregates in Object-Relational

Systems . //Proceedings of the 16th International Conference on Data Engineering (ICDE2000). San Diego, CA, USA, 2000:135-144 [26] Tran T, Diao Y, Sutton C A, Liu A. Supporting User-Defined Functions

on Uncertain Data. Proceedings of the VLDB Endowment, 2013, 6(6): 469-480

[27] O’Hagan A. Bayesian analysis of computer code outputs:A tutorial.

Reliability Engineering & System Safety, 2006, 91(10-11): 1290-1300 [28] Zhang J, Zhou H, Chen R, Fan X, Guo Z, Lin H, Li J Y, Lin W, Zhou J,

Zhou L. Optimizing Data Shuffling in Data-Parallel Computation by Understanding User-Defined Functions. //Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI2012). San Jose, CA, USA, 2012:295-308 [29] Cohen S. User-defined aggregate functions: bridging theory and

practice. //Proceedings of the 2006 International Conference on Management of Data (SIGMOD2006). Chicago, Illinois, USA, 2006: 49-60

[30] Simhadri V, Ramachandra K, Chaitanya A, Guravannavar R, Sudarshan

S. Decorrelation of user defined function invocations in queries.

//Proceeding of the 30th International Conference on Data Engineering (ICDE2014). Chicago, IL, USA, 2014:532-543

[31] Hong M, Riedwald M, Koch C, Gehrke J, Demers A J. Rule-based

multi-query optimization. //Proceedings of the 12th International Conference on Extending Database Technology(EDBT2009).

Saint-Petersburg, Russia, 2009: 120-131

[32] Demers A J, Gehrke J, Panda B, Riedewald M, Sharma V, White W M.

Cayuga: A General Purpose Event Monitoring System. //Proceedings of the third Biennial Conference on Innovative Data Systems Research(CIDR2007), Asilomar, CA, USA, 2007:412-422

[33] Liu Y, Plale B. Query Optimization for Distributed Data Streams.

//Proceedings of the 15th International Conference on Software Engineering and Data Engineering(SEDE2006). Los Angeles, California, USA, 2006: 259-266

[34] Viglas S, Naughton J F. Rate-based query optimization for streaming

information sources. //Proceedings of the 2002 International Conference on Management of Data (SIGMOD2002). Madison,

16 计算机学报20??年

Wisconsin, USA, 2002: 37-48

[35] Heinz C, Kr?mer J, Riemenschneider T, Seeger B. Toward

Simulation-Based Optimization in Data Stream Management Systems.

//Proceedings of the 24th International Conference on Data Engineering (ICDE2008). Cancun, Mexico, 2008: 1580-1583

[36] Park H K, Lee W S. Adaptive optimization for multiple continuous

queries. Data & Knowledge Engineering, 2012, 71(1): 29-46

[37] Arasu A, Babu S, Widom J. The CQL continuous query language:

semantic foundations and query execution. The VLDB Journal, 2006, 15(2):121-142

[38] Seshadri P, Livny M, Ramakrishnan R. SEQ: A Model for Sequence

Databases. //Proceedings of the 11th International Conference on Data Engineering(ICDE 1995), Taipei, Taiwan, China, 1995:232-239 [39] Chen Y, Tu L. Density-based clustering for real-time stream data.

//Proceedings of the 13th ACM SIGKDD international conference on Knowledge Discovery and Data mining(KDD2007). San Jose, California, USA, 2007:133-142

[40] Zhong S. Efficient streaming text clustering. Neural Networks, 2005,

18(5-6):790-798

[41] Chu W, Zinkevich M, Li L, Thomas A, Tseng B L. Unbiased online

active learning in data streams. //Proceedings of the 17th ACM SIGKDD international conference on Knowledge Discovery and Data mining(KDD2011). San Diego, CA, USA, 2011:195-203

[42] Cohen E, Strauss M. Maintaining time-decaying stream aggregates.

//Proceedings of the 22th ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems (PODS2003). San Diego, California, USA, 2003:223-233

[43] Gilbert A, Kotidis Y, Muthukrishnan S, Strauss M. Surfing Wavelets on

Streams: One-Pass Summaries for Approximate Aggregate Queries.

//Proceedings of 27th International Conference on Very Large Data Bases (VLDB2001). Roma, Italy, 2001: 79-88

[44] Cormode G, Shkapenyuk V, Srivastava D, Xu B. Forward Decay: A

Practical Time Decay Model for Streaming Systems. //Proceedings of the 25th International Conference on Data Engineering(ICDE2009), Shanghai, China, 2009:138-149

[45] Ahmad Y, Koch C. DBToaster: A SQL Compiler for High-Performance

Delta Processing in Main-Memory Databases. //Proceedings of the VLDB Endowment, 2009, 2(2):1566-1569

[46] Kennedy O, Ahmad Y, Koch C. DBToaster: Agile Views in a Dynamic

Data Management System. //Proceedings of the fifth Biennial Conference on Innovative Data Systems Research (CIDR2011), Asilomar, CA, USA, 2011:284-295

[47] Boncz P A, Zukowski M, Nes N. MonetDB/X100: Hyper-Pipelining

Query Execution. //Proceedings of the Second Biennial Conference on

Innovative Data Systems Research (CIDR2005). Asilomar, CA, USA, 2005:225-237

[48] Neumann T. Efficiently Compiling Efficient Query Plans for Modern

Hardware. Proceedings of the VLDB Endowment, 2011, 4(9):539-550 [49] Lattner C, Adve V S. LLVM: A Compilation Framework for Lifelong

Program Analysis & Transformation. //Proceedings of the 2nd International Symposium on Code Generation and Optimization (CGO2004). San Jose, CA, USA, 2004: 75-88

[50] Willhalm T, Popovici N, Boshmaf Y, Plattner H, Zeier A, Schaffner J.

SIMD-Scan: Ultra-Fast in-Memory Table Scan using on-Chip Vector Processing Units. //Proceedings of the VLDB Endowment, 2009, 2(1):385-394

[51] Pirk H, Funke F, Grund M, Neumann T, Leser U, Manegold S, Kemper

A, Kersten M L. CPU and cache efficient management of memory-resident databases. //Proceedings of the 29th IEEE International Conference on Data Engineering (ICDE2013). Brisbane, Australia, 2013:14-25

[52] Grund M, Krüger J, Plattner H, Zeier A, Mauroux P C, Madden S.

HYRISE - A Main Memory Hybrid Storage Engine. //Proceedings of the VLDB Endowment, 2010, 4(2):105-116

[53] Klonatos Y, Koch C, Rompf T, Chafi H. Building Efficient Query

Engines in a High-Level Language. Proceedings of the VLDB Endowment, 2014, 7(10):853-864

[54] Rompf T, Odersky M. Lightweight modular staging: a pragmatic

approach to runtime code generation and compiled DSLs.

//Proceedings of the ninth International Conference on Generative Programming and Component Engineering (GPCE2010). Eindhoven, The Netherlands, 2010:127-136

[55] Fernandez R C, Migliavacca M, Kalyvianaki E, Pietzuch P. Integrating

scale out and fault tolerance in stream processing using operator state management. //Proceedings of the 2013 International Conference on Management of Data (SIGMOD2013). New York, USA, 2013: 725-736

[56] Pietzuch P, Ledlie J, Shneidman J, Roussopoulos M, Welsh M, Seltzer

M I. Network-Aware Operator Placement for Stream-Processing Systems. //Proceedings of the 22th International Conference on Data Engineering(ICDE 2006), Atlanta, Georgia, USA, 2006:49-60 [57] Papaemmanouil O, Basu S, Banerjee S. Adaptive in-network query

deployment for shared stream processing environments. //Proceedings of the 24th International Conference on Data Engineering Workshops (ICDE 2008), Cancun, Mexico, USA, 2008: 206-211

[58] Ananthanarayanan R, Basker V, Das S, Gupta A, Jiang H, Qiu T,

Reznichenko A, Deomid R, Singh M, Venkataraman S. Photon: fault-tolerant and scalable joining of continuous data streams.

?期作者名等:论文题目17

//Proceedings of the 2013 International Conference on Management of Data (SIGMOD2013). New York, USA, 2013: 577-588

[59] Zaharia A, Das T, Li H, Hunter T, Shenker S, Stoica I. Discretized

streams: fault-tolerant streaming computation at scale. //Proceedings of the 24th Symposium on Operating Systems Principles (SOSP2013). Farmington, PA, USA, 2013:423-438

[60] Zaharia M, Chowdhury M, Das T, Dave A, Ma J, McCauly M, Franklin

M J, Shenker S, Stoica I. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing.

//Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI2012). San Jose, CA, USA, 2012:15-28

[61] Qian Z, He Y, Su C, Wu Z, Zhu H, Zhang T, Zhou L, Yu Y, Zhang Z.

TimeStream: reliable stream computation in the cloud. //Proceedings of Eighth Eurosys Conference(EuroSys13), Prague, Czech Republic, 2013:1-14

[62] Gu X, Yu P S, Wang H. Adaptive Load Diffusion for Multiway

Windowed Stream Joins. //Proceedings of the 23th International Conference on Data Engineering(ICDE 2007), Istanbul, Turkey, 2007: 146-155

[63] Wang S, Rundensteiner E. Scalable stream join processing with

expensive predicates: workload distribution and adaptation by time-slicing. //Proceedings of the 12th International Conference on Extending Database Technology(EDBT2009), Saint-Petersburg, Russia, 2009: 299-310

[64] Elseidy M, Elguindy A, Vitorovic A, Koch C. Scalable and Adaptive

Online Joins. //Proceedings of the VLDB Endowmen, 2014, 7(6): 441-452

[65] Carney D, Cetintemel U, Rasin A, Zdonik S B, Cherniack M,

Stonebraker M. Operator Scheduling in a Data Stream Manager.

//Proceedings of 29th International Conference on Very Large Data Bases (VLDB2003). Berlin, Germany, 2003: 838-849

[66] Avnur R, Hellerstein J M. Eddies: Continuously Adaptive Query

Processing. //Proceedings of the 2000 International Conference on Management of Data (SIGMOD2000), Dallas, Texas, 2000: 261-272 [67] Babcock B, Babu S, Datar M, Motwani R. Chain:Operator Scheduling

for Memory Minimization in Data Stream Systems. //Proceedings of the 2003 International Conference on Management of Data (SIGMOD2003), San Diego, California, USA, 2003: 253-264 [68] Raman V, Raman B, Hellerstein J M. Online dynamic reordering. The

VLDB Journal, 2000, 9(3): 247-260

[69] Abadi D, Ahmad Y, Balazinska M, Cetinternel U, Cherniack M, Hwang

J H, Lindner W, Maskey A, Rasin A, Ryvkina E, Tatbul N, Xing Y, Zdonik S B. The Design of the Borealis Stream Processing Engine.

//Proceedings of the second Biennial Conference on Innovative Data Systems Research(CIDR2005) Asilomar, CA, USA, 2005:277-289 [70] Raman V, Hellerstein J M. Partial results for online query processing.

//Proceedings of the 2002 International Conference on Management of Data (SIGMOD2002), Madison, Wisconsin, USA, 2002: 275-286 [71] Cherniack M, Balakrishnan H, Balazinska M, Carney D, Cetintemel U,

Xing Y, Zdonik S B. Scalable Distributed Stream Processing.

//Proceedings of the first Biennial Conference on Innovative Data Systems Research(CIDR2003), Asilomar, CA, USA, 2003:257-268 [72] Johnson T, Muthukrishnan S M, Shkapenyuk V, Spatscheck O.

Query-aware partitioning for monitoring massive network data streams. //Proceedings of the 2008 International Conference on Management of Data (SIGMOD2008). Vancouver, BC, Canada, 2008: 1135-1146

[73] Viel E, Ueda H. Data stream partitioning re-optimization based on

runtime dependency mining. //Proceedings of the 30th International Conference on Data Engineering Workshops (ICDE2014). Chicago, IL, USA2014: 199-206

[74] Cao L, Rundensteiner E A. High Performance Stream Query Processing

With Correlation-Aware Partitioning. //Proceedings of the VLDB Endowment, 2013, 7(4):265-276

[75] Zhang T, Ramakrishnan R, Livny M. BIRCH: An Efficient Data

Clustering Method for Very Large Databases. //Proceedings of the 1996 International Conference on Management of Data (SIGMOD1996).

Montreal, Canada, 1996: 103-114

[76] Sax M, Castellanos M, et al. Aeolus: An optimizer for distributed

intra-node-parallel streaming systems. //Proceedings of the 29th International Conference on Data Engineering(ICDE2013). Brisbane, Australia, 2013: 1280-1283

[77] Hirzel M, Andrade H, Gedik B, Jacques-Silva G, Khandekar R, Kumar

V, Mendell M, Nasgaard H, Schneider S, Soule R, Wu K. IBM Streams Processing Language: Analyzing Big Data in motion. IBM Journal of Research and Development, 2013, 57(3/4):7

[78] Gedik B, Andrade H, Wu K, Yu P S, Doo M. SPADE: the system s

declarative stream processing engine. //Proceedings of the 2008 International Conference on Management of Data (SIGMOD2008).

Vancouver, BC, Canada, 2008: 1123-1134

[79] Hirzel M. Andrade H, Gedik B, Kumar V, Losa G, Mendell M,

Nasgaard H, Soule R, Wu K. SPL Stream Processing Language Specification. New York: IBM Research Division T J. Watson Research Center, IBM Research Report: RC24897(W0911-044), 2009 [80] Thusoo A, Saram J S, Jain N, Shao Z, Chakka P, Zhang N, Anthony S,

Liu H, Murthy R. Hive - a petabyte scale data warehouse using Hadoop. //Proceedings of the 26th IEEE International Conference on

18 计算机学报20??年

Data Engineering(ICDE2010). California, USA, 2010: 996-1005

[81] Guerraoui R, Yabandeh M, Shoker A, Bahsoun J P. Trustful Cumulus

Clouds. Switzerland: EPFL, Technical Report:LPD-REPORT-2010-10,

2010

[82] Castro M, Liskov B. Practical byzantine fault tolerance and proactive

recovery. ACM Transactions on Computer Systems(TOCS). 2002,

20(4):398-461

[83] Koch C. Incremental query evaluation in a ring of databases.

//Proceedings of the 29th ACM SIGMOD-SIGACT-SIGART

Symposium on Principles of Database Systems (PODS2010).

Indianapolis, Indiana, USA, 2010:87-98

[84] Koch C, Ahmad

Y, Kennedy O, Nikolie M, N?tzli A, Lupei D,

Shaikhha A. DBToaster: higher-order delta processing for dynamic, frequently fresh views. The VLDB Journal, 2014, 23(2):253-278 [85] Xin R S, Rosen J, Zaharia M, Franklin M J, Shenker S, Stoica I. Shark:

SQL and rich analytics at scale. //Proceedings of the 2013 International Conference on Management of Data (SIGMOD2013). New York, USA, 2013: 13-24 [86] Liu M, Ives Z G, Loo B T. Enabling Incremental Query

Re-Optimization. Technical Report: MS-CIS-11-11, University of Pennsylvania, 2011

[87] Tatbul N, Cetintemel U, Zdonik S B, Cherniack M, Stonebraker M.

Load Shedding in a Data Stream Manager. //Proceedings of 29th International Conference on Very Large Data Bases (VLDB2003).

Berlin, Germany, 2003: 309-320

[88] Gao W, Jin R, Zhu S, Zhou Z. One-Pass AUC Optimization.

//Proceedings of the 30th International Conference on Machine Learning(ICML2013), Atlanta, GA, USA, 2013: 906-914

[89] He H, Chen S, Li K, Xu X. Incremental Learning From Stream Data.

IEEE Transactions on Neural Networks, 2011, 22(12): 1901-1914 [90] Jain N, Mishra S, Srinivasan A, Gehrke J, Widom J, Balakrishnan H,

Cetintemel U, Cherniack M, Tibbetts R, Zdonik S B. Towards a streaming SQL standard. //Proceedings of the VLDB Endowment, 2008, 1(2): 1379-1390

Wang Chunkai, born in 1981. Ph.D. candidate. His main research interests include distributed data

stream management.

Meng Xiaofeng, born in 1964, Professor, Ph.D. supervisor. His research interests include cloud data management, Web data management, flash-based databases, and privacy protection.

Background

Real-time processing of high-speed data stream has become one of the major areas of attention in industrial and academic circles. In recent years, there have been a number of distributed data stream processing systems represented by S4, Storm, Spark Streaming, etc. For improving the usability and processing capabilities of processing systems, we can build relational query systems on them. Query systems can define the SQL-like declarative languages to help users build the query requests and related applications.

This paper surveys the recent research work on distributed data stream relational query techniques. We first propose the framework of distributed data stream query systems. Based on the framework, we analyze the key techniques in several aspects: UDF query, query optimization, query-driven approaches, compiling techniques, operator management, scheduling management and parallel management. However, there are still many issues worthy to study. We point out the new challenges of query systems. We want to help researchers pay attention to the query techniques related issues that need to be addressed.

This work was partially supported by the grants from the National Natural Science Foundation of China(61379050, 91224008), the National High Technology Research and Development Program(863 Program) of China (2013AA013204), Specialized Research Fund for the Doctoral Program of Higher Education(20130004130001), the Fundamental Research Funds for the Central Universities, and the Research Funds of Renmin University of China(11XNL010).

浅谈企业网络信息安全技术_单松

INTELLIGENCE 科技天地 浅谈企业网络信息安全技术 江苏省常州市委党校行政管理教研室单松 由于信息系统本身的脆弱性和复杂性,大量的信息安全问题也伴随着计算机应用的拓展而不断涌现。病毒传播、黑客入侵、网络犯罪等安全事件的发生频率逐年升高,危害性也越来越大。如何构建企业级的信息安全体系,保护企业的利益和信息资产不受侵害,为企业发展和业务经营提供有力支撑,为用户提供可信的服务,已成为各企业当前迫切需要解决的问题。 一、企业信息安全技术 (一)防病毒 随着计算机媒体的不断出现,电子邮件、盗版光盘、压缩文件、上载下载软件等已经取代软盘,成为传播计算机病毒的主要途径,而且也使计算机病毒的寄宿和传播变得更加容易。世界上计算机病毒现已达5万多种,并且还在以每月300多种的速度增加,成为威胁企业信息安全的主要因素之一。企业可从以下几方面进行病毒的防范: (1)隔离法,计算机网络最突出的优点就是信息共享和传递,这一优点也给病毒提供了快速传播的条件,使病毒很容易传播到网络上的各种资源,若取消信息共享而采取隔离措施,可切断病毒的传播途径。但此方法是以牺牲网络的最大优点来换取,因此只能在发现病毒隐患时使用。 (2)分割法,将用户分割成不能互相访问的子集,由于信息只能在一定的区域中流动,因此建立一个防卫机制,病毒不会在子系统之间相互传染。 (3)选用高效的防病毒软件,利用防病毒软件进行计算机病毒的监测和清除是目前广泛采用的方法。 (4)及时升级防病毒软件,防病毒软件不同于其它应用软件,它不具备主动性,需要实时追踪新的病毒,因此要不断更新病毒样本库和扫引擎,这样才能查,杀新的病毒。 (二)防火墙 防火墙技术是抵抗黑客入侵和防止未授权访问的最有效手段之一,也是目前网络系统实现网络安全策略应用最为广泛的工具之一。防火墙是设置在被保护网络和外部网络之间的一道屏障,以防止发生不可预测的、潜在破坏性的侵入,可有效地保证网络安全。它是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它可通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现网络的安全保护。在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,它有效地监控了内部网和Internet之间的活动,保证内部网络的安全。 (三)网络入侵检测 随着网络技术的发展,网络环境变得越来越复杂,网络攻击方式也不断翻新。对于网络安全来说,单纯的防火墙技术暴露出明显的不足和弱点,许多攻击(如DOS攻击,会伪装成合法的数据流)可以绕过通常的防火墙,且防火墙因不具备实时入侵检测能力而对病毒束手无策。在这种情况下,网络的入侵检测系统在网络的整个安全系统解决方案中就显示出极大作用。它可以弥补防火墙的不足,为网络安全提供实时的入侵检测及采取相应的防护手段。一个合格的入侵检测系统能大大的简化管理员的工作,保证网络安全的运行。 (四)数据加密技术 与防火墙技术相比,数据信息加密技术比较灵活,更加适用于开放网络。数据加密主要用于对动态信息的保护。对动态数据的攻击分为主动攻击和被动攻击,我们注意到,对于主动攻击,虽无法避免,但却可以有效的检测;而对于被动攻击,虽无法检测,但却可以避免,而实现这一切的基础就是数据加密技术。 数据加密实质上是对以符号为基础的数据进行移位和置换的变换算法,这种变换是受称为密钥的符号串控制的,加密和解密算法通常是在密钥控制下进行的。完成加密和解密的算法称为密码体制。密码体制有对称密钥密码技术和非对称密钥密码技术。 (五)身份认证技术 身份识别是用户向系统出示自己身份证明的身份证明过程,身份认证是系统查核用户身份证明的过程。这两项工作统称为身份验证。是判明和确认通信双方真实身份的两个重要环节。 (六)访问控制 访问控制是提供信息安全保障的主要手段和安全机制,被广泛地应用于防火墙、文件访问、VPN及物理安全等多个方面。 访问控制是信息安全保障机制的核心内容,它是实现数据保密性和完整性机制的主要手段。访问控制是为了限制访问主体(或称为发起者,是一个主动的实体;如用户、进程、服务等),对访问客体(需要保护的资源)的访问权限,从而使计算机系统在合法范围内使用;访问控制机制决定用户及代表一定用户利益的程序能做什么,及做到什么程度。 二、网络安全技术在企业中的应用 企业网络安全是一个综合性的课题,涉及技术、管理、使用等许多方面,既包括网络本身的安全问题,也有物理的和逻辑的技术措施。只有通过明晰的安全策略、先进的技术措施以及高素质的网络管理人才构建一个由安全策略、防护、加密、备份、检测、响应所组成的中小企业网络安全体系,才能完整、实时地保证企业网络环境中信息的完整性和正确性。 (一)网络边界的信息安全 在内、外部网络实施隔离的是以防火墙为主的入侵防御体系。它可以通过分析进出网络的数据来保护内部网络。是保障数据和网络资源安全的强有力的手段。它可以实现以下三个功能: 1连接内部网络和外部网络; 2通过外部网络来连接不同的内部网络; 3保护内部网络数据的完整性和私有性。 在实际的策略制订时主要从三个方面来提高网络信息的安全性,即数据过滤、数据加密和访问控制。通过防火墙的安全规则进行数据过滤,通过对发往外部网络的数据进行加密来 162

集中式网络管理和分布式网络管理的区别及优缺点

集中式网络管理和分布式网络管理的区别及优缺点 集中式网络管理模式是在网络系统中设置专门的网络管理节点。管理软件和管理功能主要集中在网络管理节点上,网络管理节点与被管理节点是主从关系。 优点:便于集中管理 缺点: (1)管理信息集中汇总到管理节点上,信息流拥挤 (2)管理节点发生故障会影响全网的工作 分布式网络管理模式是将地理上分布的网络管理客户机与一组网络管理服务器交互作用,共同完成网络管理的功能。 优点: (1)可以实现分部门管理:即限制每个哭户籍只能访问和管理本部门的部分网络资源,而由一个中心管理站实施全局管理。 (2)中心管理站还能对客户机发送指令,实现更高级的管理 (3)灵活性和可伸缩性 缺点: 不利于集中管理 所以说采取集中式与分布式相结合的管理模式是网络管理的基本方向 snmp安装信息刺探以及安全策略 一、SNMP的概念,功能 SNMP(Simple Network Management Protocol)是被广泛接受并投入使用的工业标准,它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。它采用轮询机制,提供最基本的功能集。最适合小型、快速、低价格的环境使用。它只要求无证实的传输层协议UDP,受到许多产品的广泛支持。 本文将讨论如何在Win2K安装使支持SNMP功能,SNMP技术对于提升整体安全水准是有益的,但也可能存在风险,本文将同时检验这两个方面。另外,除了介绍一些开发工具外,还将图解通过SNMP收集信息的可能用法,以及如何提高安全性。 二、在Win2K中安装SNMP 提供一个支持SNMP的Win2K设备与增加一个额外的Windows组件同样简单,只需要进入"开始/设置/控制面板/", 选择"添加/删除程序",然后选择"添加/删除Windows组件",随之出现一个对话框,在其中选择"管理和监视工具", 最后点击"下一步",依照提示安装: OK,现在Win2K就可以通过SNMP来访问了. 三、对snmp信息的刺探方法 1、Snmputil get 下面我们在命令行状态下使用Win2K资源工具箱中的程序 来获取安装了SNMP的Win2K机器的网络接口数目,命令参数是get: 前提是对方snmp口令是public 提供基本的、低级的SNMP功能,通过使用不同的参数和变量,可以显示设备情况以及管理设备。

分布式汽车电气电子系统设计和实现架构

分布式汽车电气电子系统设计和实现 架构

分布式汽车电气/电子系统设计和实现架构在过去的十几年里,汽车的电气和电子系统已经变得非常的复杂。今天汽车电子/电气系统开发工程师广泛使用基于模型的功能设计与仿真来迎接这一复杂性挑战。新兴标准定义了与低层软件的标准化接口,最重要的是,它还为功能实现工程师引入了一个全新的抽象级。 这提高了软件组件的可重用性,但不幸的是,关于如何将基于模型的功能设计的结果转换成高度环境中的可靠和高效系统实现方面的指导却几乎没有。 另外,论述设计流程物理端的文章也非常少。本文概述了一种推荐的系统级设计方法学,包括、分布在多个ECU中的网络和任务调度、线束设计和规格生成。 为什么需要AUTOSAR? 即使在同一家公司,“架构设计”对不同的人也有不同的含义,这取决于她们站在哪个角度上。物理架构处理系统的有形一面,如布线和连接器,逻辑架构定义无形系统的结构和分配,如软件和通信协议。当前设计物理架构和逻辑架构的语言是独立的,这导致相同一个词的意思能够完全不同,设计团队和流程也是独立的,这也导致了一个非常复杂的设计流程(如图1所示)。

图1:物理和逻辑设计流程。 这种复杂性导致了次优设计结果,整个系统的正确功能是如此的难于实现,以致于几乎没有时间去寻求一种替代方法,它可导致更坚固的、可扩展性更好的和更具成本效益的解决方案。为了实现这样一种解决方案,设计师需要新的方法,它能够将物理和逻辑设计流程紧密相连,并依然允许不同的设计团队做她们的工作。 新兴的AUTOSAR标准为系统级汽车电子/电气设计方法学提供了一个技术上和经济上都可行的选择,尽管它主要针对软件层面,即逻辑系统的设计。不过,大量广泛的AUTOSAR元模型及其丰富的接口定义允许系统级电子/电气架构师以标准的格式表示她的设计思想。从经济上看,AUTOSAR标准打开了一个巨大的、统一的市场,它使得能够创立合适的设计工具。

分布式数据库系统的设计与优化

近年来,计算机技术的发展日新月异,借助于计算机网络而崛起的数据库技术已不断渗透到了社会生活的各个领域.分布式数据库系统是数据库技术的一种,它的产生,使在地理上、组织上分散的单位得以实现信息、数据共享,使系统的可靠性、可用性等得到了明显的改善和提高.因此,如何优化分布式数据库系统,如何更高效地实施数据库查询等问题便显得尤为重要,它关系着整个系统性能和系统效率等诸多关键因素的完善和提高.1分布式数据库的定义 分布式数据库系统的基础是集中式数据库,但是比集中式数据库具有更大的可扩展性,它适用于单位和企业的各下属、分散部门,允许将分工后的针对性较强的各部门数据存储在本地存储设备上,从而提高用户操作应用程序的反馈速度,在一定程度上降低网络通信费用. 分布式数据库系统可以分为两种:一是物理分布逻辑集中,即在物理上是分布的,在逻辑上是一个统一整体,这类数据库系统比较适用于用途单一、专业性强的中小企业或部门;二是无论在物理上或是逻辑上都是分布的,这种分布式数据库系统类型称为联邦式,此类型主要用于集成大 范围数据库,因为该系统主要由用途迥异、 差别明显的数据库组成. 分布式数据库的物理分布性主要表现在数据库中的数据分别存储在不同的地域内或主机上,而逻辑集中性主要表现在无论用户处于哪个位置或使用本局域网中的哪台主机,都可以通过应用程序对数据库进行操作,但这些数据库具体的分布位置用户并不需要知道,就如同数据库存储在本机,并且由本机的数据库管理系统进行管理.2分布式数据库系统的特点 2.1数据的独立性和分布的透明性 数据的独立性可以说是分布式数据库系统的核心和目标,而分布的透明性表现在用户在操作带有数据库的应用程序时,不必了解数据存储的具体物理位置,不必关心数据逻辑集中的区域,也不必验证本地系统支持哪些数据模型.分布透明的特点,在很大程度上增加了应用程序的可移植性. 2.2集中和自治相结合 对于分布式数据库系统来说,数据共享分为两层:局部共享和全局共享.局部共享是相对于局部数据库而言的,存储在局部数据库中的一般是专门针对本地用户的常用数据;全局共享就是说在各个分布的数据库区域,也能够支持 系统在全局上的应用,可以存储可供本网中其他位置的用户共享的数据.那么对于这两层数据共享的分类,就有相应的两种控制方式,即集中和自治,各个局部的数据库管理系统可以对本区域的数据库实施独立管理,称为自治;与此同时,为了协调各个局部数据库管理系统,为了宏观、整体地把握各局部数据库的运行情况等,系统还设置了集中控制的工作方式. 2.3易于扩展性 由于单位、 企业等的数据量越来越庞大,对于数据库服务器的需求也越来越多.如果服务器的应用程序支持水平方向的扩展,那么就可以通过多增加服务器来分担数据的处理任务. 3分布式数据库系统的设计3.1设计的原则 3.1.1分布式数据库系统的主要设计原则是本地和近地.所以,在设计的过程中,应当尽量实现数据的本地化,这样可以有效减少数据节点之间的相互通信,从而提高整个系统的效率. 3.1.2为了改善和提高数据库数据的可用性和可靠性,有时候在分布式数据库系统中可以将数据保存为副本,如果数据的其中一个副本被损坏或者不能使用,那么在网络环境中的另一个节点中可以对损坏的副本进行恢复.不过,在恢复的同时有可能增加冗余的数据,所以在设计分布式数据库系统时应当全面考虑最优的数据冗余程序,从而减少数据库更新的成本. 3.1.3在用户通过应用程序对数据库进行操作的时候,分布式数据库系统应当将总的工作量分流到网络环境中的各局域节点,从而提高了应用程序的执行效率、扩大了数据传输的并行度、充分利用了各局域节点计算机的资源.因此在设计分布式数据库系统的同时,要将负荷合理地分流. 3.1.4在设计分布式数据库系统时,要对网络各局域节点进行存储能力的统筹,对有限的存储控件进行合理的规划.3.2设计的内容 与集中式数据库的设计相类似,分布式数据库系统也包括了数据库和应用.其中,数据库的设计又包括全局的模式设计和局部的模式设计.分布式数据库系统设计的关键是 Vol.28No.10 Oct.2012 赤峰学院学报(自然科学版)JournalofChifengUniversity(NaturalScienceEdition)第28卷第10期(下) 2012年10月分布式数据库系统的设计与优化 左 翔,姜文彪 (安徽医科大学计算机系,安徽 合肥 230032) 摘要:分布式数据库是数据库技术和网络技术相结合的产物,本文从分布式数据库系统的定义和特点入手,介绍了其设计、优化的目标以及优化的方法. 关键词:分布式数据库系统;设计;优化中图分类号:TP310 文献标识码:A 文章编号:1673-260X(2012)10-0020-02 20--

简述计算机网络与分时多用户系统、多机系统、分布式系统的区别

简述计算机网络与分时多用户系统、多机系统、分布式系统的区别

简述计算机网络与分时多用户系统、多机系统、分布式系统的区别 一、计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 主要作用: 1、硬件资源共享。可以在全网范围内提供对处理资源、存储资源、输入输出资源等昂贵设备的共享,使用户节省投资,也便于集中管理和均衡分担负荷。 2、软件资源共享。允许互联网上的用户远程访问各类大弄数据库,可以得到网络文件传送服务、远地进程管理服务和远程文件访问服务,从而避免软件研制上的重复劳动以及数据资源的重复存贮,也便于集中管理。 3、用户间信息交换。计算机网络为分布在各地的用户提供了强有力的通信手段。用户可以通过计算机网络传送电子邮件、发布新闻消息和进行电子商务活动。 二、分时多用户系统 使一台计算机同时为几个、几十个甚至几百个用户服务的一种操作系统。把计算机与许多终端用户连接起来,分时操作系统将系统处

理机时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。由于时间间隔很短,每个用户的感觉就像他独占计算机一样。分时操作系统的特点是可有效增加资源的使用率。例如UNIX系统就采用剥夺式动态优先的CPU调度,有力地支持分时操作。 产生分时系统是为了满足用户需求所形成的一种新型 OS 。它与多道批处理系统之间,有着截然不同的性能差别。用户的需求具体表现在以下几个方面: 人—机交互共享主机便于用户上机 三、多机系统多机系统是由两台以上的电子计算机组成的计算机系统。一般配置在同一地点且不需通信系统来联接。其中任一台计算机发生故障,不影响整个系统的正常运转。建立多机系统的目的是为了提高可靠性和运算速度多处理机与多机系统、分布处理系统和计算机网:多处理机与多机系统是进一步发展并行技术的必由之路,是巨型、大型机主要发展方向。它们是多指令流多数据流(MIMD)系统,各机处理各自的指令流(进程),相互通信,联合解决大型问题。它们比并行处理机有更高的并行级别,潜力大,灵活性好。用大量廉价微型机,通过互连网络构成系统,以获得高性能,是研究多处理机与多机系统的一个方向。多处理机与多机系统要求在更高级别(进程)上研究并行算法,高级程序语言提供并发、同步进程的手段,其操作系统也大为复杂,必须解决多机间多进程的通信、同步、控制等问题。 四、分布式计算机系统

计算机网络信息安全与防范毕业论文

网络信息安全与防范 摘要 网络发展的早期,人们更多地强调网络的方便性和可用性,而忽略了网络的安全性。当网络仅仅用来传送一般性信息的时候,当网络的覆盖面积仅仅限于一幢大楼、一个校园的时候,安全问题并没有突出地表现出来。但是,当在网络上运行关键性的如银行业务等,当企业的主要业务运行在网络上,当政府部门的活动正日益网络化的时候,计算机网络安全就成为一个不容忽视的问题。 随着技术的发展,网络克服了地理上的限制,把分布在一个地区、一个国家,甚至全球的分支机构联系起来。它们使用公共的传输信道传递敏感的业务信息,通过一定的方式可以直接或间接地使用某个机构的私有网络。组织和部门的私有网络也因业务需要不可避免地与外部公众网直接或间接地联系起来,以上因素使得网络运行环境更加复杂、分布地域更加广泛、用途更加多样化,从而造成网络的可控制性急剧降低,安全性变差。 随着组织和部门对网络依赖性的增强,一个相对较小的网络也突出地表现出一定的安全问题,尤其是当组织的部门的网络就要面对来自外部网络的各种安全威胁,即使是网络自身利益没有明确的安全要求,也可能由于被攻击者利用而带来不必要的法律纠纷。网络黑客的攻击、网络病毒的泛滥和各种网络业务的安全要求已经构成了对网络安全的迫切需求。 本文对现有网络安全的威胁以及表现形式做了分析与比较,特别对为加强安全应采取的应对措施做了较深入讨论,并描述了本研究领域的未来发展走向。

关键词网络安全;信息网络;网络技术;安全性

. 目录 摘要............................................................................................................. I 第1章绪论 (1) 1.1课题背景 (1) 1.1.1计算机网络安全威胁及表现形式.......... 错误!未定义书签。 1.1.1.1常见的计算机网络安全威胁 (1) 1.1.1.2常见的计算机网络安全威胁的表现形式 (2) 第2章网络信息安全防范策略 (2) 2.1防火墙技术 (2) 2.2数据加密技术 (2) 2.2.1私匙加密 (4) 2.2.2公匙加密 (4) 2.3访问控制 (2) 2.4防御病毒技术 (2) 2.4安全技术走向 (2) 结论 (5) 参考文献 (5)

分布式数据库设计报告

分布式数据库设计报告

目录 1案例背景 (1) 需求分析 (1) 2 分布式数据库设计 (2) 设计目标 (2) 总体设计目标 (2) (4)可靠性: (3) 完成方式及周期 (3) 分布式数据库架构图 (4) 物理设计施工 (5) 3 总结 (5) 4所用设备汇总 (7) 5所使用软件 (7)

成品车间分布式数据库设计 1案例背景 随着成品车间信息化程度越来越高,我们的传统集中式数据库系统的缺点逐渐体现出来主要有: 1、所有数据处理、存储集中在一台计算机上完成,一旦机器损坏或系统崩 溃数据数据很难恢复。 2、单台机器写入/查询处理能力不足,一台机器既要读取数据,又要写入数 据,遇到大批量超过单台数据库的处理能力,就会出现卡顿,在生产时 间不敢批量制造/查询数据。 3、硬件性能瓶颈,包括(硬盘、CPU、内存),使用升级硬件的方法效果有限。 4、出现故障没有备用服务器可以替代。 5、当前成品车间存在2种数据库,oracle,sql sever,交叉使用不方便管 理维护,出现问题排查困难。 6、由于数据库初期创建数据库/表比较混乱,现在对数据的统计管理需要在 两台服务器之间交叉进行,统计难度高,效率低。 需求分析 成品车间信息化程度越来越高,各个节点产生的数据量越来越大,对数据系统要求越来越高,我们所使用的传统集中式数据库已经无法从容应对越来越大的数据。 成品车间生产线数据库主要有oracle和sql server两种,分别分布在2台计算机中,柔性线、自动线、三相线交叉使用两种类型数据库,主要出现的问题有; 1、一旦其中一个数据库出现问题,那么就有很大的几率导致三条线体 的某个节点或全部节点失去数据服务,导致停线。 2、数据库出现故障,必须停线,故障修复之后才可以上线使用。

《分布式计算、云计算与大数据》习题参考解答

第1章分布式计算概述 一、选择题 1,CD 2,ABC 3,ABCD 4,ACD 二、简答题 1,参考1.1.1和节 2,参考1.1.2节 3,分布式计算的核心技术是进程间通信,参考1.3.2节 4,单播和组播 5,超时和多线程 三、实验题 1.进程A在进程B发送receive前发起send操作 进程A进程B 发出非阻塞send操 作,进程A继续运行 发出阻塞receive操 作,进程B被阻塞进程B在进程A发起send前发出receive操作

发出非阻塞send 操作,进程A 继续运行 发出阻塞receive 操作,进程B 被阻塞 收到进程A 发送的数据,进程B 被唤醒 2. 进程A 在进程B 发送receive 前发起send 操作 进程A 进程B 发出阻塞send 操作, 进程A 被阻塞 发出阻塞receive 操作,进程B 被阻塞 进程B 在进程A 发起send 前发出receive 操作

发出阻塞send操作,进程A被阻塞 发出阻塞receive操作,进程B 被阻塞 收到进程A发送的数据,进程B 被唤醒 收到进程B返回的数 据,进程A被唤醒 3.1).在提供阻塞send操作和阻塞receive操作的通信系统中在提供非阻塞send操作和阻塞receive操作的通信系统中2).P1,P2,P3进程间通信的顺序状态图 m1 m1 m2 m2 第2章分布式计算范型概述 1.消息传递,客户-服务器,P2P,分布式对象,网络服务,移动代理等 2.分布式应用最广泛最流行的范型是客户-服务器范型,参考节

3.分布式应用最基本的范型是消息传递模型,参考节 4.参考节,P2P应用有很多,例如Napster,迅雷,PPS网络电视等 5.参考节 6.参考节 7.略 8.消息传递模式是最基本的分布式计算范型,适用于大多数应用;客户-服务器范型是最 流行的分布式计算范型,应用最为广泛;P2P范型又称为对等结构范型,使得网络以最有效率的方式运行,适用于各参与者地位平等的网络;分布式对象范型,是抽象化的远程调用,适用于复杂的分布式计算应用等。 9.略 10.中间件又称为代理,中间件为参与对象提供内容抽象,隐藏对象引用,起到中介作用。 11.略 第3章 Socket编程与客户服务器应用开发 一、填空题 1.数据包socket,流式socket 2.无连接方式,面向连接方式 3.数据层,业务层,应用层 4.迭代服务器和并发服务器 5.有状态服务器和无状态服务器 二、简答题 1.API:Application Programming Interface,应用程序编程接口,是一些预先定义 的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能 力,而又无需访问源码,或理解内部工作机制的细节 Socket API:套接字应用程序编程接口,适用于进程间通信的套接字应用程序编程 接口

浅论计算机网络信息安全技术

浅论计算机网络信息安全 夏杰机制091 109011010 [论文关键词]Web Services 网络完全技术 [论文摘要]为了满足日益增长的需求,人们提出了基于XML的Web服务。它的主要目标是在现有的各种异构平台的基础上构建一个通用的与平台无关、语言无关的技术层,各种平台上的应用依靠这个技术层来实现彼此的连接和集成,Web Services的核心技术主要是XML技术、SOAP技术、WSDL及UDDI等。本文对此进行了探讨。 1 XML技术 近年来,XML已成为数据表示和数据交换的一种新标准。其基本思想是数据的语义通过数据元素的标记来表达,数据元素之间关系通过简单的嵌套和引用来表示。若所有web服务器和应用程序将它们的数据以XML编码并发布到Internet,则信息可以很快地以一种简单、可用的格式获得,信息提供者之间也易于互操作。XML一推出就被广泛地采用,并且得到越来越多的数据库及软件开发商的支持。总体讲来,XML具有自描述性、独立于平台和应用、半结构化、机器可处理的、可扩展性和广泛的支持等特点。因此,XML可被广泛应用于电子商务、不同数据源的集成、数据的多样显示等各个方面。XML描述了一个用来定义标记集的方法用于规定一个标记集,填入文本内容后,这些标记和纯文本一起构成了一个XML 文档。 一个良好的XML文档必须满足以下几条规则:(1)有一致良好定义的结构(2)属性需用引号引起来:(3)空白区域不能忽略:(4)每个开始标签必须要有一个与之对应的结束标签:(5)有且只有一个根元素包含其他所有的结点:(6)元素不能交叉重叠但可以包含:(7)注释和处理指令不能出现在标签中:(8)大小写敏感:(9)关键词“D0CTYPE”、“ELEMENT”、“ATTRIBUTE”和“ENTITY”要大写。为了说明特定的语法规则,XMLDTD(DocumentTypeDefination)采用了一系列正则式。语法分析器(或称解析器)将这些正则式与XML文件内部的数据模式相匹配,以判别文件是否是有效。一个DTD描述了标记语言的语法和词汇表,定义了文件的整体结构以及文件的语法。在Internet中,一个最重要的问题是如何实现数据的交互,即客户端和服务器端双向数据交流。当前所面对的是一个物理上分散的、异源、异构的数据环境,能方便地从这些数据中取得所需要的信息极为重要。XML 满足这一要求,它可以将各种类型的数据转换成XML文档,然后对XML文档进行处理,之后,再将XML数据转换为某种方式存储的数据。XML的数据源多种多样,但主要分为三种:第一种为本身是纯文本的XML文档、TXT文件、DAT文件等第

分布式数据库设计方案

1.大型分布式数据库解决方案 企业数据库的数据量很大时候,即使服务器在没有任何压力的情况下,某些复杂的查询操作都会非常缓慢,影响最终用户的体验;当数据量很大的时候,对数据库的装载与导出,备份与恢复,结构的调整,索引的调整等都会让数据库停止服务或者高负荷运转很长时间,影响数据库的可用性和易管理性。 分区表技术 让用户能够把数据分散存放到不同的物理磁盘中,提高这些磁盘的并行处理能力,达到优化查询性能的目的。但是分区表只能把数据分散到同一机器的不同磁盘中,也就是还是依赖于一个机器的硬件资源,不能从根本上解决问题。 分布式分区视图 分布式分区视图允许用户将大型表中的数据分散到不同机器的数据库上,用户不需要知道直接访问哪个基础表而是通过视图访问数据,在开发上有一定的透明性。但是并没有简化分区数据集的管理、设计。用户使用分区视图时,必须单独创建、管理每个基础表(在其中定义视图的表),而且必须单独为每个表管理数

据完整性约束,管理工作变得非常复杂。而且还有一些限制,比如不能使用自增列,不能有大数据对象。对于全局查询并不是并行计算,有时还不如不分区的响应快。 库表散列 在开发基于库表散列的数据库架构,经过数次数据库升级,最终采用按照用户进行的库表散列,但是这些都是基于自己业务逻辑进行的,没有一个通用的实现。客户在实际应用中要投入很大的研发成本,面临很大的风险。 面对海量数据库在高并发的应用环境下,仅仅靠提升服务器的硬件配置是不能从根本上解决问题的,分布式网格集群通过数据分区把数据拆分成更小的部分,分配到不同的服务器中。查询可以由多个服务器上的CPU、I/O来共同负载,通过各节点并行处理数据来提高性能;写入时,可以在多个分区数据库中并行写入,显著提升数据库的写入速度。

分布式系统和集中式系统

分布式系统和集中式系统 Prepared on 22 November 2020

分布式系统与集中式系统 根据管理信息系统的硬件、软件、数据等信息资源在空间的分布情况,系统的结构又可分为集中式和分布式两大类型。 一、分布式系统 利用计算机网络把分布在不同地点的计算机硬件、软件、数据等信息资源联系在一起服务于一个共同的目标而实现相互通信和资源共享,就形成了管理信息系统的分布式结构。具有分布结构的系统称为分布式系统。 实现不同地点的硬、软件和数据等信息资源共享,是分布式系统的一个主要特征。分布式系统的另一个主要特征是各地与计算机网络系统相联的计算机系统既可以在计算机网络系统的统一管理下工作,又可脱离网络环境利用本地信息资源独立开展工 作。 下图是分布式的图例: a)硬件环境 原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与 软件。 b)网络环境 多数分布式系统是建立在计算机网络之上的,所以分布式系统与计算机网络在物理结构上是基本相同的。分布式操作系统的设计思想和网络操作系统是不同的,这决定了他们在结构、工作方式和功能上也不同。网络操作系统要求网络用户在使用网络资源时首先必须了解网络资源,网络用户必须知道网络中各个计算机的功能与配置、软件资源、网络文件结构等情况,在网络中如果用户要读一个共享文件 时,用户必须知道这个文件放在哪一台计算机的哪一个目录下;分布式操作系统是以全局方式管理系统资源的,它可以为用户任意调度网络资源,并且调度过程是“透明”的。当用户提交一个作业时,分布式操作系统能够根据需要在系统中选择最合适的处理器,将用户的作业提交到该处理程序,在处理器完成作业后,将结果传给用户。在这

计算机网络信息安全及对策

计算机网络信息安全及对策 摘要:众所周知,作为全球使用范围最大的信息网,Internet自身协议的开放性极大地方便了各种联网的计算机,拓宽了共享资源。但是,由于在早期网络协议设计上对安全问题的忽视,以及在管理和使用上的无政府状态,逐渐使Internet自身安全受到严重威胁,与它有关的安全事故屡有发生。对网络信息安全的威胁主要表现在:非授权访问,冒充合法用户,破坏数据完整性,干扰系统正常运行,利用网络传播病毒,线路窃听等方面。 本文主要介绍了有关网络信息安全的基础知识:网络信息安全的脆弱性体现、网络信息安全的关键技术、常见攻击方法及对策、安全网络的建设。并提出和具体阐述自己针对这些问题的对策。随着网络技术的不断发展,网络信息安全问题终究会得到解决。 关键词:网络信息安全 防火墙 数据加密 内部网 随着计算机技术的飞速发展,信息网络已经成为社会发展的重要保证。信息网络涉及到国家的政府、军事、文教等诸多领域,存储、传输和处理的许多信息是政府宏观调控决策、商业经济信息、银行资金转账、股票证券、能源资源数据、科研数据等重要的信息。其中有很多是敏感信息,甚至是国家机密,所以难免会吸引来自世界各地的各种人为攻击(例如信息泄漏、信息窃取、数据篡改、数据删添、计算机病毒等)。通常利用计算机犯罪很难留下犯罪证据,这也大大刺激了计算机高技术犯罪案件的发生。计算机犯罪率的迅速增加,使各国的计算机系统特别是网络系统面临着很大的威胁,并成为严重的社会问题之一。 网络信息安全是一个关系国家安全和主权、社会稳定、民族文化继承和发扬的重要问题。其重要性,正随着全球信息化步伐的加快越来越重要。网络信息安全是一门涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性学科。它主要是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。 本文从网络信息安全的脆弱性、网络安全的主要技术、常见网络攻击方法及对策、网络安全建设等方面剖析了当前网络信息安全存在的主要问题,并对常见网络攻击从技术层面提出了解决方案,希望通过网络安全建设逐步消除网络信息安全的隐患。 一、网络信息安全的脆弱性 因特网已遍及世界180多个国家,为亿万用户提供了多样化的网络与信息服务。在因特网上,除了原来的电子邮件、新闻论坛等文本信息的交流与传播之外,网络电话、网络传真、静态及视频等通信技术都在不断地发展与完善。在信息化社会中,网络信息系统将在政治、军事、金融、商业、交通、电信、文教等方面发挥越来越大的作用。社会对网络信息系统的依赖也日益增强。各种各样完备的网络信息系统,使得秘

网络与分布式计算复习提纲

1.2 什么是分布式计算系统?它的实质是什么? 分布式计算系统是由多个相互连接的计算机组成的一个整体,这些计算机在一组系统软件(分布式操作系统或中间件)环境下,合作执行一个共同的或不同的任务,最少依赖于集中的控制过程、数据和硬件。 实质:分布计算系统=分布式硬件+分布式控制+分布式数据。 1.10多处理机与多计算机的区别是什么?同构多计算机和异构多计算机各有什么特点? 区别:多计算机是将多个计算机联合起来处理问题, 多处理机是在一个系统内集成多个处理器. 广义上说,使用多台计算机协同工作来完成所要求的任务的计算机系统都是多处理机系统。即多计算机系统。 狭义上说:多处理机系统的作用是利用系统内的多个CPU来并行执行用户的几个程序,以提高系统的吞吐量或用来进行冗余操作以提高系统的可靠性。 同构计算机的特点: 1.每个节点是一台计算机,包含CPU和存储器。 2.节点间的通信量较少。 3.同构计算机系统的互连有两种结构:基于总线的多计算机系统和基于交换的多计算机系统。 异构计算机的特点:

1.节点差异很大,节点可能是多处理机系统、集群或并行高性能计算机。 2.节点间通过互联网络如Internet连接起来的。 3.有两种实现方法:采用分布式操作系统和中间件软件层。 1.16什么是中间件,它的功能是什么?它在分布式系统中的地位是什么? 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件 功能:命名服务作业调度高级通信服务资源管理数据持久化分布式事务分布式文档系统安全服务 地位:中间件的一个重要目标是对应用程序隐藏底层平台的异构型,因此中间件系统都提供一组完整度不同的服务集。这些服务是通过中间件系统提供的接口来调用的。一般禁止跳过中间件层直接调用底层操作系统的服务。 1.18分布式系统有哪些计算模式?(必考) 1.面向对象模式

分布式控制系统课程设计

分布式控制课程设计 设计题目:课题八:3台电动机的顺序控制 学校:上海工程技术大学 院系:机械工程学院

二任务描述: 在现代工业生产中,电动机自动与手动正反转的设置得到了广泛的应用。设计三台电动机的顺序控制程序的原则是: (1)自动每隔离十分钟启动一台电机,中间可急停,到了八小时后都自动关闭。 (2)手动顺序启动,手动反序停止。 设计四段程序,第一段是自动顺序启动三台电机,由SB1总起T0,T1延时触发。第二段程序是到点自动停止,每个电机配备一个定时器加计数器来实现。第三段程序是手动顺序启动由SB2总起,T5,T6延时触发。第四段程序是手动反序停止由中间继电器M1.0,M1.1,M1.2线圈触发,而在第三段程序的起停保电路中用它们的常闭触点来实现。 控制任务和要求: (1)启动操作:按启动按钮SB1,电动机M1启动,10s后电动机M2自动启动,又经过8s,电动机M3自动启动。 (2)停车操作:按停止按钮SB2,电动机M3立即停车;5s后,电动机M2自动停车;又经过4s,电动机M1自动停车。 (3)要求启动时,每隔10min依次启动1台,每台运行8h后自动停车。在运行中可用停止按钮将3台电动机同时停机。 三电动机及其PLC控制器的介绍 1.系统设计功能 1)电路设计 本课题的三台电动机应满足以下要求 (1)自动时,当第二台电动机延时启动时,不关闭第一台电动机。当第三台电动机延时启动时,不关闭第一,第二台电动机。且三者自各自启动就开始计数器计时,准备 关闭。 (2)用急停按钮使三台电动机同时停移,但时间必须在自动停止时间范围内。 (3)手动时,当第二台中动机延时启动时,必须等三台电动机按顺序都启动后才可以按下手动反序停止按钮,使他们各自停止。 2)主电路设计 由三台电机组成,启动电路由自动开关QF0.,接触器KM0-KM3.热继电器FR1-FR3各台电

信息安全技术及应用

信息安全技术及应用· 浅谈网络信息安全及其防范技术 刘 辉 (天津滨海职业学院信息工程系,天津300451) 摘要:介绍网络信息安全的内容及其特性,分析了影响网络安全的主要因素,针对目前常见的网络安全隐患提出了有效的防范技术. 关键词:网络信息安全;防范技术 中图分类号: 文献标识码:A Simply Discussion of the Network Information Security and Precautionary Technology UU Hui (Department of Information ,Tianjin Coastal Polytechnic Imtitute,Tianjin Key words:Network information security;Precautionary technology 300451) 计算机网络是通过某种通信手段,把地理上分散的计算机连接起来实现资源共享的系统.因此在计算机网络的设计过程中,人们总是过多地考虑如何能够方便地实现资源共享,但在实际应用中,资源共享总是在一个局部或者某些特定用户之间进行的,超越了这个范围,就会造成信息泄密,信息破坏等危害网络安全的现象,这是所有设计者和使用者都不希望出现的,因此必须通过采用各种技术和管理措施,使网络系统正常运行.从而确保网络数据的可用性,完整性和保密性.确

保经过网络传输和交换的数据不会发生增加,修改,丢失和泄露等现象. 1 f1)完整性:是指信息在存储或传输过程中保持不被修改,不被破坏,不延迟,不乱序和不丢失的特性,即保证信息的来源,去向,内容真实无误.信息的完整性是信息安全的基本要求.破坏信息的完整性是影响信息安全的常用手段.许多协议确保信息完整性的方法大多是收错重传,丢弃后续包,但黑客的攻击可以改变信息包内部的内容. (2)保密性:是指信息不泄露给非授权人,实体和过程,或供其使用的特性,即保证信息不会被非法泄露扩散. (3)町用性:是指信息可被合法用户访问并能按要求的特性使用,即信息可被授权实体访问并能按需求使用.例如,网络环境下拒绝服务,破坏网络和有关系统的正常运行等都属于对于..一, 司用性的攻击. 誊'o丘 网络信息安全含义 计算机网络信息安全通常是指利用网络管理控制和技术措施使网络系统的硬件,软件及其中的数据受到保护,防止网络本身及网上传输的信息财产受偶然的因素或者恶意的攻击而遭到破坏,更改,泄漏,或使网上传输的信息被非法系统辨认,控制, 即确保网上传输信息的完整性(Integrity),保密性(confidentimid), 可用性fAvailability)及可控性(Controllability),也就是确保信息的安全有效性并使系统能连续,可靠,正常地运行,网络服务不中断.由于计算机网络通常由多级网络组成,其信息系统也由多级组成,各级网络信息的安全要求也各不相同. 针对计算机信息系统中信息存在形式和运行特点,信息安全包括操作系统安全,数据库安全,网络安全,病毒保护,访问控制,加密与鉴别等内容,大致可以概括为

西工大网络与分布式计算简答题复习

1.1什么是服务、协议、实体? 协议定义了格式,网络实体间发送和接收报文顺序,和传输,收到报文所采取的动作。 三要素:<1>语法:规定信息格式 <2>语义:明确通信双方该怎样做 <3>同步:何时通信,先讲什么后讲什么,通信速度等。 1.2网络边缘:什么是无连接服务,面向连接? <1>无连接服务:不要求发送方和接收方之间的会话连接 <2>面向连接:在发送任何数据之前,要求建立会话连接 1.3电路交换和分组交换的区别,分组交换分为哪两种? 电路交换技术:很少用于数据业务网络,主要是因为其资源利用效率和可靠性低。 分组交换技术:通过统计复用方式,提高了资源利用效率。而且当出现线路故障时,分组交换技术可通过重新选路重传,提高了可靠性。 而另一个方面,分组交换是非面向连接的,对于一些实时性业务有着先天的缺陷,虽然有资源预留等一系列缓解之道,但并不足以解决根本问题。而电路交换技术是面向连接的,很适合用于实时业务。同时,与分组交换技术相比,电路交换技术实现简单且价格低廉,易于用硬件高速实现。 分组交换:<1>数据报方式:在目的地需要重新组装报文。优点:如有故障可绕过故障点、:不能保证按 顺序到达,丢失不能立即知晓。 <2>虚电路方式:在数据传输之前必须通过虚呼叫设置一条虚电路。它适用于两端之间长时间的数据交 换。优点:可靠、保持顺序;缺点:如有故障,则经过故障点的数据全部丢失。 1.4物理媒介 无线:无线电波,激光,微波有线:双绞线,同轴电缆,光纤 1.5分组电路交换中的时延(传输+处理+传播),每一个时延计算 时延和丢包产生的原因:分组在路由器缓存中排队:分组到达链路的速率超过输出链路的能力; 分组时延的四种来源:<1>节点处理<2>排队 <3>传输时延:R= 链路带宽 (bps)L= 分组长度 (比特)发送比特进入链路的时间= L/R <4>传播时延:d = 物理链路的长度s = 在媒体中传播的速度 (~2x108 m/sec)传播时延 = d/s dproc = 处理时延 通常几个微秒或更少 dqueue = 排队时延 取决于拥塞 dtrans = 传输时延= L/R 对低速链路很大 dprop = 传播时延 几微秒到几百毫秒 a= 平均分组到达速率 流量强度 = La/R La/R ~ 0: 平均排队时延小 La/R -> 1: 时延变大 La/R > 1: 更多“工作”到达,超出了服务能力,平均时延无穷大! 1.6什么是计算机网络体系结构? TCP/IP 模型: 应用层: 支持网络应用 为用户提供所需要的各种服务 运输层: 为应用层实体提供端到端的通信功能。 TCP, UDP 网络层: 解决主机到主机的通信问题 IP, 选路协议 链路层: 在邻近网元之间传输数据 PPP, 以太网 物理层: “在线上”的比特 prop trans queue proc nodal d d d d d +++=

相关文档
最新文档