数据管理技术的新格局

数据管理技术的新格局
数据管理技术的新格局

网络出版时间:2012-11-23 12:08 网络出版地址:https://www.360docs.net/doc/777220479.html,/kcms/detail/11.2560.TP.20121123.1208.003.html
软件学报 ISSN 1000-9825, CODEN RUXUEW Journal of Software ?中国科学院软件研究所版权所有. E-mail: jos@https://www.360docs.net/doc/777220479.html, https://www.360docs.net/doc/777220479.html, Tel/Fax: +86-10-62562563
数据管理技术的新格局
?
覃雄派 1,2,3, 王会举 1,2,3, 李芙蓉 1,2,3, 李翠平 1,2,3, 陈 红 1,2,3, 周 烜 1,2,3, 杜小勇 1,2,3, 王 珊 1,2,3
1 2 3
(教育部数据工程与知识工程重点实验室(中国人民大学),北京 (萨师烜大数据管理与分析研究中心(中澳),北京 (中国人民大学 信息学院,北京 100872) 100872)
100872)
通讯作者: 覃雄派, E-mail: each5595@https://www.360docs.net/doc/777220479.html, 覃雄派,王会举,李芙蓉,李翠平,陈红,周烜,杜小勇,王珊.数据管理技术的新格局.软件学报. https://www.360docs.net/doc/777220479.html,/1000–9825
/4345.htm

要:
数据获取技术的革命性进步、存储器价格的显著下降以及人们希望从数据中获得知识的客观需要等,催
生了大数据,数据管理技术迎来了大数据时代.关系数据库技术经历了 20 世纪 70 年代以来 40 年的发展,目前遇到了 系统扩展性不足、支持数据类型单一等困难.近年来,noSQL 技术异军突起,对多种类型的数据进行有效的管理、处 理和分析;通过并行处理技术获得良好的系统性能;并以其高度的扩展性,满足不断增长的数据量的处理要求.试图 沿着数据库技术进步的历史脉络,从应用维度(操作型与分析型应用)入手,为读者展开当今数据管理技术的新格局, 讨论具有挑战性的重要的问题,最后介绍我们自己的研究工作. 关键词: 关系数据库;noSQL;大数据;操作型;分析型;新格局 中图法分类号: TP301 文献标识码: A
New Landscape of Data Management Technologies
QIN Xiong-Pai 1,2,3, WANG Hui-Ju1,2,3, DU Xiao-Yong1,2,3, WANG Shan1,2,3
1 2 3
LI Fu-Rong1,2,3,
LI Cui-Ping1,2,3,
CHEN Hong1,2,3,
ZHOU Xuan1,2,3,
(MOE Key Laboratory of Data Engineering and Knowledge Engineering (Renmin University of China), Beijing 100872, China) (Sa Shi-Xuan Big Data Management and Analytics Research Center (Sino-Australia), Beijing 100872, China) (Information School, Renmin University of China, Beijing 100872, China) Revolutional progress of data collecting techniques, dramatic decrease of the price of storage devices, as well as the
Abstract:
desirability of people to extract information from the data give birth to the so-called big data, data management technologies usher in the age of big data. RDBMS undergoes a development of 40 years since 1970s, now it encounters some difficulties such as limited system scalability, limited data variety support. In recent years, noSQL technologies rise suddenly as a new force, the technologies can manage, process, and analyze various types of data, achieve rather high performance with the help of parallel computing, and they can handle even bigger volumn of data with the nice property of highly scalability. The paper follows the path of database technology progress, unfolds the new landscape of data management technologies from the angle of applications (operational as well as analytic applications), the paper also tries to identify some chanllenging and important issues that deserve further investigation, with our recent research work introduced at the end. Key words: RDBMS; noSQL; big data; operational; analytic; new landscape
?
基 金 项 目 : 国 家 自 然 科 学 基 金 (61070054, 60873017, 61170013); 核 高 基 重 大 科 技 专 项 基 金 (2010ZX01042-001-002, 收稿时间: 2012-06-12; 定稿时间: 2012-10-16; jos 在线出版时间: 2012-11-23
2010ZX01042-002-002-03)

