这段时间开始接触 Greenplum, 以前对 Greenplum 闻所未闻,首先很庆幸自己有这个机会了解,并认识它, 这篇文章主要对 Greenplum 做下简单的介绍。
1 Greenplum 简介
GreenPlum数据库是基于 PostgreSQL 基础上开发,具有巨大的并行处理能力的数据仓库,MPP( massively parallel processing )是 Greenplum的主要特性, MPP是指服务器上拥有两个或者以上的处理节点,并且多个处理节点可以并行,协同的工作来完成一个计算, 这些处理节点拥有独自的内存,操作系统和硬盘, 处理节点可以理解成为一台物理主机。Greenplum 会分发 TB 及以上的数据到所有的子节点,并且当在Greenplum上执行查询时,所有的子节点能够利用各自的资源来并发地执行这个查询。
Greenplum 实际上是由一组 PostgreSQL 数据库组合而成的强大数据仓库, Greenplum基于PostgreSQL 8.2.14 开发, 并且在多数据情况下和 PostgreSQL 非常相似,以至于用户可以像是在使 用PostgreSQL 一样来使用Greenplum。
2 Greenplum 体系结构
GreenPlum可以将数据按一定算法全部分发到所有 segment Host上,因而能够处理大量的数据请求。Greenplum的系统结构实际上是多台 PostgreSQL 数据库服务器组成的矩阵,Greenplum分两部分,Master 主机和 Segments 主机,master主机是Greenplum的入口,客户端,终端用户连接Master来执行 sql。当用户在 Master 节点上执行查询SQL时,MASTER会将 SQL,以及SQL PLAN分发到所有 segments 节点, segments 处理好后,将数据发回 Master 节点, 如下图。
2.1 Greenplum 的 Master 节点
Master 节点是访问 Greenplum的入口, 用于处理客户端的连接,和 SQL命令请求,用户可以使用psql,或者应用程序接口来连接 Master, 例如 JDBC,ODBC接口。Master 节点仅存储 Greenplum的系统数据,而不存储用户数据,相反,用户数据存在所有的 Segments 节点上,Master 负责以下工作:处理客户端的连接请求,处理客户端发出的SQL命令,将SQL命令分发到所有Segments 节点,协调所有节点处理的结果数据,并将这些数据展现给终端用
户。
2.2 Greenplum 的 Segment 节点
在Greenplum中, Segments存诸用户的数据,并且负责处理Master 分发出的SQL请求任务,用户定义的表和索引按一定算法分发到所有的 segments节点,每个节点含有独立的一部分数据,用户不 需要直接和 segments 交互,相反,只需通过和 Master 节点交互。 一般地,建议一个CPU上跑一个活跃的 segments。
3 Greenplum的镜像备份功能
3.1 关于 Segments节点的镜像
搭建Greenplum时,为了保证系统的高可用性,可以给每个 Segment 搭建 Mirror Segment,当Primary Segment 不可用时, Mirror Segment可以failoer 接替工作。Mirror Segment(镜像节 点)通常和Primary Segment 分布在不同的主机上,详见下图。
3.2 关于 Master 节点的镜像
搭建Greenplum时,也可以配置一个 Master 的镜像,称作 Master Standby, Standby Master通过WAL日志复制来同步数据,如果 Master 不可用,日志复制进程则会中断,并且 Standby Master 可以接替工作,同时,最近一次复制过来的WAL日志状态会变化来标记最近一次事务提交的时刻。
由于 Master 不存储用户数据,所以Master Standby 只需要同步 Master 系统表数据,这些数据不会非常频繁地改变,当 Master 节点数据变化时,这些变化会自动地应用到 Master Standby节点上。 从而使得 Master Standby 数据 始终和 Master 保持一致。
4总结
在了解了以上 Greenplum 基础知识之后,应该对 Greenplum 有了大概的了解,后续还会有相关的文章介绍 Greenplum。
原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/236387.html