赞
踩
传统关系型数据库 | MapReduce | |
---|---|---|
数据量级 | GB | PB |
数据存取 | 交互式和批处理 | 批处理 |
数据更新 | 多次读写 | 一次写入,多次读取 |
结构 | 静态 | 动态 |
完整性 | 高 | 低 |
事务 | ACID | 无 |
横向扩展 | 非线性 | 线性 |
MapReduce其实是关系型数据库的补充。MapReduce适用于批量更新大的数据集,而传统关系型数据库适用于点查询和更新。对于小的数据集,传统关系型数据库依靠索引可以进行低延迟的检索,同时也能应付更新操作。但是一旦数据量级上升,(由于数据访问受限于磁道寻址)关系型数据库的B树结构执行更新操作的效率远远小于MapReduce。
结构:静态指定是结构化,动态指的是半结构化或非结构化。RDBMS是在数据库阶段安照具体数据类型处理数据,MapReduce是由用户对数据进行处理。
结构 | 描述 |
---|---|
结构化数据 | 是有具体格式的数据 |
半结构化数据 | 结构松散,可能有一定的格式 |
非结构化数据 | 没有特定格式,比如纯文本或图像 |
完整性:关系型数据库往往是规范的,以保持其数据的完整性且不含冗余的数据。但是MapReduce不需要这样的规范,比如典型的Web服务器日志,每次记录都需要记录客户端的主机名,那么数据中就会多次重复出现这个主机名,也就不满足关系型数据库的规范性,依靠这样的非规范性,MapReduce才可以进行高速流读写操作。
横向扩展:对于MapReduce,程序员需要写map函数和reduce函数,每个函数定义从一个键值对到另一个键值对的映射。这些函数不关注数据集以及其所用集群的大小,可以应用于不同规模的数据集。如果输入的数量级是原先的两倍,那么执行时间也是原先的两倍。SQL查询一般没有此特性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。