Greenplum数据库


Greenplum数据库的架构,它是一种大规模并行处理(MPP)数据库服务器,专为管理大规模分析型数据仓库和商业智能工作负载设计,基于PostgreSQL开源技术开发。

  1. 架构特点:采用shared nothing架构(MPP),多个处理器协同工作,各有独立内存、操作系统和磁盘,能并行处理查询。基于PostgreSQL 9.4开发,与PostgreSQL在SQL支持等方面相似,但也有诸多差异,如可利用GPORCA查询规划、支持追加优化存储和列式存储等。
  2. 存储格式:支持追加优化(AO)存储格式,提供数据保护、压缩和校验和等功能,行式或列式AO表都可压缩。列式存储逻辑上是表,但物理上按列存储,只能与AO表一起使用,可压缩,在查询部分列时性能更好,且行程编码(RLE)压缩仅用于列式存储表。
  3. 组件介绍
    • Master:是数据库系统入口,接受连接和查询并分发工作到Segment实例。保存全局系统目录元数据,不存储用户数据。负责认证客户端连接、处理SQL命令、负载分发、结果协调与呈现。通过预写式日志(WAL)实现主/备镜像,但Segment镜像暂不支持WAL日志。
    • Segment:是独立的PostgreSQL数据库,存储部分数据并承担主要查询处理工作。用户表和索引分布在多个Segment上,其数据库服务器进程运行在Segment实例下,用户通过Master与之交互。Segment运行在Segment主机上,一台主机通常运行2 - 8个Segment,需保证数据和工作负载在多个能力相同的Segment间平均分布以获取最佳性能。
    • Interconnect:是数据库架构的网络层,负责Segment之间的进程间通信及依赖的网络基础设施。默认采用标准以太交换网络,推荐万兆网或更快系统。默认使用带流控制的用户数据包协议(UDPIFC),在UDP上执行包验证,可靠性等效于TCP且性能和扩展性更优。若改为TCP,Segment实例可扩展性限制为1000个,UDPIFC则无此限制。

greenplum