2
Journal of Software 软件学报
近年来,数据管理技术正在经历重大的变革.本文作者试图沿着技术进步的历史脉络,从应用维度入手(包 括操作型应用和分析型应用),为读者展开当今数据管理技术的全景画卷,分享我们的研究体会.
1
关系数据库发展历史回顾
上个世纪 70 年代初,IBM 工程师 Codd 发表了著名的论文“A Relational Model of Data for Large Shared Data
Banks”,开启了数据管理技术的新纪元——关系数据库时代.关系数据库管理系统(RDBMS)就是在这篇论文的 基础上设计出来的.在此之前的数据库系统,主要有基于层次模型的层次数据库(比如 IBM 公司的 IMS 系统)、 基于网状模型的网状数据库(比如 IDS 数据库)等.这些数据库的主要缺点是: ? 其数据模型对于普通用户来讲难以理解; ? 同时,软件的编写和数据的模式(schema)联系过于紧密,层次和网状数据结构都是导航式(navigational) 的数据结构,存取特定的数据单元必须在软件中按照一定的存取路径去提取,当数据模式发生改变,已 经编写好的软件需要做相应的修改. Codd 提出的关系数据模型,基于“表格(关系)”、“行”、“列”/“属性”等基本概念,把现实世界中的各类实体 (entity)及其关系(relationship)映射到表格上,这些概念易于理解,E.F.Codd 还为关系模型建立了严格的关系代数 运算. 关系模型首次提出来的时候,曾经受到严重的质疑.一些专家学者认为,关系数据库需要进行表格的连接操 作,不可能获得和层次、网状数据库一样的高性能.但是历史的潮流不可阻挡,世界各地的研究人员致力于关系 数据模型及相关技术(特别是查询处理技术)的研究和开发.研究人员对包括存储、索引、并发控制、查询优化、 执行优化(包括各种连接算法)等关键技术进行了研究,并且针对数据库的 ACID(atomicity 原子性、consistency 一致性、isolation 隔离性、durability 持久性)保证提出了日志、检查点和恢复等技术.这些技术解决了数据的一 致性、系统的可靠性等关键问题,为关系数据库技术的成熟以及在不同领域的大规模应用创造了必要的条件. 研究人员还掀起了关系数据库系统开发热潮,特别值得提及的两个原型系统,一个是 IBM 开发的 System R,另一 个是加州大学伯克利分校开发的 Ingres.这两个系统最后都演化为成熟的关系数据库产品.若干围绕关系技术 的数据库公司和产品部门纷纷成立,大浪淘沙,其中获得商业上成功的公司(部门)主要有 IBM(DB2)、Oracle (oracle)、Informix、Sybase、微软(SQL server)、SAP 等.这些数据库技术公司创造了庞大的数据库产业,每年创 造巨大的产值,仅 Oracle 一家(https://www.360docs.net/doc/777220479.html,/ us/corporate/investor-relations/financials/q4fy11-421266. pdf),2011 年财政年度的销售收入为 356 亿美元($35.6 Billion). 1974 年,交互式查询语言 SEQUEL(structured english query language)作为 System R 项目的一部分,被 IBM 的工程师开发出来.这是 SQL 语言的前身.现在,SQL 语言已经成为国际标准,成为各个厂家数据库产品的标准 的数据定义语言、查询语言和控制语言.SQL 语言非常容易理解,普通用户经过简单培训就可以掌握和使用.使 用 SQL 语言,用户只需要告诉系统查询目的是什么(需要查询什么数据),即“What”,并不需要告诉系统怎么样去 做,即“How”,包括数据在磁盘上是怎么存储的、 可以使用什么索引结构来加快数据访问以及使用什么算法对数 据进行处理等,都无需用户关心.关系数据库系统的查询优化器根据用户的查询特点和数据的特点,自行选择合 适的查询执行计划,通过过滤、连接、聚集等操作完成用户的查询,达到执行速度快、消耗资源少、尽快获得 部分结果等目标.查询优化器经历了从简单到复杂、基于规则到基于代价模型的发展阶段,是关系数据库系统 最重要的和最复杂的模块之一. 容易理解的模型、容易掌握的查询语言、高效的优化器、成熟的技术和产品,使得关系数据库成为数据管 理的首要选择.虽然 1970 年到 2000 年间并非所有的数据库系统都是基于关系模型的,针对特定应用出现了包 括面向 XML 文档管理和查询(XQuery)的 XML 数据库、面向多媒体数据管理的多媒体数据库、面向高维时空 数据处理的时空数据库、RDF 数据库、面向对象的数据库等(比如 gem stone,objectivity,object store 等),但是关 系数据库技术和产品占据了绝对的统治地位(包括技术和市场).关系数据库管理系统厂商还通过扩展关系模 型,支持半结构化和非结构化数据的管理,包括 XML 数据、多媒体数据等,并且通过用户自定义类型(UDT)和用

覃雄派 等:数据管理技术的新格局
3
户自定义函数(UDF)提供面向对象的处理能力,进而巩固了关系数据库技术的王者地位.关系数据库还可以通 过裁剪适应特定的应用场合,比如流数据的处理(stream processing,一般基于内存数据库实现),用户可以在源源 不断涌来的序列数据上运行 SQL 查询,获得时间窗口上的结果,实现数据的及时(on the fly)分析和监控. 关系数据库系统最初主要用于事务处理领域.随着数据的不断积累,人们需要对数据进行分析,包括简单汇 总、联机分析处理(OLAP,主要是多维分析)、统计分析、数据挖掘等.在关系模型上支持这些分析操作成为一 个自然的选择,比如建立于RDBMS之上的联机分析处理技术ROLAP(MOLAP模型是实现OLAP分析的另外一 种模型,在此不赘述).分析型应用和操作型应用(主要是事务处理)具有不同的特点:操作型应用的数据处理任务 主要包括对数据进行增加、删除、修改和查询以及简单的汇总操作,涉及的数据量一般比较少,事务执行时间 一般比较短;而分析型应用(包括联机分析处理和数据挖掘等)则需要扫描大量的数据,进行分析、 聚集操作,最后 获得数据量相对小得多的聚集结果和分析结果,有些分析处理需要对数据进行多遍扫描(比如数据挖掘的 K-Means算法),分析查询执行的时间以分钟计或者小时计.针对分析型应用的数据存取特点,一些学者提出了不 同于行存储模型(面向事务处理的关系数据库一般采用行存储模型)的列存储模型(columnar storage model) [1] . 列存储模型有自己独特的优势,当查询只涉及关系的某些数据列的时候,不会造成无关数据列的提取,从而减少 I/O,提高查询效率;此外,由于同一列数据紧密存放在一起,这些数据来自同样的数据域,表现出很高的冗余度,很 容易进行数据压缩,节省存储空间;数据压缩技术也能够提高处理效率,因为压缩数据的提取能够节省I/O带宽; 一些压缩技术的研究,甚至可以支持在非解压的情况下进行查询处理 [2?4] . 围绕RDBMS,形成了一个完整的生态系统(厂家、技术、产品、服务等),提供了包括数据采集、清洗和集 成、数据管理、数据查询和分析、数据展现(可视化)等技术和产品 [5] ,创造了巨大的数据库产业. 20 世纪 90 年代末以来,硬件技术发生了巨大变化,主要有: (1) CPU 的研发已经不再走单纯提升频率的路线(遇到功耗等困难),而是在一个芯片上集成更多的核心, 出现了多核、甚至众核 CPU,面向图形处理的 GPU 则集成更多的处理核心,工作频率也比通用 CPU 高,提供了前所未有的并行处理潜能; (2) (3) 存储器的价格持续下降,使得服务器的内存容量不断增长,中小规模、甚至大规模的数据库系统可以 把数据全部装载到内存中,实现快速访问和处理; 新的持久性存储器不断涌现,包括基于闪存技术的固态硬盘(SSD)以及相变内存(PCM)技术等,这些 持久性的存储器具有和硬盘不同的读写特性,传统的 RDBMS 对其并未感知并加以利用. 针对这些新硬件,需要对数据库的存储、索引、并发控制方法、查询优化、恢复等技术进行必要的修改, 使之适应新硬件的特点,获得更高的性能.这些研究包括: (1) (2) 面向全内存处理的数据结构、索引结构 [6] :内存的访问模式和磁盘根本不同,面向磁盘的存储结构和 索引结构不适合基于内存的处理,必须加以改变,或者提出新的存储结构和索引结构(比如T树 [7] ); 面向Cache优化的查询处理算法:一旦数据全部存放在内存中,系统的查询性能的优化,主要考虑数据 在内存和CPU之间的快速交换问题,研究人员提出了一系列Cache感知 [8?10] 和Cache不敏感 [11?13] 的算 法,加快数据处理操作,这些算法的共同目标是如何减少Cache缺失(cache miss); (3) (4) (5) 随着CPU上集成的核心数量的增多,数据处理软件也需要做相应改变,从面向多核的并行数据处理
[14]
到解决多个核心的总线争用 [15] 、多个核心的处理的协调等,都是需要解决的问题;
GPU集成的核心数量比通用CPU多得多,工作频率也更高,如何利用GPU实现快速的数据处理和分析 的研究方兴未艾 [16?20] ; 目前,基于闪存技术的存储器价格不断下降,开始走向大规模应用,闪存的读取一般比写入要快得多, 写入操作不能在原有数据上进行,需要新的数据块进行写入,废弃的数据块要进行统一的收集和回 收.针对闪存的特点,研究人员调整了数据结构、日志处理方法 [21?23] 等,力图利用其读取速度快的优 点,规避其写入速度慢的缺点,获得更高的数据处理性能;
(6)
保存在内存中的数据在掉电情况下将彻底丢失,为了保证内存数据库的可恢复性,必须针对内存处

4
Journal of Software 软件学报
理研究新的恢复技术,实现高效的日志处理、 检查点操作和恢复过程,否则,内存数据库的高速数据处 理特性将无法得到有效发挥.研究人员研究了一系列面向内存数据库的恢复技术,其中,并行恢复技 术 [24,25] 是加快日志处理、检查点操作和加快恢复过程的有效手段. 内存数据库系统是上述技术的综合体现,主要的内存数据库系统有面向事务处理的 Timesten,Altibase, Hana,CSQL 等以及面向分析型应用的 MonetDB(商业化版本为 VectorWise),C-Store(商业化版本为 Vertica)等.
2
大数据时代的来临与关系数据库的困难
存储器价格的下降和容量的巨大提升、互联网应用的发展(电子商务、社交网络)、科学研究的需要等,使
得我们收集到前所未见的庞大数据集,大数据时代已经来临.大数据的主要来源包括(但不限于这些): (1) 大型的电子商务系统,由于用户数量和交易数量巨大,其积累的数据量相当惊人,比如淘宝每天新增 的数据量超过 20TB(https://www.360docs.net/doc/777220479.html,/article/2010-12-02/282918).为了有效处理这么大规模的数 据,淘宝自行开发了海量数据库系统 Ocean Base; (2) (3) (4) (5) 基于互联网的社交网络,是一个重要的大数据来源(参考第 3.1.4 节); 科学研究也积累了大量的数据,比如欧洲原子能中心的大型强子对撞机,每年积累的数据量是 15PB, 需要有效的手段对其进行处理; 无线射频技术、传感器网络技术、物联网技术(Internet of things)的大规模部署,将以前所未有的速度 生成数据,这些数据即使经过过滤,只保留有效的数据,其数据量也是惊人的; 在电信领域,为了对用户的行为进行有效的分析,以便提供更加优质的服务,需要对用户的历史通话 记录和计费信息进行分析.在中国这样的大国,特别是在发达地区,由于用户数量庞大,电信公司每天 新增的数据量是非常大的. 大数据的主要特点不仅仅是数据量巨大(volume),还包括其他重要的特点,比如数据类型多样(variety)/处理 复杂(complex)、数据生成速度快/需要快速的处理能力(velocity)等. ? 首先,数据生成的速度在加快,在事务处理领域,基于互联网的电子商务系统可能迎来突发的事务请 求,中国铁道部的网络售票系统即是一个典型例子(特别是在春运期间).这并不是一个特例,当电子商 务系统通过互联网面向全球用户进行服务的时候,这种情况将变得很平常.科学研究中的天文观测 和高能物理实验,都需要对快速采集的大量数据进行处理; ? 其次,我们需要处理的数据类型丰富多样,除了结构化数据(主要指关系型数据),还包括各种半结构 化、和非结构化的数据.比如,互联网积累和存储了大规模的非结构化数据,包括各种类型的文档、媒 体文件;人们基于互联网的共享和协作关系,可以描述成一种网络关系,由于人数众多,形成了一个巨 大的图,对社会网络进行分析是当前的研究热点,这也是非结构化的数据; ? 最后,在类型多样的数据上,其处理和分析操作也是多样的和复杂的.我们不仅仅需要简单的增加、 删 除、修改、查询和汇总操作,更需要进行复杂的计算和分析,这些分析依赖于人工智能、机器学习、 数据 挖 掘 、情 感计 算 、 网络 分析 、 搜 索等 技术.比如在“危险边缘”游戏中,打败人类冠军的“沃 森”(Watson)计算机(IBM公司研发的一个原型系统)集成了人工智能、自然语言处理等先进的技术. 正如Stonebraker[26] 所说的,SQL查询只是简单的汇总分析(little analytics),从数据中获得知识必须依 赖于更复杂的计算,大数据之上必然要进行大分析(big analytics,即复杂分析),才能把数据变废为宝, 否则,我们将迷失在数据的海洋中. 大数据时代迎面而来,关系数据库系统并未做好准备: ? 首先,关系模型不容易组织和管理所有类型多样的数据,比如在关系数据库里,管理大规模的高维时 空数据(倪明选等人在文献[27]描述了大规模高维时空数据处理的挑战和关系数据库技术的困难)、 大规模的图数据(graph)等都显得力不从心; ? 其次,如何通过大量节点的并行操作实现大规模数据的高速处理,仍然是一个巨大的挑战.在关系数

覃雄派 等:数据管理技术的新格局
5
据库上进行大规模的事务处理,不仅仅要解决读操作(查询)的性能问题,更需要解决修改操作的性能 问题,大量的新事务(操作)到达,需要有效的处理,才能保证数据的持久性和可靠性; ? 再次,在关系数据库之上进行数据的复杂分析,可以使用统计分析和数据挖掘软件包;现有的统计分 析、数据挖掘软件包(SPSS,SAS,R 等)能够处理的数据量受限于内存大小、并行化程度不够.从数据 库中提取数据,注入到分析软件中进行分析,将导致大量的数据移动,在大数据时代已经不合适,分析 应该向数据移动(move computation toward data),尽可能靠近数据完成计算.通过数据的划分和并行 计算,实现高性能的数据分析成为必然选择. 基于关系数据库系统,我们可以采用一些暂时的手段解决大数据处理问题.比如: (1) 关系数据库的分割(sharding):首先对数据进行逻辑上的划分(比如按照地区对电信计费数据进行划 分),把数据分布到多个服务器上;然后对应用程序进行修改,以便支持查询的路由选择,利用多个服务 器分担工作负载,来提高系统的性能.Sharding 技术带来一些严重问题:当某个数据分片突破一定的 数据量后,对数据进行重新分割将是非常不容易的事情;数据重新分割将导致程序的修改,程序和模 型的独立性(关系模型的优点)被丢弃了;此外,为了对数据进行正确的操作,全局数据模式(schema)必 须在每个服务器上保存一份,它们之间的同步也是一个大问题; (2) 关系数据库的非规范化(de-normalization)处理:对关系数据进行非规范化处理虽然增加了数据的冗 余,但是可以更容易对数据进行分割,分布到多个节点上进行并行操作;操作过程中利用冗余信息,减 少节点间的数据交换.可以这么说,非规范化技术利用数据冗余换取数据库系统的扩展性能.对数据 进行规范化处理的目的是降低数据的冗余度,方便实现数据的一致性约束,非规范化处理则增加了 数据冗余,使得数据的一致性维护变的困难起来; (3) 为关系数据库部署分布式缓存(distributed cache):在 RDBMS 的前端部署分布式缓存技术(比如 memcached),把最近存取的数据保存在若干服务器的内存中,方便后续的操作.缓存技术并非万能,它 能够加速读操作,但是对于数据的持久保存和写操作却是作用不大;当内存不足的时候,免不了要进 行 Cache 和 RDBMS 的数据交换,这些数据交换对于读操作和写操作都带来一定的延迟;Cache 层的 引入,还增加了系统的复杂度和运维成本.因此,Cache 技术只能解决部分问题,而不是全部. 上述技术增强了 RDBMS 的能力,能够暂时应对大数据处理和分析的挑战.但是,这些技术不能完全解决现 代数据管理的重要挑战(数据规模巨大、数据类型多样等),不能从根本上解决问题.一些半结构化数据强行使用 关系模型进行建模,无法获得良好的性能和扩展能力,比如图数据(请参考第 4.1.3 节 RDBMS 和图数据库(graph database)的遍历性能比较). 为了对大规模数据进行处理,不管是操作型应用还是分析型应用,并行处理是唯一的选择.这个并行处理不 仅是跨越多核的,更为重要的是,它是跨越节点的,依赖于大量节点的并行处理来提高性能.大量节点构成的分 布式系统,即便成本不是问题而选用高端的、可靠的硬件设备,由于集群规模很大,达到上千节点,节点的失败、 网络的失效变得很平常,容错保证变得尤其重要.对系统进行大规模横向扩展,关系数据库系统并未为此做好准 备,目前还没有一个关系数据库系统部署到超过 1 000 个节点规模的集群上,而 MapReduce 技术则已经达到 8 000 节点的部署规模. 根 据 Eric Brewer [28] 提 出 的 CAP 理 论 ( 后 来 由 Gilbert 和 Lynch 证 明 [29] ), 在 大 型 分 布 式 系 统 中 , 一 致 性 (consistency)、系统可用性(availability)、和网络分区容忍性(network partition tolerance)这 3 个目标中,只可以获 得其中两个特性,追求两个目标将损害另外一个目标,3 个目标不可兼得.换言之,如果追求高度的一致性和系统 可用性,网络分区容忍性则不能满足.关系数据库一般通过ACID协议保证数据的一致性,并且通过分布式执行 协议,比如两阶段提交协议等(2PC)保证事务的正确执行,追求系统的可用性,于是丧失了网络分区的容忍性.在 大量节点组成的集群系统中,由于节点失败稀松平常,有可能造成数据库查询不断重启,永远无法结束的情况. ACID实施了强一致性(strong consistency)约束,使得关系数据库系统很难部署到大规模的集群系统中(几千个 节点规模).

6
Journal of Software 软件学报
一致性(consistency) 网络分区容忍性(network partition tolerance)
可用性(availability)
Fig.1 图1 CAP 理论
3
noSQL 技术的崛起
与此同时,noSQL 技术(noSQL 技术不是一种技术,而是一类技术,其主要特点是采用和关系模型不同的数
据模型)顺应时代发展的需要,异军突起,蓬勃发展.各类 noSQL 技术在设计的时候,考虑了一系列新的原则,首要 的问题是如何对大数据进行有效处理.对大数据的操作不仅要求读取速度要快,写入的性能要求也是极高的,这 对于写入操作密集(write heavy)的应用来讲非常重要.这些新原则包括: (1) 采用横向扩展的方式(scale out)应对大数据的挑战,通过大量节点的并行处理获得高性能,包括写入 操作的高性能(请参考第 3.1.2 节 HBase 写入能力的介绍),需要对数据进行划分(partitioning)并进行 并行处理; (2) (3) 放 松 对 数 据 的 ACID 一 致 性 约 束 , 允 许 数 据 暂 时 出 现 不 一 致 情 况 , 接 受 最 终 一 致 性 (eventual consistency); 对各个分区数据进行备份(一般是 3 份),应对节点失败的状况等.一个广为接受的新的一致性约束框 架 是 BASE(basically available,soft state,eventual consistency) 约 束 , 这 是 一 种 弱 一 致 性 (weak consistency)约束框架. 关系模型是一种严格的数据建模方法,而对于类型多样的数据,包括图、高维时空数据等,关系模型显得过 于严格,人们希望通过列表、集合、哈希表等概念对数据进行建模,这也是 noSQL 兴起的重要原因之一.虽然使 用关系模型能够对这些对象进行建模,但是某些操作的执行效率却不尽如人意,比如图的遍历等. 面向现实的挑战,基于上述这些设计理念,各种 noSQL 技术和系统被研发出来,解决了类型多样的大数据的 管理、处理和分析问题.下文从应用角度分别介绍各类操作型 noSQL 技术和分析型 noSQL 技术. 3.1 操作型(operational)noSQL技术及其特点 依据存储模型,操作型 noSQL 技术可划分成基于 Key Value 存储模型、基于 Column Family(列分组)存储 模型、基于文档模型和基于图模型的 noSQL 数据库技术等 4 类.本文从数据划分和系统扩展性、持久性保证、 数据一致性保证、事务语义等方面对典型的技术和系统进行统一介绍,限于篇幅,本文只介绍各类技术的主要 技术特点和系统特色. 3.1.1 基于 Key Value 存储的 noSQL 技术 基 于 Key Value( 键 值 对 ) 存 储 的 主 要 系 统 包 括 Tokyo Cabinet/Tyrant[30] ,Redis[31] ,Voldemort [32] ,Oracle Berkeley DB[33] ,Amazon Dynamo/SimpleDB [34] 等.它们的共同特点是,利用哈希表维护Key值到具体数据(value) 的映射,通过Key值可以很方便地对数据进行查找.对于单个Key的查找来讲,Key Value存储能够获得良好的性 能.Key Value存储的Value部分,虽然内部具有某种结构,即存储某种类型的数据,但是noSQL系统并不对其进行 解释,而是返回给应用程序进行处理,应用程序必须根据事先约定的格式进行后续处理.用户无法根据Value的 某个属性直接向noSQL系统提交查询.Redis赋予了Value某些简单的类型,包括数值型、列表、无序集合、排序 集合等.在noSQL数据库上,对于“查找一个部门的所有员工”这样的查询来讲,需要应用程序首先获得某个部门 的所有员工的ID列表(即Key列表),然后使用这个列表逐一地提取每个员工的数据(value),这种操作依赖于应用 程序来实现;在关系数据库系统中,这类查询可以通过SQL语句方便地实现,程序员的负担很轻.当应用程序只关

覃雄派 等:数据管理技术的新格局
7
心Value里某部分数据的时候,Key Value存储的效率是不高的,因为必须提取整个Value进行解析. 由于 Key Value 存储模型和查询的简单性,有利于把数据进行横向分割,分布到大规模集群上进行存储和处 理,从而获得很高的操作性能(特别是写入的性能).具体的数据分割方式和扩展性保证,请参考第 3.1.5 节“操作 型 noSQL 技术小结”. 3.1.2 基于 Column Family 存储的 noSQL 技术 基于Column Family(数据列分组)存储技术的主要noSQL系统包括Cassandra [35] ,Big Table[36] ,HBase [37] 等. Google的Big Table系统的存储结构是典型的Column Family存储,在Column Family存储中,同样通过Key Value 基础模型对数据进行建模,但是Value具有了更精巧的结构,即一个Value包含多个列,这些列还可以分组(column family),呈现出多层嵌套映射(map)的数据结构特点.由于每列数据是带有时间戳(timestamp)的,可以在Column Family里维护多个Key Value 映射的版本.在需要对历史数据的变动情况进行分析的场合,这样的建模方法正 好能够提供有力的支持.HBase是受Big Table启发而开发的基于Column Family存储的开源noSQL技术,在接口 方面,HBase提供传统的SQL查询接口,可以方便地对数据进行增加、删除、修改、查询、和简单汇总(聚集);凭 借其强大的扩展能力,被应用于日志处理等领域(比如电信应用的日志分析).Facebook对HBase进行了持续的改 进,极大提高了其吞吐能力(尤其是写入能力),达到每天完成 200 亿个写操作(折合每秒 23 万个写操作)[38] 的性 能(https://www.360docs.net/doc/777220479.html,/blog/2011/3/22/Facebooks-new-realtime-analytics-system-hbase-to- process-20.html), 对社交网络的用户信息发布和交互行为进行记录和分析.传统关系数据库由于ACID协议的强约束性,无法达到 这样的扩展能力,虽然可以利用内存处理技术(内存数据库)达到极高的写入性能,却是在不保证持久性的情况 下获得的,HBase则没有这个瓶颈.Cassandra也受启发于Big Table,但是做了大幅度的改变, Cassandra在Column Family下引入超级列(super column)概念层次的映射关系,以便对数据进行更加精细的建模,并建立必要的索引, 加快查询处理.Cassandra还能够把多个Column Family在磁盘上存储在一起,以便在同时访问时提供更高的性 能. 3.1.3 基于 Document 存储的 noSQL 技术 基 于 Document(文 档 )存 储 的 技 术 由 来 已 久 ,比 如 IBM的 Lotus Notes. 这 里 介 绍 的 基 于 Document 存 储 的 noSQL技术,是基于传统文档存储技术的新发展.Document存储技术仍然以Key Value存储模型作为基础模型,这 个模型可以对文档的历史版本进行追踪,每个文档又是一个Key Value的列表,形成循环嵌套的结构,文档格式一 般采用JSON(Javascript object notation)或者类似于JSON的格式.对于特定的查询来讲,Document存储的效率更 高.Document存储给予数据库设计者极大的灵活性对数据进行建模,但是对数据进行操作的编程负担落在了程 序员身上.由于数据的循环嵌套结构特点,应用程序有可能变得越来越复杂、难以理解和维护,需要掌握好灵活 性和复杂性之间的平衡.主要的技术和产品包括CouchDB[39] ,MongoDB[40] 和Riak[41] 等. 3.1.4 基于 Graph 存储的 noSQL 技术 基于Graph(图)存储的系统包括Neo4J[42] ,InfoGrid [43] ,Infinite Graph [44] ,Hyper Graph DB [45] 等.有些图数据库 基于面向对象数据库创建,比如Infinite Graph,在节点的遍历等图数据的操作中,表现出优异的性能.在新的图数 据库的设计中,扩展性作为重要的目标被考虑,目的是对大规模的图数据进行有效的管理和分析.图数据库和上 述 3 类noSQL技术在存储模型、物理设计、数据分布、数据遍历、查询处理、和事务的语义等方面都具有明 显的差异.随着社交网络、科学研究(药物、蛋白质研究)以及其他应用领域不断发展的需要,更多的数据以图作 为基础模型进行表达更为自然,而且这些数据的数据量是极其庞大的,比如,Facebook拥有超过 8 亿的用户,对这 些用户的交互关系进行管理、分析是极大的挑战.这些分析不仅仅是根据一定的条件查找图的节点或者图的 边 , 更 为 复 杂 的 处 理 是 在 图 的 结 构 上 进 行 分 析 , 比 如 社 区 的 发 现 等 ( 参 考 图 2,https://www.360docs.net/doc/777220479.html,/nphys/ journal/v8/n1/full/nphys2162.html,译文https://www.360docs.net/doc/777220479.html,/resources/1190201776262/2012/04/16/14.pdf). 针对图数据的处理,工业界和学术界联合制定了新的评测基准——GRAPH 500,用于对超级计算机以及大 规模集群的图数据处理能力进行评估.人们可以基于这个 Benchmark 对硬件和软件进行持续的优化,以应对大 规模图数据的处理挑战.

8
Journal of Software 软件学报
Fig.2 图2 美国政治相关博客之间超链接的分析 (自由派与保守派) 3.1.5 操作型 noSQL 技术小结 (1) noSQL 的数据模式 图3
Fig.3 GRAPH 500 评测基准(Benchmark)和排行榜
noSQL 技术的数据模式不是很严格,包括 Document 存储和 Column Family 存储,同一类实体的属性集可以 是不同的.这种弱结构化(less structured)存储机制非常方便设计者根据应用的变化及时地更改数据的模式.而关 系数据库的模式必须严格定义,对其进行更改是一个代价较大的操作. (2) noSQL 的数据持久化与可靠性保证 对数据进行严格持久化(把数据写入稳定存储器)可以保证系统的可靠性,但是非常影响系统的性能;不同 的 noSQL 技术采用不同的策略,在持久性保证和性能之间做出折中.在单个服务器上,可以通过把若干个写操作 累积起来统一地写入磁盘(group commit),即调用 fsync(操作系统提供的文件更新接口函数)来提高写入操作的 吞吐量;但是对于单个用户操作来讲,则容易造成延迟的增加.Redis 给程序员提供了控制 fsync 操作的几个选项, 包括每个更新操作调用一次 fsync、或者每 N 秒调用一次 fsync、以及针对某些应用(比如把 Redis 作为高速数 据缓存)完全关闭 fsync 操作.对于磁盘来讲,进行顺序写入比进行随机写入的效率要高.为了减少随机写入的次 数,Cassandra,Hbase,Redis 和 Riak 把更新操作顺序写入一种日志结构文件.Cassandra 和 HBase 使用了一种从 Big Table 借鉴来的技术,把日志和原有的数据组合起来的合并树结构(log structured merge tree).Riak 通过具有 日志结构的 Hash 表(log structured Hash table),提供了类似的功能.CouchDB 则改变了传统的 B+树结构,使得所 有的数据结构更新都以添加的方式保存到外存上.这些技术提高了写操作的吞吐量,但是需要经常对日志文件 进行紧缩(compact)操作以截短日志文件,并且把所有更新集成到数据结构中. 为了应付节点失败、掉电等问题的影响,数据一般在不同节点上有备份.MongoDB 提供了复制集的概念 (replica sets),指定每个文档由那些服务器进行保存.MongoDB 给开发者一些选项,保证所有的复制都收到更新、 还是在不保证所有的数据都收到更新情况下,允许程序继续往下执行.几乎所有的 noSQL 技术都提供这样的多 服务器数据复制机制.比如,HBase 是基于 HDFS 开发的,充分利用了 HDFS 的持久性保证,所有的写操作都复制 到两个、或者多个 HDFS 节点,保证数据的多个备份得到更新,以便互相保护.Riak,Cassandra 和 Voldemort 支持 更多的复制选项,这几个系统虽然有些技术细节上的差别,但是它们都允许用户指定一个参数 N,即最终由 N 个 节点保存数据的拷贝;另外还可以指定参数 W(W

覃雄派 等:数据管理技术的新格局
9
横向扩展(scale out),而不是纵向扩展(scale up).面对大数据处理的挑战,纵向扩展将很快遇到瓶颈,而且代价非 常昂贵,横向扩展才是正确的技术选择.所谓横向扩展,首先需要把数据分割到多个节点上(机器上),然后对处理 算法进行相应修改,对数据进行并行操作,通过并行计算提高系统的性能.当数据量增大或者负载加重,可以增 加处理节点,然后动态地把数据和负载重新分布到整个集群系统上,达到高效率的数据处理的目的.而纵向扩展 则是通过更换、或者升级一台机器的 CPU、内存、磁盘存储器、网络接口卡等,以实现更高的性能. 在noSQL系统中,主要的数据存取都是通过基于Key的查找实现的,为了支持横向的扩展,自然的方式是对 所有的数据基于Key值进行分割.主要的数据分割方式有哈希方法(Hash partitioning)以及Range方法(range partitioning).好的Hash方法可以把数据均匀地分布到各个节点上.在分布式环境下,一种成熟的Hash技术是分布 式 Hash 表 (distributed Hash table, 简 称 DHT).Amazon 的 Dynamo 使 用 了 该 项 技 术 , 该 项 技 术 还 出 现 在 Cassandra,Voldemort,Riak等系统中.在DHT中,需要使用一个Hash函数H把Key值均匀地映射到一系列整数中,比 如从 0 到L,可以把 0 和L首尾相连,形成一个环,H(Key) mod L运算就能够把Key值映射到[0,L]上.图 4 展示了一 个DHT实例.在图 4 中,服务器A负责所有Hash值落在[7,233]的Key值的管理,…,而服务器E则负责Hash值落在 [875,6]的Key值的管理.为了对数据进行复制以支持更高的容错性,可以把数据保存到负责邻近Key范围的节点 上.比如,当复制因子为 3(replication factor=3)时,所有映射到[7,233]的Key和对应的数据被保存到A,B,C这 3 个服 务器上 [46] . 通过 Hash 方法进行数据分布,一般会导致数据不均匀.因此,很多采用 DHT 技术的 noSQL 系统(包括 Riak) 通过在物理机器上创建虚拟节点来解决这个问题.比如,在一台物理服务器 A 上虚拟出 4 个节点 A1,A2,A3 和 A4. 不同的 Key 经过 Hash 映射后,分配到不同的虚拟节点,各个虚拟节点管理了 Key 空间的不同部分,虚拟节点再 映射到物理节点,有利于各个物理机器的负载得到均衡. Voldemort 通过手动配置一个比实际服务器数量大得多的分区数量,使得各个服务器分配到更多的数据分 区(数据量较少),从而避免各个物理节点的数据量和负载出现不均衡状况.Cassandra 则根据历史负载情况,通过 异步地调整服务器在环(ring)中的位置来调整服务器的负载. Google的Big Table则使用一种层次性Range分区方法把数据分割成Tablet,分布到各个节点上.两个小的 Tablet 可 以 合 并 , 而 大 的 Tablet 可 以 再 分 解 , 总 是 保 持 一 个 Tablet 的 大 小 在 100M 到 200MB 之 间 . 系 统 采 用 Master/Slave的主从架构,Master节点负责保存元信息,并且实时监控每个Tablet的大小、负载情况、服务器的可 用性等,对用户的查询进行路由选择,选择合适的Tablet Server来进行服务.当元信息变得很大的时候,可以把元 信息进一步划分到多个Tablet上,形成了 3 层导航寻访架构,如图 5 所示.HBase项目是Big Table的开源实现,在分 区技术上和Big Table是类似的;此外,MongoDB也采用了类似的技术,其配置(configuration)节点存储了数据访 问的路由信息,这些配置节点通过两阶段提交协议保证元信息的同步,扮演类似Big Table系统的Master节点的 功能;Twitter的Gizzard系统也采用了层次性的路由选择和访问机制 [46] .
900? 1 000 E 875 D 660 447 C 7 234 B 服务器 C 实际数据(REAL DATA) … 899 900 901 … … … Key 900 对应的数据(data for key 900) 服务器 B … … 850~950 … 元数据(META DATA) 1 … 0 服务器 A A 0~499 500~1500 … 元数据(META DATA) 0
Fig.4 图4 分布式Hash表构成的环
[46]
Fig.5 图5 Big Table的Range分区技术 [46]

10
Journal of Software 软件学报
(4) noSQL 的一致性保证 数据的一致性包括强一致性和最终一致性以及处于两者之间不同程度的一致性保证.回顾本节开始介绍 的 CAP 理论,由于所有的 noSQL 系统都通过大量节点实现系统的扩展性,从而提供足够高的性能.一个首要的 特性必须得到保证,即系统的网络分区容忍性(partition tolerant).那么在 noSQL 系统的设计目标上,必须在数据 的一致性和系统可用性之间做出折衷.这里的一致性描述的是,当客户请求某个数据的时候,存放该数据副本的 服务器节点对数据该取什么样的值能够达成一致.比如,一个 Key 的数据被复制到 N 个机器上,有些机器(或其中 一台)对用户的请求扮演协调者的角色,这个协调者保证 N 台机器的某几台对每个请求(特别是写请求)已经收 到并且应答.当用户请求修改或者写入一个 Key 的时候,如果协调者保证至少 W 个副本(机器)已经收到数据的 更新;当用户请求读取某个 Key 的数据的时候,协调者必须在 R 个副本已经给出同样值的情况下才能给出最后 答案.那么当 R+W>N 的时候,这样的 noSQL 系统提供了强一致性保证.为了支持高度的系统扩展能力,一般对一 致性要求进行放松,有的应用场合,最终一致性约束已经足够.分布式系统的一致性必须通过一致性协议进行支 持和保证,典型的一致性保证协议是 Paxos 协议,其他协议包括两阶段提交协议/三阶段提交协议(2PC/3PC)等, 都是 Paxos 协议的变种,由于篇幅有限,本文不对 Paxos 协议进行深入的剖析. HBase 建立在 HDFS 之上,由 HDFS 提供了强一致性的保证.在 HDFS 中,一个写操作只有到达 N(等于 2 或 者 3)个备份之后才算成功,而读操作则由一个副本提供支持即可(R=1).为了避免写操作的堵塞作用,写入操作 是异步的,即当所有副本接受到数据拷贝并应答以后,系统就把更新操作的结果开放给后续的操作.Dynamo, Voldemort,Cassandra 以及 Riak 等允许用户指定 N,R,W 等参数,根据用户的需要,甚至允许 R+W<=N.这就意味着, 用户可以获得强一致性或者最终一致性.为了把落后的数据副本尽快更新到最近状态,这些系统一般都提供必 要的工具,这些工具基于版本技术和冲突解决技术实现.Dynamo 系统使用了一种向量时钟(vector clock)技术来 标定不同节点对数据的修改,在一般情况下,利用向量时钟技术可以自动解决一些数据不一致问题;当系统不能 自动解决某些版本不一致问题,它把冲突交给应用程序来解决.比如,基于 Dynamo 的购物框,当两个版本不一致 时,系统可以提示用户进行冲突解决.Voldemort 采用了类似的技术,当冲突发生时,如果系统不能自动解决,它把 某个 Key 的多个数据版本一并返回给用户,让用户选择.Cassandra 给每个 Key 保存了一个时间戳(timestamp), 当两个 数 据 副 本 不 一 致 时 ,以 最 近 的 时 间 戳 为 准 ;这 种技术无法允许 用户对数据进 行合并.Riak 则提供了 Voldemort 和 Cassandra 所提供的技术供用户进行选择.CouchDB 在后台标定冲突情况,允许用户查询冲突数据 进行人工修正,当修正完成后,系统就能够给用户提供最终的数据版本.Big Table 使用 Chubby 分布式加锁系统 来处理系统失败情况和保证数据的一致性(Hadoop 开源平台的 Zoo Keeper 子项目,是 Chubby 的开源实现). Chubby 的核心技术即是 Paxos,从工程实现的角度,Chubby 对 Paxos 的细节进行了补充,包括对避免拜占庭式 (Byzantine)容错问题的考虑,是一个强壮的分布式系统的一致性保证协议. (5) NoSQL 的事务处理 在事务的语义方面,noSQL技术为了支持强大的扩展能力放弃了ACID约束,但是一般都能保证单个Key处 理符合串行处理的约束,避免某个Key的数据因为并发的操作而受到损坏,出现不一致状况.对于大多数应用来 讲(比如电信日志处理、 网站点击流处理等),这样的事务语义保证已经足够,一般不会带来不良的后果.而对于更 加复杂的应用,比如网站购物车的更新、社交网络中好友关系的维护等,程序员需要精心设计程序,保证数据的 一致性.Mega-Store [47] 和G-Store[48] 两个原型系统则通过增强的协议,把多个Key组成一个Key群组(key group), 通过一致性保证协议提供多Key(multi-key)的事务处理语义. 3.2 面向分析型应用的noSQL技术(MapReduce) 面向分析型应用的noSQL技术主要包括MapReduce和Dryad(由于MapReduce技术的大流行,微软已经彻底 关 闭 Dryad 项 目 , 转 而 全 面 支 持 MapReduce 技 术 ,https://www.360docs.net/doc/777220479.html,/blog/microsoft/microsoft-drops-dryadputs-its-big-data-bets-on-hadoop/11226).MapReduce技术是由Google公司提出来的,旨在解决大规模非结构化数 据快速批量处理的并行技术框架 [49] .MapReduce在设计之初,致力于通过大规模廉价服务器集群实现大数据的 并行处理.MapReduce技术框架包含 3 个方面的内容:

覃雄派 等:数据管理技术的新格局
11
(1) (2) (3)
高度容错的分布式文件系统; 并行编程模型; 并行执行引擎.
MapReduce 并行编程模型,其计算过程分解为两个主要阶段,即 Map 阶段和 Reduce 阶段.Map 函数处理 Key/Value 对,产生一系列的中间 Key/Value 对;Reduce 函数合并所有具有相同 Key 值的中间键值对,计算最终结 果.用户只需编写 Map 函数和 Reduce 函数,MapReduce 框架在大规模集群上自动调度执行编写好的程序,扩展 性、容错性等问题由系统解决,用户不必关心. 自从 2004 年 Google 首次发布该技术以来,MapReduce 技术表现出了强大的穿透力(如图 6 所示):首先,工业 界意识到了 MapReduce 的价值,一批新公司围绕 MapReduce 技术创建起来,提供大数据处理、分析和可视化的 创新技术和解决方案;接着,并行计算研究领域迎来了第一波研究热潮(2006~2009);数据库研究领域紧随其后 (2009~2012),掀起了另外一波研究热潮.随着 MapReduce 技术的影响力不断扩大,传统数据库厂家,包括强烈反 对 noSQL/MapReduce 技术的一些厂家(如 Oracle,VoltDB,Microsoft 等),纷纷发布 Big Data 技术和产品战略. Oracle 公司在 2011 年上半年还对 MapReduce 技术不以为然,而在 2011 年下半年则发布了 Big Plan,全面接受和 推广 MapReduce 技术.2009 年,Dewitt 宣称永远不会在任何产品中集成 Hadoop 的代码,微软拒绝了 MapReduce 技术.到了 2010 年和 2011 年,微软开始热情拥抱 MapReduce 技术;2012 年,更是关闭了自己的 Dryad 项目(和 MapReduce 类似的大规模并行计算框架技术).反对 MapReduce 最为强烈的 Mike Stonebraker,其担任 CTO 的 VoltDB 数据库公司,在 2011 年发布 VoltDB 向 Hadoop 集成的产品策略,这从侧面说明了 Stonebraker 态度的改 变,也说明了 VoltDB 不能解决所有问题,有些问题使用 Hadoop 解决更好.围绕 MapReduce 技术,新的数据分析 生态系统正在形成,Hadoop 技术成为大数据分析的事实标准.
Google 与时俱进: IBM,EMC, TeraData,… 数据库研究: VLDB,SIGMOD, ICDE,EDBT,CIDR,… 拒绝与接受: 微软、Oracle、 VoltDB、… 数据挖掘研究: SIGKDD,ICDM, AAAI,SDM,NIPS,… 创新企业(Startups): Yahoo (Hortonworks),MapR, CloudEra,Kamasphere,Splunk, Data Stax,Datameer, Aster Data,Greenplum,… 并行计算研究: ICPP/IPDPS/HPDC/ CCGRID/HPCA/ PACT/SPAA,…
Fig.6 图6 MapReduce 技术的穿透力
MapReduce 技术为大数据分析而生,以其高度的扩展性和容错性呈现出强大的生命力,获得了工业界和学 术界的广泛关注.各大公司和各研究机构都投入力量,基于 MapReduce 框架展开一系列的研究.这些研究包括: (1) 存储优化与数据类型支持:包括赋予MapReduce结构化存储模型(行存储和列存储),以便MapReduce 能够有效处理结构化数据 [50] ;为MapReduce的数据处理提供索引支持 [51] ;对数据块的放置策略进行 改进,加快连接操作 [52] ;处理数据倾斜问题 [53] ;利用MapReduce框架处理高维时空数据 [54,55] 、多媒体 数据 [56] 等更丰富的数据类型; (2) 对MapReduce框架的扩展:包括利用MapReduce框架处理流数据 [57] 、 利用MapReduce框架实现增量和 持续的数据分析 [58,59] 以及对MapReduce进行扩展以便支持迭代式计算 [60] 、充分利用大内存实现高 性能数据分析 [61] 等; (3) (4) 连接算法以及查询算法优化,包括各种连接算法的优化 [62?66] 和查询算法优化 [67] ; 调度算法优化:包括面向多核CPU [68,69] 、GPU[70,71] 、异构系统 [72,73] 以及云平台 [74] 等不同环境的调度 策略 [75] .这些调度策略和执行算法的研究极大地提高了MapReduce的执行效率,改变了MapReduce性 能低下的不足;

12
Journal of Software 软件学报
(5)
丰富MapReduce应用接口:为了帮助开发者和用户方便地使用MapReduce平台进行算法编写,研究人 员还致力于应用编程接口——包括SQL接口和统计分析、数据挖掘、机器学习编程接口的研发,比 面向分析型应用的Hive[77] ,Pig[78] ,System ML[79] ,Mahout [80] 等, System 如面向操作型应用的HBase [76] 、 ML是编写机器学习程序的声明性语言,提高了应用程序编写的效率;
(6)
MapReduce计算框架的安全 [81] 与节能 [82] 问题研究.
对 MapReduce 研究现状和进展的较为全面的介绍请参考文献[83,84],这里仅介绍其中的几项工作. 在存储层面,研究人员借鉴关系数据库发展过程中积累的行存储、列存储、索引技术等经验,为MapReduce 有 效 处 理 各 类 数 据 ( 包 括 结 构 化 数 据 ) 展 开 了 研 究 . 在 这 里 , 介 绍 RCFile [85] ,Wisconsin Columnar Storage[86] , Hadoop++ [51] 等几项有特色的技术.RC File技术是由Ohio州立大学、中国科学院、Facebook公司合作研发的面 向Hadoop平台的行列存储模型.RCFile基于HDFS的块结构,维持Hadoop系统的扩展性和容错性不变,但是赋予 HDFS的数据块更加精细的结构.这个工作借鉴了RDBMS的PAX存储技术,首先对大表进行横向划分,以便放入 HDFS约定大小的数据块;然后在数据块里实现列存储,由于使用列存储,非常有利于对数据进行压缩,节省存储 空间.该技术已经在Facebook得到了实际应用.Wisconsin Madison大学提出了基于MapReduce平台的纯列存储 模型,获得了比RCFile更高的性能.Hadoop++则通过嵌入索引寻址机制加快数据访问,从而提高数据处理的性 能.在连接算法方面,著名数据库技术专家Ullman研究了面向MapReduce平台的两路、多路、模糊连接算法
[62?64]
,Spyros Blanas等人研究了面向日志处理的不同连接算法 [65] ,Alper Okcan则针对Sita连接 [66] 提出了有效的
解决方案.来自Massachusetts Amherst大学的Diao Yanlei团队则基于MapReduce平台,利用Hash技术实现了流数 据的实时(real time)处理 [87] . 经过研究人员的努力,大量的数据处理和分析算法被移植到MapReduce平台上,包括简单汇总和报表、 OLAP处理和多维分析 [88] 、数据挖掘 [89] 、人工智能和机器学习 [90] 、信息检索 [91] 、文本分析和情感计算 [92] 、科 学数据处理(Bioinformatics/Physics)[93] 、社会计算和图分析 [94] 等,并且,算法的性能得到不断的优化. MapReduce 的应用领域不断扩展,大型银行(比如 JP Morgan Chase)、电信公司、科学研究机构(物理研究、 生物研究等)都对 MapReduce 技术表现出浓厚的兴趣.
MapReduce 技术是一个巨大的倒退,还是一个重要的创新? 2008 年,数据库界著名的专家 Stonebraker(来自 MIT)和 Dewitt(来自微软),发布了“MapReduce: major step backwards” 博文,对 MapReduce 进行了批评,指出,MapReduce 技术没有模式、没有索引、依靠蛮力对数据进行处理,缺点一大堆,是一 个倒退,毫无创新可言,是数据库界 25 年前已经淘汰的技术,注定没有前途.两位专家的观点掀起了激烈的争论. 上个世纪 70 年代初,关系数据库技术第一次提出来的时候,受到层次、网状数据库的拥护者(包括知名专家)的强烈批 评.那次争论的结果是,关系数据库技术迎来了 40 年的大发展,确立了事务处理领域的霸主地位.近几年来,MapReduce 技术 以其强大的生命力,穿透了工业界和学术界,成为大数据分析的事实标准,是“21 世纪的瑞士军刀”(Media Guardian 媒体集团 2011 年授予 Hadoop 团队“年度创新大奖”的专家评语). Stonebraker和Dewitt是两位各自做出重大贡献的专家,其中,Stonebraker是众多数据库技术、产品和公司的发明者和创 立者,包括PostgreSQL,Vertica,VoltDB,StreamBase,ScienceDB等.这些技术和产品正好验证了Stonebraker早在 2005 就提出的 “One Size cannot Fit All”的论断.比如,面向科学数据处理的ScienceDB,采用多维数组(非关系数据模型)进行科学数据的管 理,提供了超越SQL的复杂数据分析功能,包括协方差分析、矩阵奇异值分解等.Jim Gray是另一位做出过重大贡献的数据 库技术专家,早在 2005,在其“Scientific Data Management in the Coming Decade” [95] 论文中,预见到接下来的 10 年间, MapReduce技术将获得广泛应用.
鉴于 SQL 语言的简单性及其已经被厂家和用户广为接受,面向操作型应用和面向分析型应用的 noSQL 数 据库,一般提供 SQL 或者类似 SQL 的查询语言接口,方便用户进行数据的操作和简单汇总,比如 Hbase,Hive 等.
4
数据管理技术的新格局
图 7 从两个维度入手,即应用维度(操作型应用/分析型应用)和数据模型维度(关系模型/各种 noSQL 数据模
型),展现了当前数据管理技术的竞争格局.

覃雄派 等:数据管理技术的新格局
13
非关系数据模型(noSQL) MapReduce (dryad) CloudEra Splunk Karmashpere MapR … Hadapt
关系数据模型(relational) PDBMS TeraData/EMC Columnar RDBMS InforBright/LucidDB InfiniDB In Mem RDBMS MonetDB for OLAP Vertica …
分析型应用 (analytics)
操作型应用 (operational)
Key value Columnar Document Graph
Cassandra HBase, Big table MongoDB Infinite graph Neo4J …
Row store RDBMS IBM/Oracle/SQLServer Postgresql, MySQL PDBMS Oracle RAC In Mem RDBMS AltiBase for OLTP ExtremeDB Timesten New SQL VoltDB Clustrix/NuoDB …
Fig.7 图7 4.1 新的竞争格局 4.1.1 面向操作型应用的关系数据库技术 首先,传统的基于行存储的关系数据库系统,比如IBM的DB2、Oracle、微软的SQL Server等,提供了高度的 一致性、高度的精确度、系统的可恢复性等关键的特性,仍然是事务处理系统的核心引擎,无可替代;其次,面向 实时计算的内存数据库系统,比如Altibase,Timesten,Hana等,通过把数据全部存储在内存里,并且针对内存存储 进行了并发控制、查询处理和恢复技术的优化,获得了极高的性能,在电信、证券交易、军工、网络管理等特 定领域获得了广泛应用,提供比磁盘数据库快一个数量级(10 倍、 倍、 20 甚至 30 倍)的性能.此外,以VoltDB为代 表的新的面向OLTP应用的数据库系统(new SQL)采用了若干颠覆性的实现手段,包括串行执行事务(避免加锁 开销)、 全内存日志处理等(加速持久化过程) [6] ,获得了超过磁盘数据库 50~60 倍的事务处理性能.其他宣称保持 了 ACID 特 性 、 同 时 具 有 noSQL 扩 展 性 的 newSQL 技 术 还 有 Clustrix(https://www.360docs.net/doc/777220479.html,/) 和 NuoDB (https://www.360docs.net/doc/777220479.html,/)等. 4.1.2 面向分析型应用的关系数据库技术 TeraData 是数据仓库领域的领头羊,TeraData 数据库采用了 Shared Nothing 的体系结构,支持较高的扩展性 (请参考第 4.2 节描述的 TeraData 对 Aster Data 的收购和战略的变化).面向分析型应用,列存储数据库的研究形 成了一个重要的潮流.列存储数据库以其高效的压缩、 更高的 I/O 效率等特点,在分析型应用领域获得了比行存 储数据库高得多的性能.MonetDB 是一个典型的列存储数据库系统,此外还有 InforBright,InfiniDB,LucidDB, Vertica,SybaseIQ 等.MonetDB 和 Vertica 是基于列存储技术的内存数据库系统,主要面向分析型应用. 4.1.3 面向操作型应用的 noSQL 技术 noSQL 数据库系统相对于关系数据库系统具有两个明显的优势:一个是数据模型灵活、 支持多样的数据类 型(包括图数据),使用关系数据库系统对图数据进行建模、存储和分析,其性能、扩展性等很难和专门的图数据 库抗衡(如图 8 所示,MySQL 和 Neo4J 的性能比较(无标度网络是度的分布符合幂律(power law)的网络), https://www.360docs.net/doc/777220479.html,/2011/02/18/mysql-vs-neo4j-on-a-large-scale-graph-traversal/,https://www.360docs.net/doc/777220479.html,/ ClaudioMartella/presentation-7398682);另外一个优势是高度的扩展性,从来没有一个关系数据库系统部署到超 过 1 000 个节点的集群上,而 noSQL 技术通过灵活的数据模型、新的一致性约束机制,在大规模集群上获得了 数据管理技术的新格局

14
Journal of Software 软件学报
极高的性能.比如,HBase 一天的吞吐量超过 200 亿个写操作(参考第 3.1.2 节),这个结果是在完全保证持久性的 情况下获得的,也就是数据已经到达硬盘,真正实现了大数据的有效处理.基于关系模型的内存数据库系统也能 获得极高的性能,但是在持久性完全保证的情况下,这个性能(写入性能)是要打折扣的;同时,其扩展性目前无法 和 noSQL 匹敌,尚无法应付大数据的实时处理挑战.
一个基准评测 A Benchmark(遍历操作 traversal) 深度(depth) 关系数据库(RDBMS) - 1 百万顶点(million vertices) 1 100ms - 4 百万条边(million edges) 2 1 000ms 3 10 000ms - 无标度网络(scale free topology) 4 100 000ms - 使用 Hash 索引和 BTree 索引 5 N/A - MySQL vs. Neo4J 图数据库(graph) 30ms 500ms 3 000ms 50 000ms 100 000ms
Fig.8 图8 对图数据进行处理的性能比较(MySQL vs. Neo4J)
操作型应用是一个比事务处理具有更广泛外延的概念,某些操作型应用并不需要 ACID 这样高强度的一致 性约束,但是需要处理的数据量极大,性能的要求也很高,必须依赖于大规模集群的并行处理能力来实现数据处 理,弱一致性、或者最终一致性是足够的.在这些应用场合,操作型 noSQL 技术大有用武之地.Facebook 从使用 RDBMS(MySQL)到弃用 RDBMS 转向 HBase,最后持续改进 HBase,作为其操作型应用数据处理架构的基础技 术,具有标本意义. 4.1.4 面向分析型应用的 noSQL 技术 MapReduce技 术以 其创 新 的 设计 理念 、 高 度的 扩展 性 和 容错 性 ,获 得 了学 术界 和 工 业界 的青 睐 ,围绕 MapReduce的数据分析生态系统正在形成.近 5 年来,一批新公司(startup)涌现出来.比如提供Hadoop开源版本、 相关培训和支持服务的Cloudera公司、提供具有更高性能的分布式文件系统的MapR公司、提供围绕Hadoop 的完整工具套件的Karmashpere公司、致力于Postgres和Hadoop的集成、脱胎于HadoopDB大学项目的Hadapt 公司、从Yahooo剥离出来、致力于Hadoop技术的研发和商用的Hortonworks公司等.与此同时,传统数据库厂商 和数据分析套件厂商纷纷发布基于Hadoop技术的产品发展战略,这些公司包括Microsoft,Oracle,SAS,IBM等.微 软公司已经关闭Dryad系统,全面投入MapReduce的研发.Oracle在长期轻视noSQL和MapReduce技术以后,于 2011 年下半年发布Big Plan战略计划,全面进军大数据处理领域(当然少不了Hadoop技术).IBM则早已捷足先 登,IBM的“沃森(Watson)”计算机,其软件系统即是基于Hadoop技术开发的,与此同时,IBM发布了Big Insights计 划,基于Hadoop,Netezza和SPSS(统计分析、数据挖掘软件)等技术和产品构建大数据分析处理的技术框架.虽然 有些公司的集成方案是肤浅的,只提供数据交换连接器 [96] ,但是大家几乎是不约而同地形成一个共识,那就是深 度的集成方案是技术发展的方向.比如,TeraData公司在SIGMOD 2010 会议上展示了Hadoop和TeraData的连接 器之后,毅然收购Aster Data公司,获得其MapReduce技术研发经验和复杂分析软件包,进而在新的产品计划中准 备深度整合Aster Data(SQL/MapReduce)和TeraData,构造一个结构化数据和非结构化数据的统一处理平台. 4.2 各类技术的互相借鉴和发展 需要注意的是,上文对各类技术的划分是一种观察问题的角度.在具体的研究和开发实践中,理论界的研究 人员和工业界的工程师不仅继续发展已有的技术和平台,同时不断地借鉴来自其他研究和技术的创新思想改 进自身,或提出兼具若干技术优点的混合技术架构. 2005 年以来,在数据管理技术领域最值得注意的两家新公司(startup)是 Aster Data 和 Greenplum,它们的技 术手段相似,都是利用 MapReduce 技术对 PostgreSQL 数据库进行改造,使之可以运行在大规模集群上(MPP/ Shared nothing),实现数据的高效处理,两者形成直接竞争关系.这两家公司的三板斧分别是 PostgreSQL 数据库、 Shared Nothing 架构和 MapReduce 技术.Aster Data 和 Greenplum 数据库的核心引擎不仅能够执行 SQL 查询, 同时也作为 MapReduce Job 的执行引擎,在同一架构下实现了 SQL/MapReduce 的统一处理.本质上,这两家公司

覃雄派 等:数据管理技术的新格局
15
的技术都是在 RDBMS 的框架下实现了 MapReduce 技术.目前,Greenplum 公司已经被 EMC 收购,这一收购使 EMC 公司即刻获得了数据管理和分析的能力和产品.一夜之间,数据库市场上增加了一个重量级的竞争者(big player),给 Oracle 和 TeraData 形成巨大的压力.Aster Data 则被数据仓库领域的领头羊 TeraData 收购.我们可以 思考,TeraData 收购 Aster Data,难道是想获得它的 PostgreSQL 数据库吗?还是想要获得它的 Shared Nothing 架 构?其实,这两项技术 TeraData 是不缺的,TeraData 看中的是 Aster Data 的 MapReduce 技术经验和它的分析软件 包(基于 MapReduce 技术改写的并行数据分析软件包).目前,TeraData 正在着力于这样的任务,就是如何在 TeraData 中整合 MapReduce 技术,这是 RDBMS 对 MapReduce 技术的学习. MapReduce 领域对 RDBMS 技术的借鉴是全方位的,包括存储、索引、查询优化、连接算法、应用接口、 算法实现等各个方面.在这里再次提及的是 RCFile 系统,该技术在 HDFS 的存储框架下保留了 MapReduce 的扩 展性和容错性(扩展性是大数据处理系统的首要要求,高度扩展的大规模集群必须关注容错保证),赋予 HDFS 数 据块类似 PAX 的存储结构,通过借鉴 RDBMS 技术提高了 Hadoop 系统的分析处理性能,这是从 MapReduce 阵 营借鉴 RDBMS 的技术和思想.该工作虽然不是原始创新,却是在 Hadoop 平台上实现列存储的第一个工作,被广 为引用.更重要的是,RCFile 在 Facebook 公司获得了应用,解决了实际问题,是工业界和学术界协同创新的范例. HadoopDB [97,98] 是富有特色的一项工作,HadoopDB试图把MapReduce的优点和RDBMS的优点结合起来.该 系统具有清晰的两层结构,在上层利用Hadoop平台支持高度的系统扩展性能,在下层利用RDBMS (PostgreSQL) 实现数据的高性能处理.此外,HadoopDB利用HDFS实现非结构化数据的处理,打造结构化数据和非结构化数据 的统一处理平台.目前,HadoopDB已经进行商业化(hadapt),首轮融资获得近 1000 万美元投资,说明风险投资看 好它的商业前途.仔细分析,HadoopDB存在若干局限性,把数据保存到PostgreSQL表中,丧失了Hadoop的容错特 性,要 获 得 足 够 的 容 错 性 能 ,必 须 对 Hadoop系 统 进 行 必 要 的 修 改;数 据 按 照 某 个 属 性 列 进 行 划 分 后 保 存 到 PostgreSQL数据库,当连接查询涉及其他数据列的时候,HadoopDB的性能将受到严重影响.目前, HadoopDB系 统也在不断改进和完善之中 [99] . noSQL技术的高度扩展性能,给人们留下了深刻印象.VoltDB团队当然没有无动于衷,他们的主要工作之一 是根据数据模型对数据进行适当分区 [100] ,即利用数据库表的主外键关系对数据进行分区,把数据分布到多个 节点,尽量在一个节点上满足查询的要求,减少节点间的数据交换,并且避免数据倾斜,从而提高系统的扩展性. VoltDB不仅保持传统关系数据库的优点,包括易用的SQL接口、严格的关系模型、完全的ACID保证等,同时通 过增强的扩展能力,应对大数据处理的挑战.Stonebraker统称VoltDB所使用的若干创新技术(包括数据分区方 法 、 全 内 存 日 志 处 理 、 新 的 并 发 控 制 协 议 等 ) 为 newSQL, 并 预 测 newSQL 将 在 2012 年 流 行 开 来 (https://www.360docs.net/doc/777220479.html,/blog/2011/12/29/newsql-will-prevail-in-2012-says-mits-michael-stonebraker/).他的预测是 否准确 有待 验 证,但 是 我们 看到,noSQL技 术突 飞 猛进的发展促进了RDBMS的自我革新,即SQL→noSQL→ newSQL,以便应对大数据处理的新挑战. 各种技术将继续互相借鉴,持续发展.面向事务处理的RDBMS技术和面向操作型应用的noSQL技术将各自 获得新的发展.在分析型应用方面,在围绕RDBMS的生态系统旁边生长出了围绕Hadoop技术的新生态系统,这 两个生态系统的目标是一致的,即数据分析.关系数据库技术经过几十年的积淀和发展,擅长结构化数据的处 理,性能高,但遇到扩展能力的困难;而MapReduce技术则在系统的扩展能力、数据的多样性、数据装载速度、 分析和数据紧密结合/靠近数据进行分析(in situ data analytics)、分析的复杂度等方面见长.以作者之见,不久的 将来,两个技术和生态系统最终走向融合,一个基于HDFS/Hadoop技术的大数据统一分析平台(unified big data analytics platform)和生态圈将最终形成.这个框架的核心技术是HDFS/Hadoop,包括关系数据模型和查询处理 技术被借鉴过来,溶解在这个框架里.该框架不仅提供关系数据的存储、处理和分析,还能够采集、处理和分析 类型多样的数据,并且在各个类型数据之间建立必要联系(bridging unstructured and structured data),对其进行联 合分析(together analysis),获得更全面的数据分析结果.不久的将来,来自TeraData(aster data),EMC(greenplum), Hadapt(HadoopDB)等公司的大数据分析技术方案,经过不断演化,将生长得越来越彼此相似(参考第 4.3.2 节).值 得注意的是,有些研究试图在RDBMS领域把OLTP和OLAP结合起来,通过一个统一的存储模型和查询处理框架

16
Journal of Software 软件学报
实现事务处理和多维分析 [101,102] .目前,这种尝试尚未成为主流.
前关系时代 关系时代 后关系时代 面向事务处理的技术、 产品和生态系统 面向分析的技术、 产品和生态系统 面向操作型应用的 noSQL 技术与生态系统 Key Value, Columnar, Graph, Document, … 面向分析型应用的 noSQL 技术与生态系统 MapReduce (Hadoop), … 技术融合与持续创新 事务处理技术的 新发展
关系数据库(OLTP) 层次数据库 网状数据库 关系数据库 (ROLAP,数据挖掘) 高维数据库 (MOLAP,数据挖掘) 对象数据库 XML 数据库 多媒体数据库 GIS 数据库 …
融合
ETL 新一代分析技术、 产品以及生态系统 ETL 操作型 noSQL 技术的 新发展
Fig.9 图9 4.3 新的研究机会 面向数据管理的新挑战,研究和开发工作展现出空前繁荣的景象.研究的主题始终是更高的性能、更多样 的数据和更复杂的分析.下文仅列举两个我们认为重要而且有意思的研究. 4.3.1 面向云平台的数据管理技术 [103] 云平台整合了计算、存储、网络等硬件资源,通过虚拟化技术供用户共享,使得用户以更加经济的方式使 用这些资源.云计算的主要特点是虚拟化和动态伸缩性.利用云平台实现面向操作型应用和分析型应用的数据 管理仍然面临众多的挑战,比如如何在具有动态伸缩性(elastic)的云平台上支持事务处理(transaction processing 数据的放置和容错 [105] 、 支持云平台部署的新的索引结构、 on the cloud)、 支持云平台部署的新的存储模型 [104] 、 面向云平台的查询处理技术、如何把数据库当作一个服务部署到云平台上等,有待继续研究和应用验证.面向 云平台的数据管理还要解决节能 [106] 、隐私保护和安全等关键问题才能使用户对其产生信任,真正实现大规模 的产业化. 4.3.2 大数据统一处理平台 正如上文已经分析的,围绕 RDBMS 已经产生了一个分析生态系统,而围绕 Hadoop 技术正在产生另外一个 分析生态系统.这两个系统的目的是重叠的,一个自然的想法就是,两个技术和生态系统是否将融合到一起?本 文作者相信,经过理论界和工业界的努力,一个统一的大数据处理框架以及生态系统将形成.仍然有些问题期待 更深入的研究,比如:如何把类型多样的数据整合到一个存储层上(数据组织方式)?如何建立更加智能的存储层 (存储模型、数据压缩、数据去重、索引技术、查询的路由选择、在存储层执行一定的计算等)?如何改进查询 的调度算法、执行算法使之适应多核、GPU、异构环境、超级计算机、廉价集群等硬件环境,并能够运行在云 平台上?如何超越 SQL,提供扩展的编程和应用接口,为各类用户(包括普通用户、高级用户、统计学家、数学家 等)提供灵活多样的数据分析环境和工具?如何对大数据的处理结果进行可视化?如何引导用户对大数据进行 探索式的查询(Exploratory Query),以便建立分析模型,然后进行深入分析等. 下一代 MapReduce(MapReduce 2.0/YARN)技术对系统的扩展性、性能、可用性等各个方面做了大幅度的 调整和增强.通过把 MapReduce 计算模型从资源管理架构中剥离出来,新的框架支持更多的应用类型(通过 Application Manager 实现),包括流数据处理(stream processing)、图数据处理(graph processing)、BSP 计算模型 (bulk synchronous processing)、MPI 计算模型(message passing interface)等(https://www.360docs.net/doc/777220479.html,/news/ 各类技术的互相借鉴、融合和持续发展

覃雄派 等:数据管理技术的新格局
17
home/20120119005825/en/Hortonworks-Deliver-Next-Generation-Apache-Hadoop).其支持的节点规模从目前的 4 000 左右增加到 6000~10000,并发的任务数从目前的 40 000 增加到 100 000.这样的框架扩展和改进,预示大数 据统一处理平台初见端倪.利用内存处理技术,使得MapReduce可以支持数据的交互式处理 [107] . 4.4 我们的研究 4.4.1 多核GPU上的OLAP[108] 在 OLAP 应用中,立方体(cube)的计算是最耗时的操作,已经被研究人员深入地研究.我们的工作之一是通 过设计并行的算法,利用 GPU 强大的多核处理能力加快 Cube 的计算过程.我们首先提出一个集成自底向上策 略和宽度优先的分区顺序的、Cache 感知的算法 CC-BUC(cache conscious bottom up computation),分别处理每 个维度的信息.在每个维度信息的处理过程中,宽度优先的扫描操作减少了内存 I/O,提高了 Cache 的局部性 (locality),降低了 Cache 缺失率.基于 CC-BUC 算法,我们提出了完整的 Cube 计算方法 MC-Cubing.不仅各个分 区可以并行处理,每个分区内部也可以进行并行处理,适应多核架构的硬件处理能力(包括多核 CPU 和 GPU),具 有 很 高 的 并 行 性 . 同 时 , 我 们 调 整 微 观 数 据 结 构 , 充 分 利 用 SIMD 指 令 ( 单 指 令 多 数 据 ) 实 现 数 据 的 处 理 . MC-Cubing 已经在多核 CPU 和 GPU 上实现,实验结果显示,在实际数据集上,我们的算法比普通的 BUC 算法获 得了 6 倍以上的性能提升. 4.4.2 社交网络与Graph分析 [109,110] 社交网络的发展引起了人们的研究兴趣,对图进行分析是重要的基础研究.我们选择在一个大图中衡量节 点之间的相似度(SimRank)作为我们的一个研究支点.已有的 SimRank 计算方法有两个局限:1) 计算代价太大; 2) 只能应用到静态图上.我们的研究是:利用 GPU 内在的并行性和高带宽设计新的并行算法,加速大图(large graph)上的 SimRank 计算;其次,SimRank 计算本质上是一个一阶 Markov 链问题,基于这样的观察,我们专门设 计了并行算法,把 Markov 链的耦合度打开,通过迭代式聚集实现节点相似度打分计算.这个算法可以应用到动 态图上,不仅能够处理连接更新,而且能够处理节点更新.在人工数据集和实际数据集上进行的一系列实验,验 证了该算法的有效性和效率. 4.4.3 高度可扩展的OLAP[111] 面向多维分析的数据仓库一般按照星型模型进行数据建模,在星型模型中,事实表的数据量一般比较大,而 维表的数据量一般较小.为了解决 OLAP 应用的数据仓库数据膨胀问题,我们考虑使用大规模集群进行处理.如 果把事实表和维表都分布到集群上,则执行查询时连接操作将引发大量的网络传输;而如果把维表全复制到各 个节点,对于大规模集群来讲,将带来庞大的空间开销.我们的策略是:把各个维表的维度信息进行层次编码,代 替事实表的外键;然后,把事实表横向分割,分布到大规模集群上,以便并行处理.在各个节点上,无需参考维表信 息进行查询处理(即无需连接操作),各个节点的局部聚集结果由主节点进行合并,生成最终的结果集.这个特性 使得该技术具有极高的扩展能力.主节点上的最终结果需要和维表进行连接,以便反向查找相关信息.由于最终 结果集一般较小,连接操作的性能得到了保证.我们已经基于 PostgreSQL 进行了技术原型 LinearDB 的实现,正 在 Hadoop 框架下移植层次编码方法及其查询处理方法,充分利用 Hadoop 的节点管理能力和扩展性,提高数据 仓库星型查询的性能.初步实验结果显示(实验基于 14 台普通 PC,其中 1 台作为 name node),新的原型系统 Dumbo 在 500GB SSB(star schema benchmark)数据集上取得了比 HadoopDB 接近一个数量级到超过一个数量 级(不同查询的加速效果不一样)的性能提升.
5


大数据时代正在向我们走来,数据管理技术研究进入了新的阶段.本文追随技术进步的历史脉络,介绍了数 据管理技术的发展进程,展开当今数据管理技术的新画卷.本文试图标定变革时期 [112] 几个值得研究的重要问 题.最后,通过本文和读者分享我们的研究及其背后的思想. 致谢 感谢《软件学报》评审专家细心、专业的评审,使得本文的表述更加清楚、准确和客观.感谢 EMC 中国

18
Journal of Software 软件学报
研究院周宝曜博士、曹逾博士、人人网首席科学家陈继东博士对本文提出的建议,使得本文内容更加全面、结 构更加合理.感谢中国人民大学新闻学院韦英平博士对文章的润色,使得文章更加容易阅读.本文部分受到 EMC 中国研究院“EMC 全球 CTO 办公室(EMC Global CTO Office)”资金资助. References:
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] Abadi DJ, Boncz PA, Harizopoulos S. Column-Oriented database systems. VLDB 2009 Tutorial. Datta A, Thomas H. Querying compressed data in data warehouses. Journal of Information Technology and Management, 2002,3(4): 353?386. Bhuiyan MM, Hoque ASML. High performance SQL queries on compressed relational database. Journal of Computers, 2009,3(12): 1263?1274. O’Connell SJ, Winterbottom N. Performing joins without decompression in a compressed database system. SIGMOD Record, 2003, 32(1):6?11. Olofson C. Feature: The database revolution. 2012. https://www.360docs.net/doc/777220479.html,/developerworks/data/library/dmmag/DMMag_2011_ Issue1/FeatureHistory/ Kallman R, Kimura H, Natkins J, Pavlo A, Rasin A, Zdonik S, Jones EPC, Madden S, Stonebraker M, Zhang Y, Hugg J, Abadi DJ. H-Store: A high-performance, distributed main memory transaction processing system. PVLDB, 2008,1(2):1496?1499. Lu HJ, Ng YY, Tian ZP. T-Tree or B-tree: Main memory database index structure revisited. In: Orlowska ME, ed. Proc. of the Australasian Database Conf. 2000. Canberra: IEEE Computer Society, 2000. 65?72. Shatdal A, Kant C, Naughton JF. Cache conscious algorithms for relational query processing. In: Bocca JB, Jarke M, Zaniolo C, eds. Proc. of the VLDB’94. Chile: Morgan Kaufmann, 1994. 510?521. Luan H, Du XY, Wang S. Cache-Conscious data cube computation on a modern processor. JCST, 2009,24(4):708?722. Rao J, Ross KA. Cache conscious indexing for decision-support in main memory. In: Atkinson MP, Orlowska ME, Valduriez P, Zdonik SB, Brodie ML, eds. Proc. of the VLDB’99. Edinburgh: Morgan Kaufmann Publishers, 1999. 78?89. He BS, Luo Q. Cache-Oblivious query processing. In: Hellerstein J, Stonebraker M, Weikum G, eds. Proc. of the CIDR 2007. Asilomar: Online Proceedings, 2007. 44?55. He BS, Luo Q. Cache-Oblivious databases: Limitations and opportunities. ACM Trans. on Database Systems, 2008,33(2):1?42. Bender MA, Farach-Colton M, Fineman JT, Fogel YR, Kuszmaul BC, Nelson J. Cache-Oblivious streaming B-trees. In: auf der Heide FM, Shavit N, eds. Proc. of the SPAA 2007. Munich: ACM Press, 2007. 81?92. Pandis I, Tozün P, Johnson R, Ailamaki A. PLP: Page latch-free shared-everything OLTP. PVLDB, 2011,4(10):610?621. Lee RB, Ding XN, Chen F, Lu QD, Zhang XD. MCC-DB: Minimizing cache conflicts in multi-core processors for databases. PVLDB, 2009,2(1):373?384. Bakkum P, Skadron K. Accelerating SQL database operations on a GPU with CUDA. In: Kaeli DR, Leeser M, eds. Proc. of the GPGPU 2010. Pittsburgh: ACM Int’l Conf. Proceeding Series, 2010. 94?103. Lin CF, Yuan SM. The design and evaluation of GPU based memory database. In: Watada J, Chung PC, Ho KC, eds. Proc. of the Int’l Conf. on Genetic and Evolutionary Computing 2011. Kinmen/Xiamen: IEEE Computer Society, 2011. 224?231. Govindaraju NK, Gray J, Kumar R, Manocha D. GPUTeraSort: High performance graphics coprocessor sorting for large database management. In: Chaudhuri S, Hristidis V, Polyzotis N, eds. Proc. of the SIGMOD 2006. Chicago: ACM Press, 2006. 325?336. He BS, Yu JX. HighThroughput transaction executions on graphics processors. PVLDB, 2011,4(5):314?325. Volk PB, Habich D, Lehner W. GPU based speculative query processing for database operations. In: Bordawekar R, Lang CA, eds. Proc. of the VLDB Workshop on Accelerating Data Management Systems Using Modern Processor and Storage Architectures 2010. Singapore: VLDB Endowment, 2010. Article No.7. [21] [22] [23] [24] [25] Lee SW, Moon B. Design of flash-based DBMS: An in-page logging approach. In: Chan CY, Ooi BC, Zhou AY, eds. Proc. of the SIGMOD 2007. Beijing: ACM Press, 2007. 55?66. Koltsidas I, Viglas SD. Flashing up the storage layer. PVLDB, 2008,1(1):514?525. Bonnet P, Bouganim L, Koltsidas I, Viglas SD. System co-design and data management for flash devices. VLDB 2011 Tutorial. Qin XP, Xiao YQ, Cao W, Wang S. A parallel recovery scheme for update intensive main memory database systems. In: Rountree N, ed. Proc. of the PDCAT 2008. Dunedin: IEEE Computer Society, 2008. 509?516. Lee J, Kim K, Cha SK. Differential logging: A commutative and associative logging scheme for highly parallel main memory database. In: Georgakopoulos D, Buchmann A, eds. Proc. of the ICDE 2001. Heidelberg: IEEE Computer Society, 2001. 173?182.

覃雄派 等:数据管理技术的新格局
19
[26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36]
Stonebraker. How to do complex analytics. 2012. https://www.360docs.net/doc/777220479.html,/MassTLC/mike1 Ni MX, Luo WM. Technology revolution in the age of data exploding. CCF Communications, 2011,7(7):12?20 (in Chinese with English abstract). Brewer EA. Towards robust distributed systems. PODC 2000 Keynote Speech. Lynch N, Gilbert S. Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant Web services. ACM SIGACT News, 2002,33(2):51?59. FAL Labs. Tokyo cabinet: A modern implementation of DBM. 2012. https://www.360docs.net/doc/777220479.html,/tokyocabinet/ Citrusbyte. Redis database. 2012. http://redis.io/ Voldemort Team. Voldemort database. 2012. https://www.360docs.net/doc/777220479.html,/ Oracle. Oracle Berkeley DB 11g. 2012. https://www.360docs.net/doc/777220479.html,/technetwork/products/berkeleydb/overview/index.html De Candia G, Hastorun D, Jampani M, Kakulapati G, Lakshman A, Pilchin A, Sivasubramanian S, Vosshall P, Vogels W. Dynamo: Amazon’s highly available key-value store. ACM SIGOPS Operating Systems Review, 2007,41(6):205?220. Apache Foundation. Apache Cassandra. 2012. https://www.360docs.net/doc/777220479.html,/ Chang F, Dean J, Ghemawat S, Hsieh WC, Wallach DA, Burrows M, Chandra T, Fikes A, Gruber RE. Bigtable: A distributed storage system for structured data. In: Bershad BN, Mogul JC, eds. Proc. of the OSDI 2006. Seattle: USENIX Association, 2006. 15?22.
[37] [38]
Apache Foundation. Apache HBase. 2012. https://www.360docs.net/doc/777220479.html,/ Borthakur D, Gray J, Sarma JS, Muthukkaruppan K, Spiegelberg N, Kuang HR, Ranganathan K, Molkov D, Menon A, Rash S, Schmidt R, Aiyer A. Apache hadoop goes realtime at Facebook. In: Sellis TK, Miller RJ, Kementsietsidis A, Velegrakis Y, eds. Proc. of the SIGMOD 2011. Athens: ACM Press, 2011. 1071?1080.
[39] [40] [41] [42] [43] [44] [45] [46] [47]
Apache Foundation. CouchDB. 2012. https://www.360docs.net/doc/777220479.html,/ MongoDB Team. MongDB. 2012. https://www.360docs.net/doc/777220479.html,/ Riak Team. Riak database. 2012. https://www.360docs.net/doc/777220479.html,/products/riak-overview/ Neo4j Team. Neo4j database. 2012. https://www.360docs.net/doc/777220479.html,/ NetMesh. InforGrid Web graph database. 2012. https://www.360docs.net/doc/777220479.html,/trac/ Objectivity. InfiniteGraph database. 2012. https://www.360docs.net/doc/777220479.html,/ HyperGraphDB Team. HyperGraphDB. 2012. https://www.360docs.net/doc/777220479.html,/hgdb.jsp Marcus A. The NoSQL EcoSystem. 2012. https://www.360docs.net/doc/777220479.html,/en/nosql.html Baker J, Bond C, Corbett JC, Furman JJ, Khorlin A, Larson J, Leon JM, Li YW, Lloyd A, Yushprakh V. Megastore: Providing scalable, highly available storage for interactive services. In: Ailamaki A, Franklin M, Hellerstein J, eds. Proc. of the CIDR 2011. Asilomar: Online Proceedings, 2011. 223?234.
[48] [49] [50] [51] [52] [53] [54] [55] [56]
Das S, Agrawal D, Abbadi AE. G-Store: A scalable data store for transactional multi key access in the cloud. In: Hellerstein JM, Chaudhuri S, Rosenblum M, eds. Proc. of the SOCC 2010. Indianapolis: ACM Press, 2010. 163?174. Dean J, Ghemawat S. MapReduce: Simplified data processing on large clusters. In: Brewer E, Chen P, eds. Proc. of the OSDI 2004. San Francisco: USENIX Association, 2004. 137?150. Kaldewey T, Shekita EJ, Tata S. Clydesdale: Structured data processing on MapReduce. In: Rundensteiner EA, Markl V, Manolescu I, Amer-Yahia S, Naumann F, Ari I, eds. Proc. of the EDBT 2012. Berlin: ACM Press, 2012. 15?25. Jindal A, Quiane-Ruiz JA, Dittrich J. Trojan data layouts: Right shoes for a running elephant. In: Chase JS, Abbadi AE, Babu S, Romano P, eds. Proc. of the SOCC. Cascais: ACM Press, 2011. Article No. 21. Eltabakh MY, Tian YY, Ozcan F, Gemulla R, Krettek A, McPherson J. CoHadoop: Flexible data placement and its exploitation in Hadoop. PVLDB, 2011,4(9):575?585. Ananthanarayanan G, Agarwal S, Kandula S, Greenberg A, Stoica I, Harlan D, Harris E. Scarlett: Coping with skewed content popularity in mapreduce clusters. In: Kirsch CM, Heiser G, eds. Proc. of the EuroSys 2011. Salzburg: ACM Press, 2011. 287?300. Ma Q, Yang B, Qian WN, Zhou AY. Query processing of massive trajectory data based on mapreduce. In: Meng XF, Wang HX, Chen Y, eds. Proc. of the CloudDB 2009. New York: ACM Press, 2009. 9?16. Chandramouli B, Goldstein J, Duan SY. Temporal analytics on big data for Web advertising. In: Kementsietsidis A, Antonio M, Salles V, eds. Proc. of the ICDE 2012. Washington: IEEE Computer Society, 2012. 90?101. White B, Yeh T, Lin J, Davis L. Web-Scale computer vision using MapReduce for multimedia data mining. In: Hua XS, Ngo CW, eds. Proc. of the KDD Workshop on Multimedia Data Mining 2010. New York: ACM Press, 2010. Article No. 9.

20
Journal of Software 软件学报
[57] [58] [59]
Neumeyer L, Robbins B, Nair A, Kesari A. S4: Distributed stream computing platform. In: Fan W, Hsu W, Webb GI, Liu B, Zhang CQ, Gunopulos D, Wu XD, eds. Proc. of the ICDM Workshops 2010. Sydney: IEEE Computer Society, 2010. 170?177. Chen QM, Hsu M. Continuous mapreduce for In-DB stream analytics. In: Meersman R, Dillon TS, Herrero P, eds. Proc. of the OTM 2010. Hersonissos: Springer, 2010. 16?34. Olston C, Chiou G, Chitnis L, Liu F, Han YP, Larsson M, Neumann A, Rao VBN, Sankarasubramanian V, Seth S, Tian C, ZiCornell T, Wang XD. Nova: Continuous Pig/Hadoop workflows. In: Sellis TK, Miller RJ, Kementsietsidis A, Velegrakis Y, eds. Proc. of the SIGMOD 2011. Athens: ACM Press, 2011. 1081?1090.
[60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79]
Bu YY, Howe B, Balazinska M, Ernst MD. HaLoop: Efficient iterative data processing on large clusters. PVLDB, 2010,3(1-2): 285?296. Zhang SB, Han JZ, Liu ZY, Wang K, Feng SZ. Accelerating MapReduce with distributed memory cache. In: Pan Y, ed. Proc. of the ICPADS 2009. Shenzhen: IEEE, 2009. 472?478. Afrati FN, Ullman JD. Optimizing joins in a map-reduce environment. In: Manolescu I, Spaccapietra S, Teubner J, Kitsuregawa M, Léger A, Naumann F, Ailamaki A, ?zcan F, eds. Proc. of the EDBT 2010. Lausanne: ACM Int’l Conf. Proc. Series, 2010. 99?110. Afrati FN, Ullman JD. Optimizing multiway joins in a Map-Reduce environment. IEEE TKDE, 2011,23(9):1282?1298. Afrati FN, Das SA, Menestrina D, Parameswaran A, Ullman JD. Fuzzy joins using MapReduce. Technical Report #1006. Stanford: Stanford University, InfoLab, 2012. Blanas S, Patel JM, Ercegovac V, Rao J, Shekita EJ, Tian YY. A comparison of join algorithms for log processing in MapReduce. In: Elmagarmid AK, Agrawal D, eds. Proc. of the SIGMOD 2010. Indianapolis: ACM Press, 2010. 363?374. Okcan A, Riedewald M. Processing theta-joins using MapReduce. In: Sellis TK, Miller RJ, Kementsietsidis A, Velegrakis Y, eds. Proc. of the SIGMOD 2011. Athens: ACM Press, 2011. 949?960. Nykiel T, Potamias M, Mishra C, Kollios G, Koudas N. MRShare: Sharing across multiple queries in MapReduce. PVLDB, 2010, 3(1-2):494?505. Chu CT, Kim SK, Lin YA, Yu YY, Bradski G, Ng AY, Olukotun K. Map-Reduce for machine learning on multicore. In: Sch?lkopf B, Platt JC, Hoffman T, eds. Proc. of the NIPS 2006. Vancouver: MIT Press, 2006. 281?288. Chen R, Chen HB, Zang BY. Tiled-MapReduce: Optimizing resource usages of data-parallel applications on multicore with tiling. In: Salapura V, Gschwind M, Knoop J, eds. Proc. of the PACT 2010. Vienna: ACM Press, 2010. 523?534. He BS, Fang WB, Govindaraju NK, Luo Q, Wang TY. Mars: A MapReduce framework on graphics processors. In: Moshovos A, Tarditi D, Olukotun K, eds. Proc. of the PACT 2008. Toronto: ACM Press, 2008. 260?269. Hong CT, Chen DH, Chen WG, Zheng WM, Lin HB. MapCG: Writing parallel program portable between CPU and GPU. In: Salapura V, Gschwind M, Knoop J, eds. Proc. of the PACT 2010. Vienna: ACM Press, 2010. 217?226. Polo J, Carrera D, Becerra Y, Beltran V, Torres J, Ayguade E. Performance management of accelerated MapReduce workloads in heterogeneous clusters. In: Qin F, ed. Proc. of the ICPP 2010. San Diego: IEEE Computer Society, 2010. 653?662. Papagiannis A, Nikolopoulos DS. Rearchitecting MapReduce for heterogeneous multicore processors with explicitly managed memories. In: Qin F, ed. Proc. of the ICPP 2010. San Diego: IEEE Computer Society, 2010. 121?130. You HH, Yang CC, Huang JL. A load-aware scheduler for MapReduce framework in heterogeneous cloud environments. In: Chu WC, Wong WE, Palakal MJ, Hung CC, eds. Proc. of the SAC 2011. TaiChung: ACM Press, 2011. 127?132. Zaharia M, Borthakur D, Sarma JS, Elmeleegy K, Shenker S, Stoica I. Delay scheduling: A simple technique for achieving locality and fairness in cluster scheduling. In: Morin C, Muller G, eds. Proc. of the EuroSYS 2010. Paris: ACM Press, 2010. 265?278. Thusoo A, Sarma JS, Jain N, Shao Z, Chakka P, Anthony S, Liu H, Wyckoff P, Murthy R. Hive a warehousing solution over a MapReduce framework. PVLDB, 2009,2(2):938?941. Chattopadhyay B, Lin L, Liu WR, Mittal S, Aragonda P, Lychagina V, Kwon YH, Wong M. Tenzing a SQL implementation on the MapReduce framework. PVLDB, 2011,4(4):1318?1327. Olston C, Reed B, Srivastava U, Kumar R, Tomkins A. Pig latin: A not-so-foreign language for data processing. In: Wang JTL, ed. Proc. of the SIGMOD 2008. Vancouver: ACM Press, 2008. 1099?1110. Ghoting A, Krishnamurthy R, Pednault E, Reinwald B, Sindhwani V, Tatikonda S, Tian YY, Vaithyanathan S. SystemML: Declarative machine learning on MapReduce. In: Abiteboul S, B?hm K, Koch C, Tan KL, eds. Proc. of the ICDE 2011. Hannover: IEEE Computer Society, 2011. 231?242.
[80] [81]
Apache Foundation. Mahout. 2012. https://www.360docs.net/doc/777220479.html,/ Roy I, Ramadan HE, Setty STV, Kilzer A, Shmatikov V, Witchel E. Airavat: Security and privacy for MapReduce. In: Castro M, Snoeren AC, eds. Proc. of the NSDI 2010. San Jose: USENIX Association, 2010. 297?312.

数据管理技术知识点整理

数据管理技术知识点整理 必须保留好和考纲一起保留好 第一章:认识数据管理技术 1.1感受数据管理技术 数据是人类社会的一种重要信息资源,是对现实世界中客观事物的符号化表示。 数据管理是指对数据的收集、分类、组织、编码、存储、查询和维护等活动。 数据管理技术就是指与数据管理活动有关的技术。 数据库技术主要应用于数据密集型应用的领域,这种数据密集型应用主要由以下一些特点:(1)涉及的数据量很大,数据一般需要存放在外存中,内存只能暂时存储很小的一部分。 (2)数据必须长期保留在计算机系统中,不随应用程序运行的结束而消失,如银行系统必须长久的保存储蓄用户的信息。 (3)数据要为多个应用程序所共享,或者要求在一个单位或更大范围内共享。 1.2了解数据管理技术的变迁 (1)人工管理阶段 1、没有专门的软件用来管理数据,管理数据需要依赖应用程序本身来处理。 2、数据和程序是紧密联系,一组数据只能对应一个应用程序,而数据又不能共享。 3、数据通常包含在程序中,不具有独立性,一旦数据的结构发生变化,应用程序就要 作相应的修改。 (2)文件系统阶段 1、数据独立性差 2、数据冗余度大(没用的数据太多) 3、数据的安全性和完整性难以保障。 (3)数据库系统阶段 数据库管理系统:DBMS 数据库:DB 数据库管理系统是对数据库进行管理的通用软件系统,是数据库系统的核心。 数据库管理系统具有三大功能:数据定义 数据操纵 数据库运行控制 数据库管理系统提供两种不同类型的语言: 数据定义语言:定义数据库结构 数据操纵语言:表达数据库的查询和更新 数据库系统与人工管理和文件系统相比的区别: 1、数据结构化。与文件系统的根本区别。 2、数据共享。文件系统基本不能共享。数据库系统可以,且冗余度(没用的东西)

大数据处理常用技术简介

大数据处理常用技术简介 storm,Hbase,hive,sqoop, spark,flume,zookeeper如下 ?Apache Hadoop:是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。 ?Apache Hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce 统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 ?Apache Pig:是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。 ?Apache HBase:是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 ?Apache Sqoop:是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 ?Apache Zookeeper:是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务?Apache Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。 ?Apache Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身 ?Apache Avro:是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制 ?Apache Ambari:是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。 ?Apache Chukwa:是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合Hadoop 处理的文件保存在HDFS 中供Hadoop 进行各种MapReduce 操作。 ?Apache Hama:是一个基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架, Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。

高中信息技术 感受数据管理技术的应用教案 粤教版选修4

感受数据管理技术的应用 一、案例背景信息 1.模块:数据管理技术(选修四) 2.年级:高中二年级 3.所用教材版本:广东教育出版社 4.学时数:一课时 非上机时间10 分钟,上机操作时间15 分钟,其他活动(如:阅读、讨论、评价、展示、小结等)大约用20 分钟。 5. 设计组成员资料: 姓名性别通信地址QQ号码电子邮箱 王健男株洲北师大附校495931434 Janssen0313@https://www.360docs.net/doc/777220479.html, 张喜女株洲县第一中学405384475 Zhangxi086@https://www.360docs.net/doc/777220479.html, 易李平女醴陵市第一中学529024569 llyzylp@https://www.360docs.net/doc/777220479.html, 汪博男醴陵市第四中学10266775 Wangbo830309@https://www.360docs.net/doc/777220479.html, 二、教学设计 教学目标: 1、认识了解数据管理技术及数据库的概念。 2、知道利用数据管理技术能达到什么样的管理效果。 3、实例分析、实践操作感受并理解数据管理技术。 4、激发学生学习本门课的兴趣。 内容分析: 本节课是《数据管理技术》课的开篇,是在《信息技术基础》课的基础上对数据管理知识的进一步认识、拓展与加深。共有两方面的主要内容,一是体验数据管理技术,二是数据管理技术的应用。这节课既要学生了解认识数据库,又要学生理解数据管理技术的一些概念,并且激发学生对数据管理技术的兴趣,为以后的教学打下基础。 教学重点: 认识掌握数据、数据库、数据管理技术的基本概念,体验并认识数据管理技术对人类社会影响,激发学生学习本门课程的兴趣。 教学难点: 让学生了解数据库管理技术的重要性,激发学生学习本门课程的兴趣。 学生分析: 数据管理技术对学生来说既熟悉又陌生,在《信息技术基础》中,学生已经学习了信息资源管理的相关知识,对数据库的一些基础知识都有初步的了解,而且有些同学在上 Internet 网的时候上过类似数据库的网站,或者接触过 Access 数据库,但又比较陌生是因为只见过没有真正去认识,认真的用过、理解过。 教学策略设计: 1.教学方法设计 因为数据管理技术相对来说是比较枯燥的一门课,因此针对学生对象的分析,运用“任务驱动”,“情感引导”,“分层探究”,“分组协作”的教学模式,来达到教学效果的实现。 2.关于教-学流程和教-学活动的设计思路: 激趣导入新课讲授探究、讨论案例分析

数据管理技术样本

信息技术( 选修4) 数据管理技术复习提纲 概要: 信息技术学科模块4——《数据管理技术》, 全书以应用数据管理技术解决问题为主线, 按照”分析问题——设计数据库——建立数据库——使用数据库——管理数据库”这一线索呈现学习内容。全书分五章, 下面介绍第一章至第五章的主要内容: 第一章认识数据管理技术 一、数据管理基本知识 1、数据管理技术的基本概念 数据: 是人类社会的一种重要信息资源, 是对现实世界中客观事物的符号。计算机中的数据分为数值型数据与非数值型数据。 例题: 如商品价格、销售数量等数据是( ) A、数值数据 B、非数值数据 说明: 数据是信息的符号表示或称为载体。即为了表示信息( 抽象概念) , 必须使用某种符号, 这些符号就叫数据, 如字符、图表、图形、图像、声音、视频等都能够称为数据。信息依赖数据来表示, 是数据的内涵, 是对数据语义的解释。 数据管理: 是指对数据的收集、分类、组织、编码、存储、查询和维护等活动。 数据管理技术: 指与数据管理活动有关的技术。

数据库( DB) : 是指按照某种模型组织起来的, 能够被用户或应 用程序共享的数据的集合。 数据库系统( DBS) : 是指采用的数据库技术的完整的计算机系 统。 数据库管理系统( DBMS) : 是能够建立数据库、 维护数据库及管 理数据库的一个开发平台。 数据库应用系统 : 说明: 数据库系统的核心为数据库管理系统, 数据库管理系统的核心为数据库( 或数据) 例题: 下列软件中, 不属于数据库应用系统的是( ) A 、 学籍管理系统 B 、 中考成绩查询系统 C 、 Linux 操作系统 D 、 网络售票系统 例题: 数据库管理系统英文简写是( ) A 、 D B B 、 DBS C 、 DBMS D 、 Access 2、 数据管理技术的变迁 系统软件应用软件数据库系统结构示意图

大数据技术原理与应用-林子雨版-课后习题答案复习进程

大数据技术原理与应用-林子雨版-课后习 题答案

第一章 1.试述信息技术发展史上的3次信息化浪潮及具体内容。 2.试述数据产生方式经历的几个阶段 答:运营式系统阶段,用户原创内容阶段,感知式系统阶段。 3.试述大数据的4个基本特征 答:数据量大、数据类型繁多、处理速度快和价值密度低。 4.试述大数据时代的“数据爆炸”的特性 答:大数据时代的“数据爆炸”的特性是,人类社会产生的数据一致都以每年50%的速度增长,也就是说,每两年增加一倍。 5.数据研究经历了哪4个阶段? 答:人类自古以来在科学研究上先后历经了实验、理论、计算、和数据四种范式。 6.试述大数据对思维方式的重要影响 答:大数据时代对思维方式的重要影响是三种思维的转变:全样而非抽样,效率而非精确,相关而非因果。 7.大数据决策与传统的基于数据仓库的决策有什么区别 答:数据仓库具备批量和周期性的数据加载以及数据变化的实时探测、传播和加载能力,能结合历史数据和实时数据实现查询分析和自动规则触发,从而提供对战略决策和战术决策。 大数据决策可以面向类型繁多的、非结构化的海量数据进行决策分析。

8.举例说明大数据的基本应用 9.举例说明大数据的关键技术 答:批处理计算,流计算,图计算,查询分析计算 10.大数据产业包含哪些关键技术。 答:IT基础设施层、数据源层、数据管理层、数据分析层、数据平台层、数据应用层。 11.定义并解释以下术语:云计算、物联网 答:云计算:云计算就是实现了通过网络提供可伸缩的、廉价的分布式计算机能力,用户只需要在具备网络接入条件的地方,就可以随时随地获得所需的各种IT资源。 物联网是物物相连的互联网,是互联网的延伸,它利用局部网络或互联网等通信技术把传感器、控制器、机器、人类和物等通过新的方式连在一起,形成人与物、物与物相连,实现信息化和远程管理控制。

数据管理技术发展的三个阶段

数据管理技术发展的三个阶段 数据管理技术发展的三个阶段 数据管理技术的发展可以大归为三个阶段:人工管理、文件系统和数据库管理系统。 一、人工管理 这一阶段(20世纪50年代中期以前),计算机主要用于科学计算。外部存储器只有磁带、卡片和纸带等还没有磁盘等直接存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理方式基本是批处理。这个阶段有如下几个特点: 计算机系统不提供对用户数据的管理功能。用户编制程序时,必须全面考虑好相关的数据,包括数据的定义、存储结构以及存取方法等。程序和数据是一个不可分割的整体。数据脱离了程序就无任何存在的价值,数据无独立性。 数据不能共享。不同的程序均有各自的数据,这些数据对不同的程序通常是不相同的,不可共享;即使不同的程序使用了相同的一组数据,这些数据也不能共享,程序中仍然需要各自加人这组数据,谁也不能省略。基于这种数据的不可共享性,必然导致程序与程序之间存在大量的重复数据,浪费了存储空间。 不单独保存数据。基于数据与程序是一个整体,数据只为本程序所使用,数据只有与相应的程序一起保存才有价值,否则就毫无用处。所以,所有程序的数据均不单独保存。

二、文件系统 在这一阶段(20世纪50年代后期至60年代中期)计算机不仅用于科学计算,还利用在信息管理方面。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取的存储设备。软件领域出现了操作系统和高级软件。操作系统中的文件系统是专门管理外存的数据管理软件,文件是操作系统管理的重要资源之一。数据处理方式有批处理,也有联机实时处理。这个阶段有如下几个特点: 数据以“文件”形式可长期保存在外部存储器的磁盘上。由于计算机的应用转向信息管理,因此对文件要进行大量的查询、修改和插人等操作。 数据的逻辑结构与物理结构有了区别,但比较简单。程序与数据之间具有“设备独立性”,即程序只需用文件名就可与数据打交道,不必关心数据的物理位置。由操作系统的文件系统提供存取方法(读/写)。 文件组织已多样化。有索引文件、链接文件和直接存取文件等。但文件之间相互独立、缺乏联系。数据之间的联系要通过程序去构造。 数据不再属于某个特定的程序,可以重复使用,即数据面向应用。但是文件结构的设计仍然是基于特定的用途,程序基于特定的物理结构和存取方法,因此程序与数据结构之间的依赖关系并未根本改

大数据关键技术

大数据关键技术 大数据技术,就就是从各种类型得数据中快速获得有价值信息得技术。大数据领域已经涌现出了大量新得技术,它们成为大数据采集、存储、处理与呈现得有力武器. 大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现与应用(大数据检索、大数据可视化、大数据应用、大数据安全等)。 一、大数据采集技术 数据就是指通过RFID射频数据、传感器数据、社交网络交互数据及移动互联网数据等方式获得得各种类型得结构化、半结构化(或称之为弱结构化)及非结构化得海量数据,就是大数据知识服务模型得根本.重点要突破分布式高速高可靠数据爬取或采集、高速数据全映像等大数据收集技术;突破高速数据解析、转换与装载等大数据整合技术;设计质量评估模型,开发数据质量技术。 大数据采集一般分为大数据智能感知层:主要包括数据传感体系、网络通信体系、传感适配体系、智能识别体系及软硬件资源接入系统,实现对结构化、半结构化、非结构化得海量数据得智能化识别、定位、跟踪、接入、传输、信号转换、监控、初步处理与管理等。必须着重攻克针对大数据源得智能识别、感知、适配、传输、接入等技术.基础支撑层:提供大数据服务平台所需得虚拟服务器,结构化、半结构化及非结构化数据得数据库及物联网络资源等基础支撑环境。

重点攻克分布式虚拟存储技术,大数据获取、存储、组织、分析与决策操作得可视化接口技术,大数据得网络传输与压缩技术,大数据隐 私保护技术等. 二、大数据预处理技术 主要完成对已接收数据得辨析、抽取、清洗等操作。1)抽取:因获取得数据可能具有多种结构与类型,数据抽取过程可以帮助我们将这些复杂得数据转化为单一得或者便于处理得构型,以达到快速分析处理得目得。2)清洗:对于大数据,并不全就是有价值得,有些数据并不就是我们所关心得内容,而另一些数据则就是完全错误得干扰项,因此要对数据通过过滤“去噪”从而提取出有效数据. 三、大数据存储及管理技术 大数据存储与管理要用存储器把采集到得数据存储起来,建立相 应得数据库,并进行管理与调用。重点解决复杂结构化、半结构化与非结构化大数据管理与处理技术。主要解决大数据得可存储、可表示、可处理、可靠性及有效传输等几个关键问题。开发可靠得分布式文件系统(DFS)、能效优化得存储、计算融入存储、大数据得去冗余及高效低成本得大数据存储技术;突破分布式非关系型大数据管理与处理技术,异构数据得数据融合技术,数据组织技术,研 究大数据建模技术;突破大数据索引技术;突破大数据移动、备份、复制等技术;开发大数据可视化技术. 开发新型数据库技术,数据库分为关系型数据库、非关系型数据库以及数据库缓存系统。其中,非关系型数据库主要指得就是NoSQ

(完整版)大数据技术原理与应用林子雨版课后习题答案

第一章 1.试述信息技术发展史上的3次信息化浪潮及具体内容。 2.试述数据产生方式经历的几个阶段 答:运营式系统阶段,用户原创内容阶段,感知式系统阶段。 3.试述大数据的4个基本特征 答:数据量大、数据类型繁多、处理速度快和价值密度低。 4.试述大数据时代的“数据爆炸”的特性 答:大数据时代的“数据爆炸”的特性是,人类社会产生的数据一致都以每年50%的速度增长,也就是说,每两年增加一倍。 5.数据研究经历了哪4个阶段?

答:人类自古以来在科学研究上先后历经了实验、理论、计算、和数据四种范式。 6.试述大数据对思维方式的重要影响 答:大数据时代对思维方式的重要影响是三种思维的转变:全样而非抽样,效率而非精确,相关而非因果。 7.大数据决策与传统的基于数据仓库的决策有什么区别 答:数据仓库具备批量和周期性的数据加载以及数据变化的实时探测、传播和加载能力,能结合历史数据和实时数据实现查询分析和自动规则触发,从而提供对战略决策和战术决策。 大数据决策可以面向类型繁多的、非结构化的海量数据进行决策分析。 8.举例说明大数据的基本应用 答: 9.举例说明大数据的关键技术

答:批处理计算,流计算,图计算,查询分析计算 10.大数据产业包含哪些关键技术。 答:IT基础设施层、数据源层、数据管理层、数据分析层、数据平台层、数据应用层。 11.定义并解释以下术语:云计算、物联网 答:云计算:云计算就是实现了通过网络提供可伸缩的、廉价的分布式计算机能力,用户只需要在具备网络接入条件的地方,就可以随时随地获得所需的各种IT资源。 物联网是物物相连的互联网,是互联网的延伸,它利用局部网络或互联网等通信技术把传感器、控制器、机器、人类和物等通过新的方式连在一起,形成人与物、物与物相连,实现信息化和远程管理控制。 12.详细阐述大数据、云计算和物联网三者之间的区别与联系。

数据管理技术的产生和发展

数据管理技术的产生和发展 摘要:随着计算机技术的发展,特别是在计算机软件.硬件与网络技术发展的前提下,人们的数据处理要求不断提高,在此情况下,数据管理技术也不断改进。数据库技术是计算机科学技术中发展最快的领域之一,也是应用最广的技术之一,它成为计算机信息系统与应用系统的核心技术和重要基础。 关键字:人工管理、文件系统、数据库系统。 数据管理的水平是和计算机硬件、软件的发展相适应的,是随着计算机技术的发展人们的数据管理技术经历了三个阶段的发展:人工管理阶段;文件系统阶段;数据库系统阶段。 1.人工管理阶段: 20世纪50年代中期以前,计算机主要用于科学计算。硬件方面,计算机的外存只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备,存储量非常小;软件方面,没有操作系统,没有高级语言,数据处理的方式是批处理,也即机器一次处理一批数据,直到运算完成为止,然后才能进行另外一批数据的处理,中间不能被打断,原因是此时的外存如磁带、卡片等只能顺序输入。 人工管理阶段的数据具有以下的几个特点。 (1)数据不保存。由于当时计算机主要用于科学计算,数据保存上并不做特别要求,只是在计算某一个课题时将数据输入,用完就退出,对数据不作保存,有时对系统软件也是这样。 (2)数据不具有独立。数据是作为输入程序的组成部分,即程序和数据是一个不可分隔的整体,数据和程序同时提供给计算机运算使用。对数据进行管理,就像现在的操作系统可以以目录、文件的形式管理数据。程序员不仅要知道数据的逻辑结构,也要规定数据的物理结构,程序员对存储结构,存取方法及输入输出的格式有绝对的控制权,要修改数据必须修改程序。要对100组数据进行同样的运算,就要给计算机输入100个独立的程序,因为数据无法独立存在。 (3)数据不共享。数据是面向应用的,一组数据对应一个程序。不同应用的数据之间是相互独立、彼此无关的,即使两个不同应用涉及到相同的数据,也必须各自定义,无法相互利用,互相参照。数据不但高度冗余,而且不能共享。

新型大数据管理技术-复旦大学研究生院

新型大数据管理技术 Introduction to Data Science 随着大数据时代的到来,数据分析技术是近年来计算机领域非常活跃的领域。出现了很多新型的研究领域,本课程将邀请目前活跃在数据管理领域前沿的三位高水平研究人员授课,分别对目前最新的研究领域进行介绍,并结合这些新型的研究问题通过研讨的形式提高对学生从事科学研究的能力。 课程将围绕大数据分析的最新技术组织课程内容。具体内容包括: ●大规模图数据管理技术。汪卫教授将结合目前大规模中文知识图谱的构建与 管理展开介绍,并着重结合一些实际应用包括深度阅读、智慧城市等介绍大规模图数据的管理技术 ●移动环境下的大数据管理技术。 Hui Xiong教授将对移动环境下的大数据管 理技术,包括移动大数据管理的挑战、计算模型、不确定性数据管理等内容进行系统介绍。 ●大数据下的查询处理技术。 Zhiyuan Chen 教授将对大数据管理以及大数据 环境下SQL查询的处理技术进行系统介绍。 三位主讲人具有很强的研究能力。他们在VLDB、SIGMOD、SIGKDD、TODS等数据库领域的顶级国际学术会议和期刊上发表了大量的论文。相信通过参与该课程有助于学生了解数据管理和分析领域面临的主要问题,提高他们的研究能力。 教师风采 复旦大学计算机科学技术学院副院长,1998年获复旦大学 计算机科学博士学位,长期从事数据库与数据挖掘领域的 研究和开发工作。在SIGKDD、SIGMOD、VLDB、WWW、 ICDE、IEEE TKDE、JIIS等国际权威的学术会议上发表论 文近20余篇,引用500余次。作为主要参与者获得上海市 科技进步一等奖一项,二等奖两项,三等奖一项,并或高等教育国家级教学成果二等奖一次。2005入选教育部“新世纪优秀人才支持计划”。目前担任中国计算机学会数据库专业委员会委员,上海市计算机学会理事,数据库专业委员会副主任。并担任ICDM、SIAM DM、CIKM等重要国际学术会议的程序委员。

大数据管理及应用专业

大数据管理及应用专业 招生简章 东凌经济管理学院计划于2019年面向全校2018级本科生招收30名“大数据管理与应用”专业学生。 专业介绍 大数据已成为推动经济转型发展的新动力、提升国家竞争优势的新机遇。国家大数据产业“十三五”规划正在启动实施阶段,社会对大数据人才的需求日益迫切。为主动适应国家和经济社会发展需要,东凌经济管理学院开设“大数据管理及应用”本科专业方向班,现面向全校一年级学生招生,欢迎大家报名。 大数据管理及应用专业依托北京科技大学东凌经济管理学院的管理科学与工程系建设。管理科学与工程系是北京市重点学科,具有悠久的办学历史和强大的师资队伍。目前拥有专职教师26人,其中教授9人,副教授10人,讲师7人,95%的教师具有博士学位,80%的教师具有海外学习或进修经历。教师中1人入选爱思唯尔(Elsevier)2014年中国高被引学者榜单,2人获评教育部新世纪优秀人才,2人获评北京市教学名师。近5年获得国家自然科学基金项目14项,其中包含重点项目2项,发表学术论文300余篇。此外,该系拥有一流的实验和应用实践平台和基础设施技术保障。包括200核高性能服务器,300T的专用网络存储设备,万兆交换机以及云存储管理平台,可以同时为2个班60名学生开展大数据管理与应用相关实验。

大数据管理和应用专业将突出大数据科学专业特色,注重人才培养的科学性、前瞻性。本专业毕业生应熟练掌握大数据平台技术(设计、部署、管理、运维等)、大数据分析技术(统计计算、人工智能、数据挖掘等方法)、大数据开发与应用等基本工程能力,具备创新意识和合作精神,具有较高的分析问题、解决问题、自主学习以及创新能力。毕业生适合在信息技术企业、企事业单位、科研机构、高等院校的信息技术或管理部门,以大数据采集与预处理、存储与管理、分析与挖掘、展现与应用等为主要内容,从事商务数据分析学科的科研、教学、管理等工作。 大数据是国家重点支持的发展领域,具有良好的就业前景和用武之地。欢迎有志于国家大数据事业发展的同学踊跃选报大数据管理及应用专业!

大数据处理常用技术有哪些

大数据处理常用技术有哪些? storm,hbase,hive,sqoop.spark,flume,zookeeper如下 ?Apache Hadoop:是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。 ?Apache Hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce 统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 ?Apache Pig:是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。 ?Apache HBase:是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 ?Apache Sqoop:是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 ?Apache Zookeeper:是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务?Apache Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。 ?Apache Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身 ?Apache Avro:是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制 ?Apache Ambari:是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。 ?Apache Chukwa:是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合Hadoop 处理的文件保存在HDFS 中供Hadoop 进行各种MapReduce 操作。 ?Apache Hama:是一个基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架, Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。

现代数据管理技术综述

2009年第12期 福建电脑 现代数据管理技术综述 李强,郁芸,华东,张炯 (南京医科大学数学与计算机教研室江苏南京210029) 【摘要】:随着计算机软硬件技术、通讯技术以及信息处理技术的飞速发展与广泛应用,现代数据管理技术也在加速发展。本文由当前数据库技术所面临新的问题和主要挑战谈起,从XML数据管理、数据仓库与联机分析处理等几个方面,对现代数据管理技术的研究现状和发展趋势进行评述。 【关键词】:Web;XML;数据管理;数据仓库;OLAP 1、引言 数据库技术的发展以采用的数据模型(Data Model)可划分为:第一代,层次(hierarchica1)数据库&网状(network)数据库--6O年代;第二代,关系(Relational)数据库--流行的RDBMS有: Oracle,Sybase,Informix,SQL Server,FoxPro等。这些数据库系统有着技术成熟、应用广泛、数据管理能力强(包括存储、检索、修改等)、数据安全程度高、稳定可靠的并发访问机制等特点;第三代,后关系(Post-relational)数据库,改造并扩充了关系数据库,以适应新的应用领域及其应用需求。随着Web的流行,越来越复杂的应用环境以及硬件的飞速发展,动摇了传统数据库的基本前提假设,新一代数据库系统必将应运而生。 何谓数据库系统?归结起来,数据库在数据管理方面具有管理方便、存贮占用空间小、检索速度快、修改效率高、安全性好等优点,但客观上需要用一种应用方式将其丰富的数据有效地发布出来,以消除平台差异、增强语义描述功能、降低环境要求。当前主流的数据库产品都宣布了对XML的支持。XML的最突出的特点就是功能强大又易于使用,它使网页能够容纳更丰富的信息资源。其中元数据管理、语义透明性和自主主体都是XML所独有的概念。而XML对统一结构化语法和半结构化语法的承诺,将有助于把几乎不可能完成的事变成切实可行的。无论如何,XML正在迅速地发展和不断地完善中,前景非常光明。 2、XML数据管理 2.1XML与半结构化数据 2.1.1XML的特点及应用 现在看到的丰富的Web页面很多都是使用HTML制作的,或者通过其他编程语言在运行过程中动态生成的HTML页面。虽然HTML也提供了简单的结构概念,如标题、段落或列表等,但只包含有限的标志集合,不包含元素,也不能为元素指定特殊的属性,HTML不能提供一致的数据结构,这样的一个结果就是HTML提供的各种信息虽然是人可阅读的,但不是机器可阅读的,例如搜索引擎的查询结果经常不能令人满意。XML是指可扩展标记语言,是一种可以用来定制其他语言的语言,web设计者可以根据自己的需要来构造自己需要的数据结构。XML具有跨平台,与语言和应用程序无关、自描述等特点,任何一种可以识别文本语言和XML意义的应用程序都可以用它来传递和接收数据。 XML的应用是非常广泛的。在以数据为中心的应用中, XML能够为各种应用程序之间的数据交换提供一种通用的数据结构。在以文档为中心的应用中,XML为各种应用程序操作同一文档提供了可能。VRML已经被修改为基于XML的一种语言,这意味着理解XML的浏览器可以显示VRML。VRML也使用XML来描述图像,而不是以向量或数学的格式来描述,从而可以用许多不同的方式对图像进行动态的分类和处理。可以看出,XML是未来所有分布式解决方案中的重要部分,它在未来的数据和信息管理、电子商务以及网络数据交换等方面具有不可替代的作用。 2.1.2半结构化数据 Web可以看成是一个巨大的、异构的、分布的、由超文本链接所构成的文档集合,对这样的数据进行查询与传统的数据库查询有着明显的不同。首先,已有的数据模型不能很好地适应网上数据的特点,需要引入新的数据模型;其次,由于Internet上的许多数据经常缺乏明确的模式,存在不规则的数据形式,这就给查询和处理提出了新的挑战,由此人们提出了半结构化数据的概念。半结构化数据是介于严格结构化的数据(如关系数据库中的数据)和完全无结构的数据(如声音、图像文件)之间的数据形式。 半结构化数据存在一定的结构,但这些结构或者没有被清晰地描述,或者是经常动态变化的,或者过于复杂而不能被传统的模式定义来表现。半结构化数据的模式与传统的关系和面向对象数据的模式不同,主要有如下一些特点:①对半结构化数据来说,是先有数据,后有模式;②半结构化数据的模式是用于描述数据的结构信息,而不是对数据结构进行强制性的约束;③半结构化数据的模式是非精确的,它可能只描述数据的一部分结构,也可能根据数据处理的不同阶段的视角而不同;④半结构化数据的模式可能规模很大,甚至超过源数据的规模,而且会由于数据的不断更新而处于动态的变化过程中,没有强制性的模式限制,使得半结构化数据具有很大的灵活性,能够满足网络这种复杂分布环境的需要,但是也给数据的处理带来了很大的困难。 2.2XML模式研究 XML图是一种非常灵活的数据模型,它能很容易地构造关系数据和面向对象数据。从另一方面看,数据(包括不规则数据)与XML图能很方便地直接映射。XML图非常适合描述分布式的、多态的、动态改变的Web数据。在OEM模型与XML图之间的对应非常简单:OEM对象对应于XML中的元素(element), OEM中的子对象关系反映了XML中的元素嵌套。它们之间的不同之处在于XML的子元素可能是有序的,以及XML元素可能包含(属性,值)列表。为了支持XML的这两个特点,在OEM模型中引入如下三个新特性:有序的子对象、(属性、值)列表以及参照边(reference edge),就可以成为支持XML的数据模型了。 为了更有效地进行XML数据的处理,学者们提出了许多关于XML模式描述的方案,如文档类型定义DTD等。在XML模式的研究领域,还有待于进一步的研究与交流,以形成功能完备、形式简洁并被一致认同的规范。 2.3XML查询和XML数据索引 XML数据与关系数据和面向对象数据不同,因此传统的查询语言不能直接用于XML。然而XML数据模型与近年来数据库界研究的半结构化数据模型很相似,一些处于研究阶段的查询语言已被设计并运用于半结构化数据,在此基础上提出了一种基于XML的查询语言,称为XML-QL,它用查询的方式可实现XML数据的检索、转换和集成。 XML-QL是在查询语言(UnQL和StruQL)基础上设计的,它能对XML文档进行查询、构造、转换和集成。XML-QL集中了查询语言技术和XML语法格式,它通过说明路径表达式和模式的方式,给出XML数据的提取条件(WHERE子句)。同时XML-QL 52

大数据处理:技术与流程

大数据处理:技术与流程 文章来源:ECP大数据时间:2013/5/22 11:28:34发布者:ECP大数据(关注:848) 标签: “大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。特点是:数据量大(Volume)、数据种类多样(Variety)、要求实时性强(Velocity)。对它关注也是因为它蕴藏的商业价值大(Value)。也是大数据的4V特性。符合这些特性的,叫大数据。 大数据会更多的体现数据的价值。各行业的数据都越来越多,在大数据情况下,如何保障业务的顺畅,有效的管理分析数据,能让领导层做出最有利的决策。这是关注大数据的原因。也是大数据处理技术要解决的问题。 大数据处理技术 大数据时代的超大数据体量和占相当比例的半结构化和非结构化数据的存在,已经超越了传统数据库的管理能力,大数据技术将是IT领域新一代的技术与架构,它将帮助人们存储管理好大数据并从大体量、高复杂的数据中提取价值,相关的技术、产品将不断涌现,将有可能给IT行业开拓一个新的黄金时代。 大数据本质也是数据,其关键的技术依然逃不脱:1)大数据存储和管理;2)大数据检索使用(包括数据挖掘和智能分析)。围绕大数据,一批新兴的数据挖掘、数据存储、数据处理与分析技术将不断涌现,让我们处理海量数据更加容易、更加便宜和迅速,成为企业业务经营的好助手,甚至可以改变许多行业的经营方式。 大数据的商业模式与架构----云计算及其分布式结构是重要途径 1)大数据处理技术正在改变目前计算机的运行模式,正在改变着这个世界:它能处理几乎各种类型的海量数据,无论是微博、文章、电子邮件、文档、音频、视频,还是其它形态的数据;它工作的速度非常快速:实际上几乎实时;它具有普及性:因为它所用的都是最普通低成本的硬件,而云计算它将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。云计算及其技术给了人们廉价获取巨量计算和存储的能力,云计算分布式架构能够很好地支持大数据存储和处理需求。这样的低成本硬件+低成本软件+低成本运维,更加经济和实用,使得大数据处理和利用成为可能。

