Greenplum架构学习讲解
- 1 什么是Greenplum
- 2 Greenplum 体系架构
-
- 2.1 Greenplum Master
- 2.2 Greenplum Segment
- 2.3 网络配置示例
- 3 Greenplum 高可用性体系架构
-
- 3.1 Master/Standby 镜像保护
- 3.2 数据冗余-Segment 镜像保护
- 3.3 网络冗余
- 4 Greenplum 应用场景
- 5 数据分布
-
- 5.1 数据库分布键分布数据策略
- 5.11 HASH策略
- 5.12 随机分布
- 5.13 master主节点获取segment节点上的数据顺序
1 什么是Greenplum
Greenplum,该公司成立于2003年,2006年推出了首款产品,其主营业务关注在数据仓库和商业智能方面,Greenplum DW/BI软件可以在虚拟化x86服务器上运行无分享(shared-nothing)的大规模并行处理(MPP)架构 。
Greenplum是基于 PostgreSQL 8.2开发的,与PostgreSQL 8.2有相同的客户端功能(Pgadmin III支持Greenplum,但是PGadmin VI则不能连接到Greenplum),在PostgreSQL 8.2上增加支持并行处理的技术,增加支持数据仓库和BI的特性,外部表(external tables)/并行加载(parallel loading),资源管理,查询优化器增强(query optimizer enhancements)
Greenplum(以下简称GPDB)是一款开源数据仓库,基于开源的PostgreSQL改造而来,主要用来处理大规模数据分析任务。相比Hadoop,Greenplum更适合做大数据的存储、计算和分析引擎。
GPDB是典型的Master/Slave架构,在Greenplum集群中,存在一个Master节点和多个Segment节点,每个节点上可以运行多个数据库。Greenplum采用shared nothing架构(MPP),典型的Shared Nothing系统汇集了数据库、内存Cache等存储状态的信息,不在节点上保存状态的信息。节点之间的信息交互都是通过节点互联网络实现的。通过将数据分布到多个节点上来实现规模数据的存储,再通过并行查询处理来提高查询性能。每个节点仅查询自己的数据,所得到的结果再经过主节点处理得到最终结果。通过增加节点数目达到系统线性扩展。
2 Greenplum 体系架构
图3 Segment负责业务数据的存取 每个Segment的数据冗余存放在另一个Segment上,数据实时同步,当Primary Segment失效时,Mirror Segment将自动提供服务。当Primary Segment恢复正常后,可以很方便地使用gprecoverseg -F工具来同步数据。
2.3 网络配置示例
Standby 节点用于当 Master 节点损坏时提供 Master 服务 Standby 实时与 Master 节点的 Catalog 和事务日志保持同步 每个Segment的数据冗余存放在另一个Segment上,数据实时同步 当Primary Segment失败时,Mirror Segment将自动提供服务 Primary Segment恢复正常后,使用gprecoverseg –F 同步数据。
3.1 Master/Standby 镜像保护
每个 Segment 的数据冗余存放在另一个 Segment 上,数据实时同步
当 Primary Segment 失败时,Mirror Segment 将自动提供服务
Primary Segment 恢复正常后,使用 gprecoverseg –F 同步数据。
Segment 主机硬件配置示例
4 Greenplum 应用场景
Greenplum数据引擎是为新一代数据仓库和大规模分析处理而建立的软件解决方案,其最大的特点是不需要高端的硬件支持仍然可以支撑大规模的高性能数据仓库和商业智能査询。在数据仓库、商业智能的应用上,尤其在海量数据的处理方面Greenplum表现出极其优异的性能。
传统数据库侧重交易处理,关注的是多用户的同时的双向操作,在保障即时性的要求下,系统通过内存来处理数据的分配、读写等操作,存在IO瓶颈。而分析型数据库是以实时多维分析技术作为基础,对数据进行多角度的模拟和归纳,从而得出数据中所包含的信息和知识。Greenplum虽然是关系型数据库产品,但是它具有査询速度快、数据装载速度快、 批量DML处理快的主要特点,而且性能可以随着硬件的添加呈线性增加,拥有非常良好的可扩展性。因此,Greenplum主要适用于面向分析的应用,比如构建企业级ODS/EDW、数据集市等。
5 数据分布
5.1 数据库分布键分布数据策略
由于greenplum数据库是个分布式数据库,数据分布在每一个segment节点上,其中数据的分布策略有两种分别是hash分布于随机分布。
5.11 HASH策略
Hash分布是利用Distributed by (filed1,filed2…) 做为数据分布的条件,计算hash值,并通过hash值路由到制定的segment上,如果不指定分布键,默认的是获取第一个字段作为分布键。在字段作为分布键时,该字段的值尽量是唯一的,这样才能分布的均匀,效率会更高,否则会降低数据库的想能。
5.12 随机分布
随机分布也叫平均分布。数据会随机的落在每一个segment节点上,不管数据内容是什么格式都会落到segment上,在SQL查询数据,数据会重新分布,性能会比较差,随机分布的用法为Distributed randomly;
5.13 master主节点获取segment节点上的数据顺序
Master在执行sql语句时由于数据切分放在每个segment上,master获取结果的顺序是segment提交的顺序,segment提交到master的顺序是随机的,就会导致一样的数据每次的查询结果顺序不一致,这也是与其他的数据不一样的地方。
来源:Jin诚
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!