关系型数据库和MapReduce的差异
关系型数据库和MapReduce的差异
- OLAP关系型数据库SQL语义对表达复杂BI报表与分析要方便很多,开发人员使用MapReduce来模拟表达同样的效果SQL语义往往比较复杂;
- 关系型数据库的执行引擎,对SQL的执行有很多优化机制,例如执行路径优化、关联算法等,对于BI的处理和分析比较方便,而采用MapReduce则需要大量的开发工作,以及较强编程技能;
- 很多在SQL体系不适合实现数据处理需求(如:预测、高级聚类算法),在MapReduce中则比较容易实现;
- MapReduce扩展性比OLAP关系型数据库扩展性强,更适合大规模数据处理分析与工作;
- 在数据处理结果展示方面,很对BI工具都是基于关系型数据库,即使采用MapReduce实现数据处理分析工作,最终还是会导入到数据库中做展示。
为什么还需要MapReduce
- 更大的数据处理规模却需要更低的成本;
- 不适合关系模型的数据类型;
- 不适合SQL体系的处理逻辑(如:模糊聚类、孤立点分析、关联分析等)。
简而言之
关系型数据库设计的目标是,只需要你告诉他“需要什么”就行,MapReduce则需要用户告诉他具体“怎么做”,他就会帮助你在MPP环境中执行“怎么做”的过程,因此MapReduce比关系型数据库灵活很多,无论什么数据类型都是根据你要求处理。
关系型数据库和MapReduce的差异