数据管理技术 教案

数据管理技术教案 1.1 感受数据管理技术的应用 【教学目标】 认识数据、数据管理、数据管理技术的概念。 通过实例调查,了解数据库在多媒体和网络方面的应用方法于应用价值,能描述数据 了解数据管理技术的产生发展历史,了解数据管理技术在各个阶段的应用与影响。 激发学习数据管理技术的兴趣,体现信息技术的文化内涵。 【教学重点】 数据、数据管理、数据管理技术的概念。 通过实例调查,了解数据库在多媒体和网络方面的应用方法于应用价值,能描述数据 【教学难点】 把握数据的概念 描述不同数据管理技术的应用特点 了解数据库在多媒体和网络方面的应用方法与应用价值。 【教学对象】 在《信息技术基础》中,学生已经学习了信息资源管理的相关只是。学生对与信息资源 管理的方法、各种方法的特点、数据库应用系统管理数据的优势、数据库的一些基本概念都 有了一个初步的感性认识。 在人之发展方面,学生的逻辑思维和抽象思维能力都有较大的进步,起归纳和总结能力也有了一定程度上的发展。 【教学策略】教师讲授与学生自主学习、协作探究相结合。 【教学环境】网络教室。 【教学过程】

1.2 了解数据管理技术的变迁 【教学目标】 了解数据管理技术的产生发展历史,了解数据管理技术在各个阶段的作用与影响。 让学生体会到数据管理技术是在不断满足新的数据管理应用要求、不断在原来的基础 通过对不同阶段的数据管理技术的比较分析,总结数据库系统管理数据的特点,进一 【教学重点】 能说出数据管理技术的产生发展历史,了解数据管理技术三个发展阶段的历史背景、 理解数据库、数据库管理系统的基本概念和作用。 【教学难点】 理解数据管理技术关于数据独立性、数据冗余、数据安全行和完整行、数据结构化等 【教学策略】教师讲授与学生自主学习相结合 【教学环境】网络教室。

