在比较两者的区别之前,首先应该清楚,两者的应用场景不同,在工业工程中两者是互相补充的角色。
为什么关系型数据库不能通过增加磁盘的方式来扩充分析能力,而hadoop却需要这么做呢?原因在于,关系型数据库主要应用于大量细粒化读写和更新数据的场景,而hadoop则主要用于批量读写(一次写入多次读取)的场景。对不连续的细粒度数据读写的性能主要取决于磁盘的寻道时间,连续大规模读写数据则取决于磁盘传输时间,两者有数量级上的差别。
另外,关系型数据库的数据应该是结构化的,而Hadoop(MapReduce)主要是非结构化或者半结构化的。结构化数据应当是结构性且无重复的。MapReduce的数据源则没有这样的要求。
当数据规模非常大的时候,MapReduce可以通过增加节点的数量来减少时间消耗。因为MapReduce会将数据分块,主要的功能性基元Map和Reduce又是可以并行的。所以,根据数据规模线性扩展集群大小,就可以保证处理时间保持不变。
总之,关系型数据库适合用于GB级以内的数据的高精度操作,MapReduce适合PB级及以上数据的低精度操作。且两者现在正互相学习各自长处来完善自己。
关系型数据库系统 | MapReduce | |
---|---|---|
数据量 | GB级 | PB级 |
访问方式</ |