同样都可以处理大规模数据的MPP数据库架构与Hadoop体系架构属于不同的技术体系,二者没有直接的相关性,却常常被放在一起进行比较。特别是在企业数据仓库建设中,MPP架构与Hadoop架构代表两类典型的技术路线选型,事实上,在2015年左右甚至有人认为基于Hadoop体系的数仓将彻底取代基于MPP数据库的数仓。
1.设计思路对比
两类系统运行的硬件架构是相同的,都是普通服务器组成的集群,但从资源管理角度来说,它们并行化软件实现的设计思路却是相反的。
MPP架构相当于对单机的各类资源进行垂直综合管理,再将多个单机系统横向连接进行集成,可以说是先垂直后水平。
2.优缺点对比
MPP架构的优缺点总结如下:
支持标准SQL,每个节点都有丰富的事务处理和管理功能;
资源管理精细;
更适合预知数据结构模型的中等规模的固定模式数据管理;
集群规模调整要求较多,增减节点时通常需要停机,且有的系统只能增加不能减少;
延迟小,相对吞吐量一般,单节点缓慢会拖累整体性能;
表记录进行水平分割存储,方法通常包括一致性哈希(Consistent Hashing)、循环写入(Round Robin),但容易产生数据热点。
总体来说,Hadoop架构在数据量较低的情况下,运行速度远不及MPP架构,但数据量一旦超过某个量级,Hadoop架构在吞吐量方面将非常有优势。有些大数据数据仓库产品也采用混合架构,以融合两者的优点,例如Impala、Presto等都是基于HDFS的MPP分析引擎,仅利用HDFS实现分区容错性,放弃MapReduce计算模型,在面向OLAP场景时可实现更好的性能,降低延迟。