大数据关键技术

大数据关键技术大数据技术,就是从各种类型的数据中快速获得有价值信息的技术。大数据领域已经涌现出了大量新的技术,它们成为大数据采 集、存储、处理和呈现的有力武器。 大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)。 一、大数据采集技术 数据是指通过RFID射频数据、传感器数据、社交网络交互数据及移动互联网数据等方式获得的各种类型的结构化、半结构化(或称之为弱结构化)及非结构化的海量数据,是大数据知识服务模型的根本。重点要突破分布式高速高可靠数据爬取或采集、高速数据全映像等大数据收集技术;突破高速数据解析、转换与装载等大 数据整合技术;设计质量评估模型,开发数据质量技术。 大数据采集一般分为大数据智能感知层:主要包括数据传感体系、网络通信体系、传感适配体系、智能识别体系及软硬件资源接入系统,实现对结构化、半结构化、非结构化的海量数据的智能化识别、定位、跟踪、接入、传输、信号转换、监控、初步处理和管理等。必须着重攻克针对大数据源的智能识别、感知、适配、传输、接入等技术。基础支撑层:提供大数据服务平台所需的虚拟服务器,结构化、半结构化及非结构化数据的数据库及物联网络资源等基础支撑环境。重点攻克分布式虚拟存储技术,大数据获取、存储、组织、分析和决

