本文主要是介绍DolphinDB分区与MPP(Greenplum、AWS、Redshift)的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
数据库架构
目前的商用服务器大体可以分为三类:
对称多处理器结构 (
SMP : Symmetric Multi-Processor
) ;非一致存储访问结构 (
NUMA : Non-Uniform Memory Access
) ;海量并行处理结构 (
MPP : Massive Parallel Processing
) 。数据库架构设计中主要有:
-
一、Shared Everything
Shared Everthting
: 一般是针对单个主机,完全透明共享CPU/MEMORY/IO
,并行处理能力是最差的,典型的代表SQLServer
; -
二、Shared Disk
Shared Disk
: 各个处理单元使用自己的私有CPU
和Memory
,共享磁盘系统。典型的代表
Oracle Rac
, 它是数据共享,可通过增加节点来提高并行处理的能力,扩展能力较好。其类似于SMP
(Symmetric Multi-Processor
,对称多处理)模式,但是当存储器接口达到饱和的时候,增加节点并不能获得更高的性能 。 -
三、Shared Nothing
Shared Nothing
: 各个处理单元都有自己私有的CPU/内存/硬盘
等,不存在共享资源,类似于MPP
(大规模并行处理)模式,各处理单元之间通过协议通信,并行处理和扩展能力更好。典型代表
DB2 DPF
和hadoop
,各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。我们常说的
Sharding
其实就是Share Nothing
架构. -
MPP(Massive Parallel Processing)
MPP
,Massive Parallel Processing
,大规模并行处理。MPP
系统是由许多松耦合的处理单元(并非处理器)组成的。每个处理单元内的
CPU
都有自己私有的资源,如总线,内存,硬盘等,且都有操作系统和管理数据库的实例复本。这种结构最大的特点在于不共享资源(
share-nothing
)。 -
MPP架构特点
Sharing Nothing
、节点之间数据不共享、只有通过网络连接实现的协同;- 每个节点有独立的存储和内存;
- 数据根据某种规则(如
hash
)散布到各个节点; - 计算任务也是会发布到各个节点并行执行,最后再将结果聚合到整体返回;
- 用户使用时会看作整体;
MPP
数据库往往优先考虑C
一致性,然后是A
可用性,最后考虑P
分区容忍;MPP
架构目前被并行数据库广泛采用,一般公国scan
、sort
、merge
等操作符实施返回查询结果;
-
MPP架构的Greenplum
GreenPlum
,2003年几个ORACLE
的高层,针对ORACLE
没法灵活水平线性扩展的软肋,进行开发的。GreenPlum
,主要由master host
、interconnect
、segment host
三大部分组成。 -
MPP架构的云数据库AWS
AWS
(Amazon Web Services
),亚马逊公司的云计算LasS
和PaaS
平台服务。AWS
提供了一整套基础设施和应用程序服务,使几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。 -
MPP架构的云数据库Redshift
Amazon Redshift
是一种可轻松扩展的完全托管型PB
级数据仓库服务,可与您现有的商业智能工具协作。它通过使用列存储技术和并行化多个节点的查询来提供快速的查询性能。 -
MPP架构与SMP架构的区别
MPP
不共享资源(shared nothing
)SMP
共享资源(shared everything
) -
MPP架构与DolphinDB分区
MPP
有一个主节点,每个客户端都连接到这个主节点。DolphinDB
在数据库层面不存在主节点,是点对点结构,每个客户端可以连接到任何一个数据节点,不会出现主节点瓶颈问题。MPP
一般通过哈希规则,将数据分布到各个节点上(水平分割),在各个节点内部再进行分区(垂直分割)。哈希时容易出现各个节点数据分布不均匀的问题。DolphinDB
将各个节点的存储空间交给内置的分布式文件系统(DFS
)统一进行管理,分区的规则与分区的存储位置解耦,数据分割不再按水平和垂直两个步骤进行,而是进行全局优化。这样一来,分区的粒度更细更均匀,在计算时能充分的利用集群的所有计算资源。由于分布式文件系统具有强大的分区管理、容错、复制机制,以及事务管理机制,
DolphinDB
的单表能轻松的支持百万级别的分区。若每个分区有1GB
的数据,就可实现PB级数据的存储和快速查询。另外,通过引入DFS
,数据库的存储和数据库节点相分离,使得DolphinDB
在集群水平扩展(新增节点)上更加方便。 -
References
- MPP架构
- 大数据系统的另一种解决方案-采用MPP架构的GreenPlum数据库
- Greenplum介绍
- [转]MPP架构
- SMP、NUMA、MPP体系结构介绍
- Github >> DolphinDB分区数据库教程
这篇关于DolphinDB分区与MPP(Greenplum、AWS、Redshift)的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!