GreenPlum系列-1-概述

一、概述

Greenplum数据库是一种面向数据仓库应用关系型 MPP( 大规模并行处理)数据库系统,基于PostgreSQL数据库开发。在数据存储、高并发、高可用、线性扩展、易用性等方面有明显的优势。

二、架构

1、数据库架构

2、组成

从上图了解到GP数据库包含以下三个组件:

Master:整个GP数据库系统的入口,接收连接和SQL查询,并把具体工作分配给Segment实例。维护和管理全局系统目录,即管理和维护GP数据库本身的元数据的系统表,不包含任何用户数据。通过预写日志(WAL)即所有的修改都会优先记录到WAL中,以确保数据的完整性,同时实现主、备镜像。

Segment:独立的PostgreSQL数据库,负责存储用户数据的一部分以及执行查询处理。用户通过master与GP数据中的segment交互。

Interconnect:是GP数据库架构中的网络层,负责Segment之间的进程间通信,以及查询处理在执行器节点之间的数据交换。默认使用udpifc 协议(基于UDP协议,增加ACK、重传等机制实现可靠有序的数据传输)(为什么使用UDP协议而不使用TCP协议?  UDP端口占用少,可以很好的支持大规模并行处理,并且UDP性能比TCP高。有兴趣可以深入了解TCP/UDP)

3、与PostgreSQL区别

GP基于PG开发,将PG的节点转化成集群,从下图可以直观的看出运行在master、segment节点上的实例是一个个PostgreSQL数据库。单点到集群的转换不单单是节点的扩展,会涉及到 数据分布、查询计划并行、执行并行、分布式事务等方面的设计和优化。

GP继承了PG的优势,包括多版本并发控制(MVCC)、细粒度访问控制、嵌套事务、完善的查询规划器和优化器、预写式日志等。在此基础上又增加了大量其他功能,包括AO表、列存表、外部表、多级分区表、资源管理器、查询优化器、故障检测及恢复、高可用等。

虽然GP是基于PG,但是两者间的定位是不同的。PG定位是通用型OLTP数据库,而GP是OLAP数据库。 

三、其他概念补充

MVCC:多版本并发控制,通过维护多个不同的版本,读写操作作用于不同的版本,实现并发执行以及读写互斥的问题。为保证用户拿到的是最新的版本数据,PG为每个事务分配一个事务ID(xid),通过判断当前活跃事务中最小的ID, 以及提交事务中最大的ID,从而决定事务是否可见。具体后续会单独列出讲解。

查询调度器(QD):Master节点上负责处理用户查询请求的进程。

查询执行器(QE):Segment节点上负责执行QD分发来的查询任务的进程。

        QD通过libpg(TCP)与各个QE之间传输控制信息,包括发送查询计划、收集错误信息、处理取消操作等。另外QD与QE 以及QE之间的表元组数据传输是通过Interconnect实现的,默认使用UDP协议(三种协议可选 TCP、UDP、Proxy)。

执行算子Motion:解决PG的查询计划只能在单点上运行问题,GP引入执行算子,实现数据在不同节点点传输,从而达到查询计划的并行化目的。

堆表:GP的默认存储方式,支持高效的更新和删除操作,访问多列时速度快,通常用于OLTP型查询。

追加优化表:AO表,为列表,具有较好的压缩性,支持不同的压缩算法,适合访问较少的列的查询场景。

四、参考

https://gp-docs-cn.github.io/docs/admin_guide/admin_guide.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GreenPlum6官方文档中文翻译,如下为节选: 有关配置,管理和监控Greenplum数据库安装以及管理,监控和使用数 据库的信息。该指南还包含有关Greenplum数据库架构和概念(例如 并行处理)的信息。 Greenplum数据库概念 这一节给出了Greenplum数据库组件和特性的概述,例如高可用 性、并行数据装载特性以及管理工具。 管理一个Greenplum系统 这一节描述了一个Greenplum数据库系统管理员所执行的基本系统 管理任务。 管理Greenplum数据库访问 保护Greenplum数据库,包括通过网络配置、数据库用户身份验 证、加密来保护对数据库的访问。 定义数据库对象 这一节包括Greenplum数据库中的数据定义语言(DDL)以及如何 创建和管理数据库对象。 分布与倾斜 Greenplum数据库依赖于跨节点的均匀数据分布。 插入, 更新, 和删除数据 这一节提供了Greenplum数据库中有关操纵数据和并发访问的信 息。 查询数据 本主题提供在Greenplum数据库中使用SQL的信息。 使用外部数据 外部表和外表都可以访问存储在Greenplum数据库之外的数据源中 的数据,就好像数据存储在常规数据库表中一样。您可以从外部表 和外表读取和写入数据。 装载和卸载数据 这一节中的主题描述了Greenplum数据库中将数据装载进来和写出 去的方法,以及如何格式化数据文件。 性能管理 这一节的内容是Greenplum数据库的性能管理,其中包含了如何监 控,以及如何通过配置工作量来进行资源调用的优先级管理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值