策操作的可视化接口技术,大数据的网络传输与压缩技术,大数据隐私保护技术等。 二、大数据预处理技术 主要完成对已接收数据的辨析、抽取、清洗等操作。1)抽取:因获取的数据可能具有多种结构和类型,数据抽取过程可以帮助我们将这些复杂的数据转化为单一的或者便于处理的构型,以达到快速分析处理的目的。2)清洗:对于大数据,并不全是有价值的,有些数据并不是我们所关心的内容,而另一些数据则是完全错误的干扰项,因此要对数据通过过滤“去噪”从而提取出有效数据。 三、大数据存储及管理技术 大数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。重点解决复杂结构化、半结构化和非结构化大数据管理与处理技术。主要解决大数据的可存储、可表示、可处理、可靠性及有效传输等几个关键问题。开发可靠的分布式文件系统(DFS)、能效优化的存储、计算融入存储、大数据的去冗余及高效低成本的大数据存储技术;突破分布式非关系型大数据管理与处理技术,异构数据的数据融合技术,数据组织技术,研究大数据建模技术;突破大数据索引技术;突破大数据移动、备份、复制等技术;开发大数据可视化技术。 开发新型数据库技术,数据库分为关系型数据库、非关系型数据库以及数据库缓存系统。其中,非关系型数据库主要指的是NoSQL数据库,分为:键值数据库、列存数据库、图存数据库以及文档数据库

