ITPub博客

首页 > 云计算 > 开源云工具 > Greenplum基础

Greenplum基础

开源云工具 作者:安全极客 时间:2026-05-27 15:25:25 0 删除 编辑

MPP架构

MPP(Massively Parallel Processing)架构是一种用于处理大规模数据的计算架构,它通过将任务分配给多个处理单元并行执行,以提高处理速度和性能。MPP 架构的由来可以追溯到对大规模数据处理需求的不断增长,传统的单一处理器或对称多处理器(SMP)架构无法满足这些需求。MPP 架构允许在大规模数据集上实现水平扩展,通过添加更多的处理单元来增加计算和存储能力。

  • 分布式存储: MPP 数据库系统通常使用分布式存储架构,将数据分散存储在多个节点上。每个节点都有自己的存储单元,这样可以提高数据的读取和写入速度。
  • 并行处理: MPP 架构通过将任务分解成小块,并同时在多个处理单元上执行这些任务来实现并行处理。每个处理单元负责处理数据的一个子集,然后将结果合并以生成最终的输出。
  • 共享无状态架构: MPP 系统通常采用共享无状态的架构,即每个节点之间没有共享的状态。这使得系统更容易水平扩展,因为可以简单地添加更多的节点,而不需要共享状态的复杂管理。
  • 负载平衡: MPP 数据库通常具有负载平衡机制,确保任务在各个节点上均匀分布,避免某些节点成为性能瓶颈。
  • 高可用性: 为了提高系统的可用性,MPP 架构通常设计成具有容错和故障恢复机制。如果一个节点出现故障,系统可以继续运行,而不会丢失数据或中断服务。

一些知名的 MPP 数据库系统包括 Teradata、Greenplum、Amazon Redshift 等。这些系统广泛应用于企业数据仓库、商业智能和大数据分析等领域。总体而言,MPP 架构通过将任务分布到多个节点并行执行,以及有效地利用分布式存储和处理的方式,提供了一种高性能、可伸缩的数据处理解决方案,适用于处理大规模数据的场景。

一、Greenplum架构

Greenplum是基于开源PostgreSQL的分布式数据库,采用shared-nothing(共享无状态)架构,即主机、操作系统、内存、存储都是每台服务器独立自我控制,不存在共享。

Greenplum本质上是一个关系型数据库集群,实际上是由多个独立的数据库服务组合而成的一个逻辑数据库。这种数据库集群采取的是MPP(Massively Parallel Processing)架构,大规模并行处理。
在这里插入图片描述

GreenPlum数据库是由Master Server、Segment Server和Interconnect三部分组成,Master Server和Segment Server的互联使用Interconnect。

协调者(Coordinator) 和 Master 节点 是同一个概念,只是不同版本或文档中使用的术语不同。它们都指的是 Greenplum 集群中负责查询解析、任务分发和结果汇总的核心节点。

在较新版本的 Greenplum(特别是 Greenplum 6 及以后),官方文档逐渐采用 Coordinator(协调者) 这一术语取代Master,以更清晰地描述其功能。

在技术领域,“Master” 这一术语逐渐被认为不够中立或可能引发歧义,因此许多开源项目(如 Greenplum、PostgreSQL 等)开始采用更中立的术语,如 “Coordinator” 或 “Primary”。
“Coordinator” 更准确地描述了该节点的核心功能,即协调整个集群的工作,而不是“主从”关系中的“主”。

Greenplum是一个关系型数据库,是由数个独立的数据服务组合成的逻辑数据库,整个集群由多个数据节点(Segment Host)和控制节点(Master Host)组成。在典型的Shared-Nothing中,每个节点上所有的资源的CPU、内存、磁盘都是独立的,每个节点都只有全部数据的一部分,也只能使用本节点的数据资源。

在Greenplum中,需要存储的数据在进入到表时,将先进行数据分布的处理工作,将一个表中的数据平均分布到每个节点上,并为每个表指定一个分布列(Distribute Column),之后便根据Hash来分布数据,基于Shared-Nothing的原则,Greenplum这样处理可以充分发挥每个节点处IO的处理能力。

