Greenplum介绍

0    128    1

Tags:

👉 本文共约22202个字,系统预计阅读时间或需84分钟。

简介

Greenplum是一款开源的大数据分析平台,由Pivotal Software公司开发(现在是VMware的一部分)。它使用开源的PostgreSQL作为其基础,采用MPP架构(Massive Parallel Processing,海量并行处理)开发,具有分布式数据库的特性,可以扩展到数百个节点。Greenplum支持SQL和PL/pgSQL,以及许多其他编程语言,包括Java和Python等。

Greenplum 是全球领先的开源、多云大数据分析平台,被广泛运用于大规模商业智能和分析中,具有极高的稳定性。随着2019年6版本的发布,其 OLTP 性能大幅提升,成为了一款真正的 HTAP 数据库。

GreenPlum作为大数据融合存储平台中众多数据库之一,与其他数据库系统和文件系统一起,为OceanMind提供完整的OceanStorage大数据融合存储解决方案。

Greenplum数据库是基于PostgreSQL开源技术的。它本质上是多个PostgreSQL面向磁盘的数据库实例一起工作形成的一个紧密结合的数据库管理系统(DBMS)。 GP 6.0版本基于PostgreSQL 9.4开发,其SQL支持、特性、配置选项和最终用户功能在大部分情况下和PostgreSQL非常相似。 与Greenplum数据库交互的数据库用户会感觉在使用一个常规的PostgreSQL DBMS。

GPDB和PG的区别

Greenplum数据库和PostgreSQL的主要区别在于:

  • 在基于Postgres查询规划器的常规查询规划器之外,可以利用GPORCA进行查询规划。
  • Greenplum数据库可以使用追加优化的存储。
  • Greenplum数据库可以选用列式存储,数据在逻辑上还是组织成一个表,但其中的行和列在物理上是存储在一种面向列的格式中,而不是存储成行。 列式存储只能和追加优化表一起使用。列式存储是可压缩的。当用户只需要返回感兴趣的列时,列式存储可以提供更好的性能。 所有的压缩算法都可以用在行式或者列式存储的表上,但是行程编码(RLE)压缩只能用于列式存储的表。Greenplum数据库在所有使用列式存储的追加优化表上都提供了压缩。

文档

文档:http://docs-cn.greenplum.org/v6/admin_guide/intro/arch_overview.html

https://www.bookstack.cn/read/greenplum-admin_guide-6.0-zh/9ccd913ea8be24b9.md

github:https://github.com/greenplum-db/gpdb/releases

历史

以下是Greenplum数据库的主要版本发布历史:

除此之外,Greenplum还有一些更新和维护版本,包括Greenplum 4.2.7.1、Greenplum 4.3.12.1等,这些版本都是基于先前版本的修改和改进,以提高性能和可用性。

Greenplum介绍

Greenplum介绍

Greenplum 数据库的特点

Greenplum具有以下特点:

  1. 并行化:Greenplum通过将数据分散在多个节点上,以及通过分区和并行执行查询等技术来实现高效的数据处理和分析。
  2. 扩展性:Greenplum可以通过增加节点数量来扩展其容量和性能,同时也支持动态负载平衡。
  3. 安全性:Greenplum提供了丰富的安全功能,包括数据加密、用户认证、访问控制和审计等。
  4. 多样化的数据类型和格式:Greenplum支持多种数据类型和格式,包括结构化数据、半结构化数据和非结构化数据等。
  5. 分析能力:Greenplum支持各种数据分析和机器学习技术,包括基于SQL的查询和聚合、基于Python的自定义函数和外部表等。

Greenplum可以在企业内部部署,也可以在云环境中使用。它被广泛应用于各种场景,包括数据仓库、商业智能、金融分析、物联网和机器学习等领域。

