整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

1.3.1. 关系型数据库管理系统

hadoop 花牛 13℃ 0评论

为什么不能用数据库来对大量硬盘上的大规模数据进行批量分析呢?我们为什么需要MapReduce?

这两个问题的答案来自于计算机硬盘的另一个发展趋势:寻址时间的提升 远远不敌于传输速率的提升。寻址是将磁头移动到特定硬盘位置进行读写 操作的过程。它是导致硬盘操作延迟的主要原因,而传输速率取决于硬盘 的带宽。

如果数据访问模式中包含大量的硬盘寻址,那么读取大量数据集就必然会花更长的时间(相较于流数辑#读取模式,流读取主要取决于传输速率)。另一方面,如果数据库系统只更新一小部分记录,那么传统的B树就更有优势 (关系型数据库中使用的一种数据结构,受限于寻址的比例)。但数据库系统如果有大量数据更新时,B树的效率就明显落后于MapReduce,因为需要使用“排序/合并“(sort/merge)来重建数据库。

在许多情况下,可以将MapReduce视为关系型数据库管理系统的补充。两个系统之间的差异如表1-1所示。

MapReduce比较适合以批处理方式处理需要分析整个数据集的问题,尤其动态分析。RDBMS适用于点査询(point query)和更新,数据集被索引之 后,数据库系统能够提供低延迟的数据检索和快速的少量数据更新。 MapReduce适合一次写入、多次读取数据的应用,关系型数据库则更适合持续更新的数据集。

 

表1-1.关系型数据库和MapReduce的比较

传统的关系型数据库 MapReduce
数据大小 GB PB
数据存取 交互式和批处理 批处理
更新 多次读/写 一次写入,多次读取
结构 静态模式 动态模式
完整性
横向扩展 非线性的 线性的

 

MapReduce和关系型数据库之间的另一个区别在于它们所操作的数据集的 结构化程度。结构化数据(structured data)是具有既定格式的实体化数据,如 XML文档或满足特定预定义格式的数据库表。这是RDBMS包括的内容。 另一方面,半结构化数据(semi-structured data)比较松散,虽然可能有格 式,但经常被忽略,所以它只能作为对数据结构的一般性指导。例如电子 表格,它在结构上是由单元格组成的网格,但是每个单元格内可以保存任 何形式的数据。非结构化数据(unstructured data)没有什么特别的内部结构,例如纯文本或图像数据。MapReduce对非结构化或半结构化数据非常有 效,因为它是在处理数据时才对数据进行解释。换句话说,MapReduce输入的键和值并不是数据固有的属性,而是由分析数据的人来选的。

关系型数据往往是规范的(normalized),以保持其数据的完整性且不含冗余。规范给MapReduce带来了问题,因为它使记录读取成为非本地操作, 而MapReduce的核心假设之一偏偏就是可以进行(高速的)流读写操作。

Web服务器日志是典型的非规范化数据记录(例如,每次都需要记录客户端主机全名,这会导致同一客户端的全名可能多次出现),这也是MapReduce 非常适用于分析各种日志文件的原因之一。

MapReduce是一种线性的可伸缩编程模型。程序员要写两个函数,分别为 map函数和reduce函数,每个函数定义从一个键值对集合到另一个键值对集合的映射。这些函数不必关注数据集及其所用集群的大小,可以原封不动地应用于小规模数据集或大规模的数据集。更重要的是,如果输入的数据量是原来的两倍,那么运行时间也需要两倍。但如果集群是原来的两 倍,作业的运行速度却仍然与原来一样快。SQL査询一般不具备该特性。

但是,在不久的将来,关系型数据库系统和MapReduce系统之间的差异很可能变得模糊。关系型数据库都开始吸收MapReduce的一些思路(如Aster Data的数据库和GreenPlum的数据库),另一方面,基于MapReduce的髙 级査询语言(如Pig和Hive)使传统数据库的程序员更容易接受MapReduce 系统。®

转载请注明:全栈大数据 » 1.3.1. 关系型数据库管理系统

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址