MPP代表大规模并行处理,这是网格计算中所有单独节点参与协调计算的方法。 是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。 MPP DBMS是建立在这种方法之上的数据库管理系统。在这些系统中的每个查询都会被分解为由MPP网格的节点并行执行的一组协调进程,它们的运行时间比传统的SMP RDBMS系统快得多。该架构的另一个优点是可扩展性,因为可以通过添加新节点扩展网格。为了能够处理大量的数据,这些解决方案中的数据通常在每个节点只处理其本地数据的方式在节点(分片)之间分割。这是一种完全无共享(Share Nothing)结构,因而扩展能力最好,理论上其扩展无限制,目前技术上可实现512个节点互联,数千个CPU。MPP有对SQL的完整兼容和一些事务处理功能,如果数据扩展需求不是特别大,数据都是结构化数据,习惯使用传统RDBMS,可以选择MPP数据仓库。
目前有很多关于hadoop技术栈与MPP数据仓库的讨论与对比,很多观点认为hadoop可以替代MPP,但是从下表的比对可以看出两者的差异,对于不同的场景以及MPP技术的发展,应该还是处于并存的状态。另外,基于复杂的数据场景下,混合框架的使用,也还是会存的。我们团队就使用混合框架构建了数据中心,从而完善OLTP能力。
以下是两者的比较:
特性 | Hadoop | MPP数据仓库 |
计算节点数 | 可到数千个 | 一般1000个以内 |
数据量 | 支持大于10P | 一般不大于10P |
数据类型 | 关系型,半关系型,无结构化,语音,图像,视频 | 关系型 |
时延 | 中/高 | 低(但还是要看数据量和维度的数量) |
应用生态 | 创新型/人工智能 | 传统数据库型/BI类 |
应用开发接口 | SQL,MR,丰富的编程语言接口 | 标准数据库SQL |
可扩展性 | 无穷的可能,完整的编程接口 | 有限扩展能力,主要通过UDF支持 |
事务支持 | 有限 | 完整 |
价格 | 低 | 高 |