本节简单介绍 Greenplum 具备的特性。

  1. 开放源代码
    Greenplum 数据库于 2015 年由 Pivotal 公司开源,遵循 Apache Licence 2.0 协议,官方网站为 http://greenplum.org。代码托管在 GitHub 上,链接为 https://github.com/greenplum-db/gpdb 。开放源码一方面可以为数据库用户和开发人员提供 Greenplum 数据库源码级的实现参考,另一方面可以吸引更多的数据库开发者参与到 Greenplum 社区维护中。
  2. 高扩展性
    Greenplum 数据库采用大规模无共享架构,将多台服务器组装成强大的计算平台,实现高效的海量并行运算。Greenplum 数据库可以支持 1000 个以上的集群,管理的数据规模从 TB 级到 PB 级,可以满足多数企业的数据处理需求。
  3. 高查询性能
    Greenplum 的高性能不仅来自高效的并行处理框架,还有查询引擎的优化。Greenplum数据库除了支持基于 PostgreSQL 的查询优化之外,还专门开发了一个新的查询优化器ORCA。ORCA 是一款自顶向下的基于 Cascades 框架的查询优化器,目前已经成为企业版Greenplum 数据库的默认优化器。相比基于 PostgreSQL 的查询优化器,ORCA 查询优化器能使部分查询的性能提升 10 ~ 1000 倍。
  4. 高可用
    Greenplum 提供多级容错机制,确保整个系统的高可用性。Master 节点通过 Standby Master 节点进行备份,每个数据节点的 Primary Segment 实例分别配置一个 Mirror Segment
    实例作为备份,同时确保同一组 Primary Segment 实例和 Mirror Segment 实例不在同一物理机上,从而降低因为宕机而导致数据丢失的风险。
  5. 高效资源管理
    Greenplum 提供了高效的资源管理机制,根据用户的业务逻辑将资源合理地分配给查询任务,避免查询任务因查询资源不足而得不到响应。Greenplum 资源管理主要包括对并发
    查询数量的限制,查询执行时内存、CPU 资源使用的限制等。Greenplum 数据库提供了资源队列(Resource Queue)和资源组(Resource Group)两种资源管理方式,一般使用场景下
    采用默认配置即可。
  6. 多态存储
    用户可以根据数据热度或者访问模式的不同使用不同的存储方式,以获得更好的查询性能。用户可以为一张表按照一定的规则(比如日期、月份)创建分区表,一张表的各个子分区表可以使用不同的物理存储方式。支持的存储方式包括:行存储,数据以行的形式存储在数据页里,适合频繁更新的查询;列存储,数据以列的形式存储在数据页里,适合OLAP 分析型查询;外部表,数据保存在其他文件系中,如 HDFS、S3,数据库只保留元数据信息。
  7. 生态完整
    Greenplum 数据库拥有完善的 SQL 标准支持,包括 SQL92、SQL99、SQL2003 以及OLAP 扩展,是对 SQL 标准支持最好的开源商用数据库系统之一。同时,由于 Greenplum数据库基于 PostgreSQL,因此也继承了 PostgreSQL 对于 JDBC、ODBC、C、Python API等接口的支持。
  8. 高效数据加载
    Greenplum 还有一个非常神奇的功能—GPload 并行加载数据,即允许数据从多个文件系统通过多个主机上的多个网卡加载数据,从而达到非常高的数据传输率。笔者曾经在3 个节点的集群上并行加载 50GB、2 亿行记录的数据,仅用时 90s。此外,Greenplum 数据库可以读取和写入多种类型的外部数据源,包括文本文件、XML 文件、S3 平台文件、Gemfire、Web 服务器以及 Hadoop 生态系统中的 HDFS、Hive、HBase、Kafka、Spark 等,同时支持数据压缩以及字符集间的自动转换。
  9. 高级数据分析功能
    Greenplum 数据库支持各种过程化编程语言,包括 PL/PostgreSQL、PL/R、PL/Python、PL/Java、PL/Perl 等语言扩展。在高级数据分析方面,通过 Greenplum 数据库的 MADlib 扩展模块,用户可以很方便地利用 MPP 架构完成大规模并行分析。
  10. 良好的监控管理和运维体验
    Greenplum 数据库提供基于 Web 的可视化工具—Greenplum Command Center(简称GPCC)。GPCC 可以监控 Greenplum 数据库系统的性能、集群健康状态、查询执行及系统资源使用情况,如图 2-4 所示。Greenplum介绍

Greenplum 的优势

首先,与传统数据库相比,Greenplum 作为分布式数据库,本身具有高性能优势。对各行各业来说,OLTP 系统最重要的是在保证 ACID 事务管理属性的前提下满足业务的并发需求,对于大多数非核心应用场景,MySQL、SQL Server、DB2、Oracle 都可以满足系统要求,并且随着 MySQL 性能的优化和云原生数据库的发展,基于 MySQL 或者 PostgreSQL 商业化的数据库会越来越普及。数据中台的定位是一个 OLAP 系统,上述数据库就很难满足海量数据并发查询的要求了。上述数据库的横向扩展能力有限,并且软硬件成本高昂,不适合作为 OLAP 系统的数据库。Greenplum 作为一款基于 MPP 架构的数据库,具有开源、易于扩展、高查询性能的特点,性价比碾压 DB2、Oracle、Teradata 等传统数据库。