1.1 Master/Coordinator节点

Master/Coordinator节点是整个系统的控制中心和对外的服务接入点,它负责接收用户SQL请求,将SQL生成查询计划进行并行处理优化,然后将查询计划分配到所有的Segment节点并进行处理,协调组织各个Segment节点按照查询计划一步一步地进行并行处理,最后获取到Segment的计算结果,再返回给客户端。

从用户的角度看Greenplum集群,看到的只是Master节点,无需关心集群内部的机制,所有的并行处理都是在Master控制下自动完成的。Master节点一般只有一个或二个。
在这里插入图片描述

1.2 Segment / Mirror节点

Segment节点是Greenplum执行并行任务的并行计算节点,它接收Master的指令进行MPP并行计算,因此所有Segment节点的计算性总和就是整个集群的性能,通过增加Segment节点,可以线性化得增加集群的处理性能和存储容量,Segment节点可以是1~10000个节点。

Mirror 是 Segment 的冗余副本,用于保障高可用性。当 Primary Segment 故障时,Mirror 会自动接管服务。

在这里插入图片描述

1.3 Interconnect

Interconnect是Master节点与Segment节点、Segment节点与Segment节点之间进行数据传输的组件,它基于千兆交换机或者万兆交换机实现数据再节点之间的高速传输。

外部数据在加载到Segment时,采用并行数据流进行加载,直接加载到Segment节点,这项独特的技术是Greenplum的专有技术,保证数据在最短时间内加载到数据库中。


官方介绍的Greenplum架构:
在这里插入图片描述

二、Greenplum基本使用

2.1 登录

psql 命令登录gp,psql/命令用法可以通过 psql --help 查看帮助信息。

psql 命令格式为:psql -h hostname -p port -d database -U user -W password

  • -h后面接对应的master或者segment主机名,默认是本机。
  • -p后面接master或者segment的端口号,默认5432(master节点),如果登陆segment节点,则需要指定segment端口6000。
  • -d后面接数据库名,默认gpdw,可将上述参数配置到用户环境变量中。
  • -U登陆用户名,默认gpadmin。

一般直接psql默认登录就可以:

远程客户端登录gp

配置其他用户或者客户端远程登陆gp,需要配置以下2个文件:

  • 配置 /opt/greenplum/data/master/gpseg-1/pg_hba.conf,新增一条规则,则允许任意ip及密码登陆pg。
  • echo “host all gpadmin 0.0.0.0/0 trust” >> /home/gpadmin/data/master/gpseg-1/pg_hba.conf
  • 配置修改完成后,重新加载配置文件:gpstop -u

2.2 数据类型

类型 长度 描述 范围
bigint 8字节 大范围整数 -9223372036854775808 到 +9223372036854775807
smallint 2字节 小范围整数 -32768到+32767
integer(int) 4字节 常用整数 -2147483648 到 +2147483647
decimal 可变长 用户指定的精度,精确 小数点前 131072 位;小数点后 16383 位
real 4字节 可变精度,不准确 6位十进制数字精度
double precision 8字节 可变精度,不准确 15位十进制数字精度
smallserial 2字节 自增的小范围整数 1到32767
serial 4字节 自增整数 1到2147483647
bigserial 8字节 自增的大范围整数 1到9223372036854775807
character 别名char 定长,不足补空白
character varying 别名varchar 可变长,有长度限制
text 可变长 无长度限制
timestamp 8字节 日期和时间,无时区 4713 BC到294276 AD
timestamp with time zone 8字节 日期和时间,有时区 4713 BC到294276 AD
date 4字节 只用于日期 4713 BC到5874897 AD
boolean 1字节 true/false
money 8字节 货币金额 -92233720368547758.08 到 +92233720368547758.07

example:

2.2.1 枚举类型

枚举类型是一个包含静态和值的有序集合的数据类型,类似于Java中的enum类型,需要使用create type命令创建。

原文作者:Aimyon_36;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2018-03-27

  • 博文量
    16
  • 访问量
    1091