寻址时间 VS 数据流传输
为什么我们不通过增加关系型数据库的磁盘数量容量来进行大规模的数据分析,而采用MapReduce?这个问题主要有一,磁盘的另一个发展趋势: 寻址时间的提高远远慢于传输速率的提高。寻址是将磁头移动到特定磁盘位置进行读写操作的过程。它是导致磁盘操作延迟的主要原因,因而传输速率取决于磁盘的带宽。 即是说, 如果数据的访问模式中包含大量的磁盘寻址,那么读取大量数据集所化的时间势必会更长(相较于流式数据读取模式),流式读取主要取决于传输速率。
大量数据更新
另一方面,如果数据库系统只更新一小部分记录,那么传统的B树更有优势。但数据库系统更新大部分数据时,B树的效率比MapReduce低得多,因为需要使用“排序/合并”来重建数据库。
数据结构化程度
MapReduce 和关系型数据库之间的另一个区别在于它们所操作的数据集的结构化程度。结构化数据是具有既定格式的实体化数据,诸如XML文档、Json或满足特定预定义格式的数据表。这是RDBMS包括的内容。另一方面半结构化数据比较松散,虽然可能有格式,但经常被忽略,所以它只能用作对数据结构的一般指导。例如,一张电子表格,其结构是由单元格组成的网格,但是每个单元格自身可保存任何形式的格式。非结构化数据没有什么特别的内部结构,例如纯文本的或图像数据。MapReduce对于非结构化或半结构化数据非常有效,因为在处理数据时才对数据进行解释。换句话说,MapReduce输入的键和值并不是数据固有的属性,而是由分析数据的人员来选择的。
MapReduce也可以通过hive进行类似sql的数据操作,这点和关系型数据库是类似的。
mapreduce.png
最后总结.png












网友评论