其次,Greenplum 作为分布式数据库,和同为分布式数据库的 Hive 相比,优势也非常明显。早期 Hadoop 的无模式数据已经让开发者饱受痛苦,后面兴起的 Hive、Presto、Spark SQL 虽然支持简单的 SQL,但是查询性能仍然是分钟级别的,很难满足 OLAP 的实时分析需求。后期虽有 Impala+Kudu,但是查询性能仍然弱于同为 MPP 架构的 Greenplum。除此之外,Hadoop 生态圈非常复杂,安装和维护的工作量都很大,没有专业的运维团队很难支撑系统运行。而 Greenplum 支持的 SQL 标准最全面,查询性能在毫秒级,不仅能很好地支持数据 ETL 处理和 OLAP 查询,还支持增删改等操作,是一款综合实力非常强的数据库。相对于 Hadoop 多个组件组成的庞大系统,Greenplum 数据库在易用性、可靠性、稳定性、开发效率等方面都有非常明显的优势。

最后,Greenplum 作为 MPP 数据库中的一员,相对于其他 MPP 架构数据库,也具有非常明显的优势。Greenplum 研发历史长、应用范围广、开源稳定、生态系统完善。生态系统完善是指 Greenplum 的工具箱非常多:GPload 可满足高速加载需求,PXF 可满足外置表

和文件存储需求,MADlib 可满足数据挖掘需求,GPCC 可满足系统监控运维需求。相对于TiDB、TBase、GaussDB 等新兴数据库来说,Greenplum 的应用案例最多,生态系统最完善,并且 Bug 更少。同时,TiDB、TBase、GaussDB 等数据库都定位于优先满足 OLTP 的同时提高 OLAP 的性能,而 Greenplum 是以 OLAP 优先的。虽然前者也有优势,但是将 OLAP和 OLTP 合并实现起来存在以下困难:数据分布在不同的系统已经是行业现实,没有办法将数据集中到同一个数据库;数据中台天然就是一个 OLAP 系统,没有办法按照 OLTP 模式设计。综上,作为分布式关系型数据库,Greenplum 是搭建数据中台的首选数据库。

图 2-5 是阿里巴巴大数据平台进化历程。2010 年前后,阿里巴巴曾经使用 Greenplum来替换 Oracle 集群,将其作为数据分析平台。从数量上说,Greenplum 在 2010 年实现了 Oracle 10 倍数据量的管理,即 1000TB。但 Oracle 的架构这些年没有太大变化,而Greenplum 数据库已有翻天覆地的革新。在阿里巴巴应用的时代,Greenplum 还是 EMC 旗下的商用数据库,平台尚在发育期,功能也不太完善。而如今的 Greenplum 已经是社区开源的产品,内核 PostgreSQL 也已完成了多个版本的升级迭代,现在更是轻轻松松支持上千台服务器的集群,因此承载 PB 级的数据自不在话下。

Greenplum介绍

对于大多数有构建数据中台需求的企业,1000TB 已经是一个无法企及的高度。大多数据企业的数据都在数 TB 到 100TB 的范围内,这个规模的数据正是 Greenplum 的主要战场。100TB 以下规模的数据仓库或者数据中台,Hive 发挥不了架构上的优势,反而影响开发速度和运维工作,实在是得不偿失。
在查询性能方面,Greenplum 自然不是第一,虽然业界尚无定论,但是据笔者了解,目前 ClickHouse 是当之无愧的 OLAP 冠军。相对于 ClickHouse,Greenplum 胜在高性能的GPload 插件、强大的 ETL 功能、不算太弱的增删改性能。目前,数据中台在稳步向实时流处理迈进,由于不擅长单条更新和删除,因此 ClickHouse 只适合执行离线数据查询任务,可以作为超大规模数据中台的 OLAP 查询引擎。

综上所述,虽然 Greenplum 某些方面不是最优秀的,但仍是最适合搭建数据中台的分布式数据平台,并且以 Greenplum 现有的性能和管理的数据规模,可以满足绝大多数中小企业的数据中台需求。

内核版本

GPDB 4.3.1 PostgreSQL 8.2

GPDB 5.9.0 PostgreSQL 8.3.23

GPDB 6.13.0 PostgreSQL 9.4.24

GPDB 6.23.0 PostgreSQL 9.4.26

GPDB 6.25.0 PostgreSQL 9.4.26

GPDB 6.25.3 PostgreSQL 9.4.26

GPDB 7.0.0 PostgreSQL 12.12 2023.09.29发布

Pivotal Greenplum 和开源版本的GreenPlum的区别

Pivotal Greenplum和开源版本的Greenplum之间的区别主要在许可证和支持方面。

Greenplum是一个开源的大数据分析平台,提供了一个基于PostgreSQL的高度并行的SQL数据库引擎,用于处理大规模数据集。

Pivotal Greenplum是由Pivotal Software公司(现在是VMware的一部分)开发的商业版本,基于开源Greenplum的代码,并提供了额外的功能、支持和服务。