数据管理技术

信息技术(选修4) 数据管理技术复习提纲 概要: 信息技术学科模块4——《数据管理技术》,全书以应用数据管理技术解决问题为主线,按照“分析问题——设计数据库——建立数据库——使用数据库——管理数据库”这一线索呈现学习内容。全书分五章,下面介绍第一章至第五章的主要内容:第一章 认识数据管理技术 一、数据管理基本知识 1、数据管理技术的基本概念 数据:是人类社会的一种重要信息资源,是对现实世界中客观事物的符号。计算机中的数 据分为数值型数据与非数值型数据。 例题:如商品价格、销售数量等数据是( ) A 、数值数据 B 、非数值数据 说明:数据是信息的符号表示或称为载体。即为了表达信息(抽象概念),必须使用某种符号,这些符号就叫数据,如字符、图表、图形、图像、声音、视频等都可以称为数据。信息依赖数据来表达,是数据的内涵,是对数据语义的解释。数据管理:是指对数据的收集、分类、组织、编码、存储、查询和维护等活动。 数据管理技术:指与数据管理活动有关的技术。 数据库(DB ):是指按照某种模型组织起来的,可以被用户或应用程序共享的数据的集合。 数据库系统(DBS ):是指采用的数据库技术的完整的计算机系统。 数据库管理系统(DBMS ):是能够建立数据库、维护数据库及管理数据库的一个开发平台。 数据库应用系统:是应用了数据库的信息系统。 例题 例题2 说明:文件系统阶段与数据库系统阶段根本区别在数据的结构化程度高低; 数据库技术的应用领域——主要应用于数据密集型应用的领域。 3、数据管理技术的应用 ①利用Windows 操作系统管理文件;

