欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【GP】Greenplum入门解析

程序员文章站 2022-04-15 19:11:10
一、Greenplum概述【1】Greenplum简介Greenplum(以下简称GP)是一款开源数据仓库。基于开源的PostgreSQL改造,主要用来处理大规模数据分析任务,相比Hadoop,Greenplum更适合做大数据的存储、计算和分析引擎GP是典型的Master/Slave架构,在GP集群中,存在2个Master节点(一个Primary节点和一个Standby)和多个Segment节点,其中每个节点上可以运行多个数据库。GP采用shared nothing架构(MPP)。是典型的Shared...

【GP】Greenplum入门解析
【GP】Greenplum入门解析

(图片来源于网络,侵删)


注:本章内容主要来源于网络各种渠道,侵删

一、Greenplum概述

【1】Greenplum简介

Greenplum(以下简称GP)是一款开源数据仓库。基于开源的PostgreSQL改造,主要用来处理大规模数据分析任务,相比Hadoop,Greenplum更适合做大数据的存储、计算和分析引擎

GP是典型的Master/Slave架构,在GP集群中,存在2个Master节点(一个Primary节点和一个Standby)和多个Segment节点,其中每个节点上可以运行多个数据库。GP采用shared nothing架构(MPP)。是典型的Shared Nothing系统会集数据库。通过内存Cache存储状态的信息,而不在节点上保存状态的信息。节点之间的信息交互都是通过节点互联网络实现,通过将数据分布到多个节点上来实现规模数据的存储,通过并行查询处理来提高查询性能。每个节点仅查询自己的数据,所得到的结果再经过主节点汇总处理得到最终结果,通过增加节点数目达到系统线性扩展

【2】数据库构架

数据库构架设计中主要有 Shared EverthtingShared Nothing、和Shared Disk

Shared Everthting:一般是针对单个主机,完全透明共享CPU/MEMORY/IO,并行处理能力是最差的,典型的代表 SQLServer
Shared Disk:各个处理单元使用自己的私有CPU和Memory共享磁盘系统。典型的代表Oracle, 它是数据共享,可通过增加节点来提高并行处理的能力,扩展能力较好。其类似于SMP(对称多处理)模式,但是当存储器接口达到饱和的时候,增加节点并不能获得更高的性能

Shared Nothing:各个处理单元都有自己私有的CPU/内存/硬盘等,不存在共享资源,类似于MPP(大规模并行处理)模式,各处理单元之间通过协议通信,并行处理和扩展能力更好。典型代表DB2Hadoop ,各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转

我们常说的 Sharding 其实就是Share Nothing架构,它是把某个表从物理存储上被水平分割,并分配给多台服务器(或多个实例),每台服务器可以独立工作,具备共同的schema,比如MySQL Proxy和Google的各种架构,只需增加服务器数就可以增加处理能力和容量

Shared nothing架构(shared nothing architecture)是一 种分布式计算架构。这种架构中的每一个节点( node)都是独立、自给的,而且整个系统中没有单点竞争。
在一个纯Shared Nothing系统中,通过简单地增加一些廉价的计算机做为系统的节点却可以获取几乎无限的扩展

Shared nothing系统通常需要将他的数据分布在多个节点的不同数据库中(不同的计算机处理不同的用户和查询)或者要求每个节点通过使用某些协调协议来保留它自己的应用程序数据备份 ,这通常被成为数据库Sharding

【3】MPP

MPP即大规模并行处理(Massively Parallel Processor )。它是一种基于PostgreSQL的分布式数据库,采用Shared-Nothing架构,主机、操作系统、内存、存储都是自我控制的,不存在共享。数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务

MPP工作原理:MPP是将多个任务分散到多个节点上执行,然后将各节点的执行结果汇总到一起得到最终结果(与Hadoop相似)

MPP虽然是关系型数据库产品,它的特点主要就是查询速度快,数据装载速度快,批量DML处理快。而且性能可以随着硬件的添加,呈线性增加,拥有非常良好的可扩展性。因此,它主要适用于面向分析的事务场景

二、Greenplum架构

Greenplum 由三部分组成:Master Host、Segment、Interconnect

其中,每部分的作用如下:
Master Host

1、访问系统的入口
2、数据库侦听进程 (postgres)
3、处理所有用户连接
4、建立查询计划
5、协调工作处理过程
6、管理工具
7、系统目录表和元数据(数据字典)
8、不存放任何用户数据

Segment

1、每段(Segment)存放一部分用户数据
2、一个系统可以有多段
3、用户不能直接存取访问
4、所有对段的访问都经过 Master
5、数据库监听进程(postgres)监听来自 Master 的连接

Interconnect

1、Greenplum 数据库之间的连接层
2、进程间协调和管理
3、基于千兆以太网架构
4、属于系统内部私网配置
5、支持两种协议:TCP or UDP

【GP】Greenplum入门解析
由上图可知:
客户端通过网络连接到GP,其中Master Host是GP的主节点(客户端的接入点),Segment Host是子节点(连接并提交SQL语句的接口),主节点是不存储用户数据的,子节点存储数据并负责SQL查询,主节点负责相应客户端请求并将请求的SQL语句进行转换,转换之后调度后台的子节点进行查询,并将查询结果汇总处理后返回客户端

【GP】Greenplum入门解析
【GP】Greenplum入门解析
由上图可知:
Master节点的高可用,类似于Hadoop的NameNode HA,Standby Master通过synchronization process,保持与Primary Mastercatalog和事务日志一致,当Primary Master出现故障时,Standby Master承担Master的全部工作
【GP】Greenplum入门解析
由上图可知:
Greenplum中可以存在多个Segment,Segment主要负责业务数据的存储和存取,用户查询SQL的执行,每个Segment存放一部分用户数据,但是用户不能直接访问Segment,所有对Segment的访问都必须经过Master。进行数据访问时,所有的Segment先并行处理与自己有关的数据,如果需要关联处理其他Segment上的数据,Segment可以通过Interconnect进行数据的传输。Segment节点越多,数据就会打的越散,处理速度就越快。因此与Share All数据库集群不同,通过增加Segment节点服务器的数量,Greenplum的性能会成线性增长

每个Segment的数据冗余存放在另一个Segment上,数据实时同步,当Primary Segment失效时,Mirror Segment将自动提供服务,当Primary Segment恢复正常后,可以很方便的使用gprecoverseg -F工具来同步数据

【GP】Greenplum入门解析
Interconnect 是Greenplum架构中的网络层(如上图),是GP系统的主要组件,默认情况下,使用UDP协议,但是GP会对数据包进行校验,因此可靠性等同于TCP,但是性能上会更好。在使用TCP协议的情况下,Segment的实例不能超过1000,但是使用UDP则没有这个限制

本文地址:https://blog.csdn.net/qq_43733123/article/details/107493102