以下是Pivotal Greenplum和开源Greenplum之间的主要区别:

  1. 许可证:开源Greenplum使用Apache许可证,可以免费下载和使用。Pivotal Greenplum则使用了商业许可证,需要付费许可才能使用。
  2. 支持:Pivotal Greenplum提供了商业支持和服务,包括技术支持、培训、咨询和专业服务。开源Greenplum则是由社区维护,提供了免费的社区支持,但是没有商业支持。
  3. 功能:Pivotal Greenplum提供了许多高级功能,包括更高级的安全性、更好的性能和更丰富的管理功能。而开源Greenplum只提供了基本功能。
  4. 发行周期:Pivotal Greenplum的发行周期比开源Greenplum更加稳定。Pivotal公司定期发布新版本,并提供长期支持,而开源Greenplum则由社区开发者在不同时间进行更新。

总的来说,Pivotal Greenplum提供了更高级的功能和商业支持,但需要付费使用。开源Greenplum则是一个完全免费的选项,但可能需要更多的自行配置和支持。

商业版

基于开源的Greenplum数据库,目前主要有以下几个商业版本:

  1. Pivotal Greenplum(现在是VMware的一部分):Pivotal Greenplum是Greenplum Database的商业版本,由Pivotal Software公司开发和支持。它增加了一些新的功能和工具,以帮助企业更好地管理和分析大规模数据。
  2. VMware Tanzu Greenplum:VMware Tanzu Greenplum是由VMware公司支持的Greenplum Database商业版本,它专注于在容器化和云环境中运行的数据管理和分析工作负载。官网:https://docs.vmware.com/en/VMware-Tanzu-Greenplum/index.html
  3. Zilliz AnalyticDB:Zilliz AnalyticDB是一款基于Greenplum Database开发的商业数据库,由Zilliz公司开发和支持。它支持高性能的空间数据处理和分析,以及基于GPU的深度学习计算。官网:https://zilliz.com/
  4. Kyligence Analytics Platform:Kyligence Analytics Platform是一款基于Apache Kylin和Greenplum Database开发的商业数据分析平台,由Kyligence公司开发和支持。它提供了更快的查询速度、更好的数据可视化和更丰富的数据建模功能。官网:https://kyligence.io/

这些商业版本都是基于Greenplum Database开发的,它们在功能和工具方面有所不同,因此用户可以根据自己的需求选择最适合自己的版本。

Pivotal Software于2019年8月被VMware宣布收购。根据交易条款,VMware以每股15美元的价格从Pivotal Software收购其所有的普通股,交易总价值为27亿美元。该交易于同年12月完成,并将Pivotal Software纳入VMware的子公司中。这次收购是VMware扩大其云计算和软件定义数据中心业务的一部分,也是Pivotal Software寻求更好资金和支持的一部分。

GP 6.0新特性

Greenplum 6.0 于 2019 年 9 月 4 日正式发布,内核版本从 PostgreSQL 8.3 升级到PostgreSQL 9.4,数据库的功能和性能得到了巨大的提升,HTAP 能力也得到了进一步加强。除了内核版本升级,还增加了大量新特性,包括基于 WAL 日志的 mirror 同步、分布式死锁检测、复制表、在线扩容、磁盘限额、自动 Master 切换、Zstandard 压缩、GP-GP 集群间高效查询等。

PostgreSQL版本升级

Greenplum 6.0于2019年9月4日正式发布,内核版本从PostgreSQL 8.3升级到PostgreSQL 9.4.20,数据库的功能和性能得到了巨大的提升,HTAP能力也得到了进一步加强。

除了内核版本升级,还增加了大量新特性,包括基于WAL日志的mirror同步、分布式死锁检测、复制表、在线扩容、磁盘限额、自动Master切换、Zstandard压缩、GP-GP集群间高效查询等。

2005年研发之初,Greenplum的内核版本是PostgreSQL 8,在2017年发布的Greenplum 5之前一直是PostgreSQL 8.2版本。Greenplum 5基于PostgreSQL 8.3(开发时的最新版本)已经有近10年的时间(PostgreSQL 8.3版本发布于2008年)。在此期间,PostgreSQL的演进速度是非常快的,尤其是在2015年之后,每年一个大版本的迭代更新,在性能和功能上都有重要的提升,各种特性层出不穷。2015年Greenplum完成了开源,启动内核升级的项目,并在近几年逐步完成了8.3、9.0、9.1、9.2、9.3、9.4、9.5和9.6版本的升级。

而这些特性却无法在Greenplum上直接体现,原因在于,Greenplum是在PostgreSQL 8.3内核的基础上修改代码实现的,而不是类似CitusDB等采取了插件的方式。

Greenplum这样设计的好处是,能够充分修改优化器、执行器、事务、存储等各个模块,达到最优的效果。坏处也很明显:与PostgreSQL社区长期脱节,无法充分利用社区红利。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
Greenplum介绍后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部