0.写在前面: 0.1. 此笔记是参考《greenplum企业应用实战》、《postgresql8.2.3 中文文档》和《getting started with greenplum for big data analytics》整理; 0.2. 《greenplum企业应用实战》购买地址:【京东商城】 【 当当网】 0.3.参考网页(持续更新)
0.写在前面:0.1. 此笔记是参考《greenplum企业应用实战》、《postgresql8.2.3 中文文档》和《getting started with greenplum for big data analytics》整理;
0.2. 《greenplum企业应用实战》购买地址:【京东商城】 【 当当网】
0.3.参考网页(持续更新)
1) shared disk vs shared nothing分布式架构 1. greenplum概述及架构1.1. 什么是greenplum1) 为全球大型企业用户提供新型企业级数据仓库(edw)、企业级数据云(edc)和商务智能(bi)提供解决方案和咨询服务,专注于olap系统数据引擎开发;
2) 海量并行处理(massively parallel processing) dbms:
greenplum的架构采用了mpp(大规模并行处理),在 mpp 系统中,每个 smp节点也可以运行自己的操作系统、数据库等。换言之,每个节点内的 cpu 不能访问另一个节点的内存。节点之间的信息交互是通过节点互联网络实现的,这个过程一般称为数据重分配(data redistribution) 。
smp(symmetricmulti-processing),对称多处理结构的简称,是指在一个计算机上汇集了一组处理器(多cpu),各cpu之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源。传统的oracle和db2均是此种类型,oracle rac 是半共享状态;
与传统的smp架构明显不同,通常情况下,mpp系统因为要在不同处理单元之间传送信息,所以它的效率要比smp要差一点,但是这也不是绝对的,因为 mpp系统不共享资源,因此对它而言,资源比smp要多,当需要处理的事务达到一定规模时,mpp的效率要比smp好。这就是看通信时间占用计算时间的比例而定,如果通信时间比较多,那mpp系统就不占优势了,相反,如果通信时间比较少,那mpp系统可以充分发挥资源的优势,达到高效率。
3) 基于postgresql 8.2开源版本,具有相同的客户端功能,增加支持并行处理的技术,增加支持数据仓库和bi的特性;
4) 外部表(external tables)/并行加载(parallel loading):外部表是指数据库可以直接使用操作系统中的数据文件,在greenplum 4.2版本中支持对外部表的读写操作;
5) 资源管理:基于postgresql增加了并行度的处理;
6) 查询优化器增强(query optimizer enhancements):增加对分布式的支持,空间的回收和分析,不需要进行多方面的调优。
1.2. greenplum 体系架构
图一
greenplum是一种基于prostgresql的分布式数据库,其采用shared-nothing架构、主机、操作系统、内存、存储都是自我控制的,不存在共享。
补充:shareddisk与shared nothing介绍
图二
图三
比较事项
概述
优点
缺点
使用场景
shared disk
如图二所示,所有节点共享一份数据
只要有一个节点就可以访问所有数据
内存融合限制水平扩展能力
oracle rac,24*7的高可用性核心业务
shared nothing
如图三所示,数据和节点有一一对应关系
每个节点交互少,很容易扩展
如果需要访问所有数据,需要所有节点都可用
sql server、db2、hadoop以及greenplum
1.2.1.master host1) 建立与客户端的会话连接和管理;
2) sql的解析并形成分布式的执行计划;
3) 将生成好的执行计划分发到每个segment上执行;
4) 收集segment的执行结果;
5) 不存储业务数据,只存储数据字典;
6) 可以一主一备,分布在两台机器上,为了提高性能,最好单独占用一台机器。
1.2.2.segment host1) 业务数据的存储和存取;
2) 执行由master分发的sql语句;
3) 对于master来说,每个segment都是对等的,负责对应数据的存储和计算;
4) 每一台机器上可以配置一到多个segment,因此建议采用相同的机器配置。
1.2.3.interconnect1) 是gp数据库的网络层,在每个segment中起到一个ipc作用;
2) 推荐使用千兆以太网交换机做interconnect;
3) 支持udp和tcp两种协议,推荐使用udp协议,因为其高可靠性、高性能以及可扩展性;而tcp协议最高只能使用1000个segment实例。
1.3.网络配置示例
图四
图四显示一个常见的网络配置示例,其中x4200是主节点,x4500(segment host1)是主从节点,当主节点宕机后会主节点服务切换到此节点上,x4500(segment host2)是从节点。
每个网络接口对应不同的网口,隔离到独立网络,保证不会竞争其他端口的网络带宽,提高网络的可靠性;串口连接到交换机是管理员管理的窗口。
1.4.greenplum 高可用性体系架构
图五
图五中显示高可用性体系的示例图,其中按照从左到右且从上到下依次是主从节点,主节点,客户端,私有局域网以及从节点集群,实现功能和图一基本一致。
1.5.master/standby 镜像保护
图六
图六说明:standby 节点用于当 master 节点损坏时提供 master服务,standby 实时与master 节点的catalog 和事务日志保持同步,确保系统的变更信息不会丢失,提升系统的健壮性。
1.6.数据冗余-segment 镜像保护
图七
图七说明:
1) 当gp配置了镜像节点之后,主节点不可用时会自动切换到镜像节点,集群仍然保持可用状态。当主节点恢复并启动之后,主节点会自动恢复期间的变更;
2) 只要master不能连接上segment实例时,就会在系统表中将此实例标识为不可用,并用镜像节点来代替,一般需要和主节点位于不同的服务器上,当primary segment失败时,mirror segment将自动提供服务,primary segment恢复正常后,使用gprecoverseg –f 同步数据
1.7.segment 主机硬件配置示例
图八
1.8.网络冗余
图九
图九说明:
1) 数据之间存在冗余,网络也存在冗余;
2) 公共网络连接到主节点,主节点通过一台或者多台交换机连接到子节点。