Greenplum(一) 基本特性 Master Segment

参考:https://blog.csdn.net/weixin_33754913/article/details/85830010

1.介绍

  Greenplum的高性能得益于其良好的体系结构。Greenplum的架构采用了MPP(大规模并行处理)。Greenplum是一种基于PostgreSQL的分布式数据库,其采用的Shared-Nothing架构(MPP),主机、操作系统、内存、存储都是自我控制的,不存在共享。
 
 

2.基本特性

  • GPDB既支持行存,也支持列存。还为不需更新的数据存储和处理进行了专门的优化。
  • 支持多种压缩方法,包括QuickLZ (商业版本),Zlib,RLE 等。 
  • 支持多级分区表,分区支持多种模式,包括范围,列表等。 
  • 支持B树、bitmap位图和GiST 等索引。
  • 认证机制支持多种方式,包括LDAP和Kerberos等。
  • 扩展语言支持:GPDB 支持使用多种流行语言实现用户自定义函数,包括 Python,R,Java,Perl,C/C++ 等。 
  • 地理信息处理:通过集成PostGIS,GPDB支持对地理信息进行存储和分析。 
  • 内建数据挖掘算法库:通过MADLib(现在是Apache孵化项目)算法库,可以内建几十种常见的数据分析和挖掘算法到GPDB数据库中,包括逻辑回归,决策树,随机森林等。不需要写任何算法代码,通过SQL就可以使用其中的所有算法。 
  • 文本检索:通过GPText扩展,GPDB可以支持高效灵活丰富的全文检索功能。与 MADLib 合用,可以进行并行文本分析和挖掘。
 

3.Master介绍

  • Master服务器是外面用户访问greenplum的入口。用户都是连接master服务器的,对于外部用户来说,并不与segment host服务器发生任何关系,外部用户的网络只需要与master服务器连通就可以了,不需要访问segment host服务器。 
  • Greenplum数据库是基于PostgreSQL数据库的,所以可以用PostgreSQL数据库的工具来连接Greenplum数据库,如java程序可以使用PostgreSQL的jdbc驱动来访问Greenplum数据库,也可以使用psql工具或pgadminII来管理Greenplum。 
  • Greenplum的Master数据库也是一个被改造过的PostgreSQL数据库,它包含了整个分布式数据库中的所有元数据,如表结构定义、索引,数据分布信息等等。但其并不存储实际的数据,实际的数据是存储在segment 数据库的。 
  • Master节点接收用户发过来的sql命令,然后解析生成分布式的执行计划,再把执行计划下发到对应的segment节点进行执行。Segment节点执行完的结果会发送到master上,master接收到segment的结果进行汇总并返回执行结果给用户。所以在这种master-slave结构中,master不会成为系统的瓶颈。  

4.Segment介绍

  • Greenplum的节点上可以运行多个segment instance,每个instance可以绑定到一个网卡,这样可以发挥cpu和网络性能。
  • 系统的数据都分布式的存储在segment上。 
  • 每个segment同时执行master分发的任务,在执行查询任务或者数据加载的时候可能会涉及数据的移动。在进行数据移动的时候master不参与进来只是segment之间进行。 
  • Segment可以动态扩展,既可以在原有主机上进行增加segment instance的操作,又可以新增主机来增加segment。当扩展segment后,系统里面的数据会进行重分布操作,这个动作消耗时间会比较多。
 

5.高可用方案

  • Greenplum的高可用性是通过master和segment的镜像来实现的,镜像是基于服务器级别的所以能提供比较好的安全保证。 
  • Master节点不能和segment节点安装在同一个主机上,standby节点可以和segment节点复用。 
  • Master宕机的话standby master不会自动切换到master,需要手动切换到主设备。Segment如果一个节点坏掉,系统可以自动将mirror切换到primary。 
  • 当segment中某台设备出现故障后,mirror会切换成primary。检查出故障的主机恢复后可以使用gprecoverseg命令恢复成之前的主备关系。
 

6.GreenPlum与PostgreSQL的区别

  • GreenPlum采用分布式架构,为了实现各个几点并行计算能力,需要在节点间进行广播或者数据重分布,对整体的性能有一定影响,当数据量较小时,计算量小,广播或者重分布耗时占总耗时比例大,影响整体的执行效率,可能会出现GreenPlum不如单机版PostgreSQL效率高。
  • 单批量插入慢的原因,因为是分布式,每条数据进来根据分布键需要存放到不同的Segment上,插入性能不是瓶颈,而是两台服务器数据交互
 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值