②利用常用工具软件管理数据; ③利用数据库应用系统管理数据 说明:使用数据库应用系统的优势:①能够存储大量数据; ②管理操作方便、快捷,数据维护简单、安全; ③信息检索准确、迅速、高效; ④数据独立性、共享性、安全性均较高,冗余度低。 二、数据库、数据表、记录、字段、关键字的概念 关系:二维表在关系数据库中称作关系; 字段:二维表中的列称为字段; 域:是属性所有可能取值的集合 值:是二维表中的一个具体数据项,是数据库中最小的数据单位 关键字(键):也称作键,是指能标识唯一一条记录的字段。 记录:二维表中行称为记录,可以用关键字来标识(从第二行开始)。 相关规定:在同一张二维表中不允许有同名字段;在一张二维表中,不应有内容完全相同的记录;。 常见的关系数据库管理系统:Access 、Foxpro 、DB2、SQL Server 、Oracle 等。 例题:某学校“会考信息管理系统”使用了利用Office 2000建立的数据库hkinfor.mdb 该数据库应用系统的名称是( ) A 、Access 2000 B 、hkinfor.mdb C 、hkinfor D 、会考信息管理系统 :以下哪一项全不属于数据库管理系统( ) ②DB2 ③Access ④Excel ⑤Oracle ⑥Photoshop A 、④⑥ B 、①②⑥ C 、①④⑤⑥ D 、②④⑤⑥ 例题:关系数据库中的“关系”指的就是( ) A 、联系 B 、一维表 C 、二维表 D 、三维表 第二章 数据的分析与建模 一、数据分析与建模 建立数据库的过程: ①数据的收集与分类→②建立实体-联系模型(E-R 图)→③将E-R 图转化为关系数据模型→④创建数据库(建立空数据库→建立表结构→输入记录数据)每一列为一个字段 第 二行开始每一行为一条记录

相关文档
最新文档