资讯详情

MPP调研

一、MMP数据库

MPP是massively parallel processing,一般指使用多个SQL由数据库节点构建的数据仓库系统。执行查询时,查询可分散到多个SQL数据库节点上执行,然后汇总返回给用户。MPP解决了单个SQL数据库不能存储大量数据的问题,但也存在一些问题,节点数达到100左右时,MPP有些还会遇到Scalability速度慢或不稳定的问题。此外,当添加或删除节点时,所需的维护工作仍然相对较大,集群将遇到数据迁移和重新平衡的问题。SQL on Hadoop是利用Hadoop在平台上存储数据SQL查询引擎。最大的特点和Scalability它非常好,可以支持1000多个节点的集群。但是由于Hadoop许多查询仍然需要进行大量的数据扫描操作,因此查询速度往往比MPP慢,同时支持并发查询数一般较低。

二、MPP原理

MPP简单来说,原则就是分治思想,均分task。然后每个worker/segment一切都一样sub-task,pipeline实施方式,理想情况下性能非常优异。但是很容易慢下来worker和interconnect所以scalability不好几个节点之后,集群规模没有提高(甚至可能下降)。HADOOP原理更类似batch processing,更细的粒度切割task,worker能者多劳(每一个)worker上述任务可能是不平均和不一致的)。单独worker看,性能不如MPP,但是胜在scalability优秀,几百个节点没问题,远胜集群MPP。此外,在业务方面,传统企业的数据量有限,因此更倾向于full-sql支持的MPP方案。而互联网企业更乐于用hadoop处理更大规模的数据。近年来,两者相互融合学习(MPP提升scalability,hadoop提升sql因此,两者之间的差异在未来应该会越来越模糊,最终可能会产生一个大统一OLAP方案(甚至再融合OLTP)。

三、MPP数据库对比SQL On Hadoop

因为一些SQL On Hadoop系统例如Impala也被称为MPP架构。这是正统的MPP数据库对比SQL On Hadoop。所以对比两边其实就像Vertica,阿里ADS,GreenPlum,Redshift vs Impala,Hive以及SparkSQL,Presto等。两者的很大区别在于对存储的控制。

对于Hadoop就数据而言,数据最常见的存在形式是数据湖,即数据本身没有得到很多分类,数据在阅读时倾向于分析,多个系统处理不同workload共享同一套数据湖。例如,你可以Spark,MR以及Impala读取Hive甚至直接读取数据HDFS上的Parquet,ORC文件。这个数据可以用来做BI数仓也可以用来做ML模型训练等。

而MPP数据库则相反,MPP为了加快速度,需要将数据导入进行一定的处理,并将其整理成优化格式以加速。其结果是,它们的存储类似于黑盒子,其他系统很难直接读取数据。当然Vertica还有其他系统SQL On Hadoop运行模式,但速度会下降,见过Vertica的Benchmark,对比Impala在Hadoop在模式下,优势不大,甚至有些查询速度更慢。这部分性能损失是抛开黑盒存储带来的差异。

另外SQL On Hadoop产品和MPP数据库的许多差异实际上是工程成熟度的差异。例如CBO这种优化在数据库领域可能很常见,但对吧SQL On Hadoop还可以说是个新鲜玩意,至少2016-08-30为止,SparkSQL和Presto还没有CBO。列存的引入也是近几年的事,相对而言Vertica列存应该从诞生开始使用。这些差异很可能很快就会被弥补。底层存储部分,与Parquet ORC这样比较复杂,借用了很多传统数据库领域经验的格式不断优化。也许将来SQL On Hadoop会和MPP数据库越来越近似。

参考文献:

标签: mpp110e贴片电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司