基于Greenplum构建下一代数据分析平台

7月3日,《Greenplum走遍中国》系列技术研讨会走进了大明湖畔的济南。上一篇文章,我们已经为大家整理了活动中的第一个演讲内容《基于fdw的跨Greenplum集群数据库查询实现》。今天,我们帮大家整理了第二篇演讲内容《基于Greenplum构建下一代数据分析平台》供大家学习交流。

众所周知,在开源社区耳熟能详的Greenplum原来属于Pivotal公司,Pivotal公司之前跟VMware同属于戴尔集团,是两家独立运营的科技公司,2019年公司从云计算和大数据市场重新定位的角度出发,对两家公司进行了合并,于2020年2月份合并完成,Greenplum也因此成为VMware全新产品和服务组合VMware Tanzu的一部分,从另外角度上来说也相当于补充了VMware技术堆栈在大数据领域的空白。 今天, 我将为大家详细分享一些基于Greenplum构建新一代数据平台和数字化转型的经验 ,供大家学习和参考。

关于Greenplum相信大家都应该已经有了一个清楚的认识,它采用了完全无共享的MPP架构,是一个专为商业智能处理和OLAP高级数据分析而设计,提供企业级数据处理能力,实现对海量数据快速查询、全量的分析的一个数据平台。在开始详细介绍Greenplum之前,首先我将带领大家回顾一下企业数据分析平台的演进历程。

企业数据分析平台的演进

随着大数据时代的到来,数据逐步成为企业核心资产,数据的衍生价值越来越大,大多数企业也在逐步从流程驱动型企业转型成为数据驱动型企业。数据平台从满足报表类的描述型分析到满足现在的运营型分析需求,经历了三个阶段。

  • 描述型分析

在这一阶段,随着信息化建设的深入,企业积累了大量业务数据,用户希望了解一段周期内的企业经营情况。因此,这一阶段企业以看到过去的描述型分析为主。整合业务数据,累积历史,通过报表、查询等形式,对业务历史数据进行统计分析。

这一阶段我们可以围绕如下的问题进行建设:

  1. 业务已经发生了什么?
  2. 业务为什么会发生?
  • 预测型分析

这一阶段,企业不仅仅要对已经发生的业务进行评估,还需要对业务进行前瞻性预测。因此,这一阶段企业以面向未来的预测型分析为主。需要建立数据科学团队,利用机器学习技术,对海量数据探索、研究,从数据中发现新的业务洞察。

这一阶段我们可以围绕如下的问题进行建设:

  1. 业务已经发生了什么?
  2. 业务为什么会发生?
  3. 将要发生什么?
  • 运营型分析

这一阶段,企业希望提高分析的时效性,嵌入业务流程自动化、智能化驱动业务。因此,这一阶段企业以决定现在的运营型分析为主。利用流计算、CEP、HTAP 数据库等技术实时监控业务,智能的驱动业务向我们希望的方向发生。

这一阶段我们可以围绕如下的问题进行建设:

  1. 业务已经发生了什么?
  2. 业务为什么会发生?
  3. 将要发生什么?
  4. 正发生什么?
  5. 如何驱动业务发生?

MPP核心架构发展

了解Greenplum的都知道Greenplum是Share-Nothing 架构。与Share-Nothing相对应的是Share-Everything架构。Share-Everything架构是指在数据平台下,所有的硬件、软件、计算、存储资源都是共享的,包括Oracle,DB2,SQL Server在内的数据库都是典型的Share-Everything架构。共享资源往往会导致激烈的IO和网络资源冲突,并不适合IO敏感型应用。

而Share-Nothing架构没有任何资源贡献,各个处理单元都有自己私有的CPU/内存/硬盘等,各处理单元之间通过协议通信。实现了最大化的并行处理,且支持横向线性扩展,适合IO敏感型应用。

MPP数据库一直是搭建数据平台,实现结构化业务数据管理和分析的首选技术,从技术发展趋势上来看,MPP数据库也在与大数据、云计算等技术不断融合,以支撑更多的分析场景。

Greenplum大数据平台基于Share Nothing 的MPP(大规模并行处理)架构,每个节点拥有自己的CPU、内存、硬盘来管理数据,所有资源包括数据在内完全无共享。Greenplum提供了三种数据分布机制,分别是Hash分布,随机分布,和复制数据分布,通过这三种分布机制可以保证数据均匀分布在集群的每一台计算节点,每一块磁盘上,所有的查询请求均是并行方式执行,这样可以充分发挥每一台服务器,每一块磁盘的IO性能,从数据存储的根本上解决IO瓶颈的问题。数据按照设定的分布策略均匀分布在每个节点,节点管理自己的数据,没有任何资源竞争。任何操作可以无条件的并行执行。系统可以通过“搭积木”方式横向扩展,扩展后系统容量和系统均有线性提升。

Greenplum是什么?

介绍到这里,大家可能会想知道Greenplum到底是什么?如何应对大数据分析?

Greenplum是全球首个开源,专为分析打造,可多云部署的大数据平台。Greenplum拥有完整的产品生态,可以满足用户对例如时序数据、空间数据、全文检索等众多分析场景的需求。

随着Greenplum在不同行业的推广使用,加之在研发上的大力投入,功能、性能、稳定性上都有了长足的进步,如今Greenplum的master分支上内核已经升级PostgreSQL 12。从满足数据平台演进功能的角度来说,Greenplum大致经历了,2010年前后主要满足传统的BI和报表应用,也就是面向描述型分析阶段,到2015年前后,大数据需求发展迅速,为满足大数据平台构建需求,也就是面向预测型的平台阶段,再到如今支持多云部署,多样化的分析手段,访问多数据平台的数据联邦能力,也就是面向运行型分析平台阶段,可以说无论是从产品功能,还是产品可靠性,从客户的认可度,到数据平台方案的完备性等方面,都有了极大的完善,真正重新定义了数据分析平台构建的理念,完成了从传统数据仓库到多云分析平台的演进。 

Greenplum版本从在中国开始推广到现在的耳熟能详,大致经历了三个大的版本。分别是4.x-5.x-6.x时代。这里简单介绍一下Greenplum的架构,Greenplum集群里有两类节点,分别是Master节点和Segment节点,如果分层来理解的话,第一层的Master节点是上层应用访问集群的唯一入口,采用HA的方式保证高可用,只存储集群的元数据,不存储用户业务数据,下一层是网络互联层,一般生产系统通过万兆网络来满足集群内部所有节点数据交互的工作,再下一层就是真正存储用户数据的节点,我们称之为Segment节点,用户数据都存储在这一层,同时上层应用的计算工作在Segment完成后,由Master节点汇总返回给上层应用。无论哪个版本的Greenplum,都采用这种基本架构。我们把Greenplum4版本时期称为SQL on Greenplum阶段,基本上以报表需求为主的阶段,借助于Greenplum数据库构建报表,ODS,数据集市等系统,可以基于Greenplum的分布式架构处理海量数据,通过ANSI标准的SQL语句访问数据,行业客户里单个最大的集群规模达到192个节点。

Greenplum 5版本时期称为ML on Greenplum阶段,主要是在满足描述型平台需求的基础上增强数据分析、数据挖掘能力,通过内置多样的算法库提供库内机器学习能力,同时可以支持全文检索、空间数据处理、图计算等能力,仍然基于熟悉的SQL应用来调用内置的各种分析库函数,这个阶段专注于满足客户数据分析数据挖掘类需求。 

Greenplum 6版本时期是HTAP on Greenplum阶段,HTAP是各大数据库厂商数据库产品发展的主要方向,Greenplum 6通过全局智能锁、集成PostgreSQL的Upstream特性等增强了联机分析处理OLTP能力,无论是并发还是并行处理能力上都有了非常大的提升,比如我们测试对比报告中,Greenplum 6相较于之前版本,OLTP方面业务可以有70倍的性能提升,同时可以跟包括Kafka,Hadoop生态技术在内的各种异构数据源对接,来满足实效性强的业务场景需求,典型的案例可参考某交易所的监察系统,通过Greenplum引入实时的数据解决方案,实效性可以满足每秒100万笔的业务处理目标。

Greenplum支撑的企业数据分析类型

Greenplum支撑的企业数据分析类型主要分为三类,看到过去的描述型分析、面向未来的预测型分析和决定现在的运营型分析,分别对应了Greenplum的4、5、6三个版本,来满足企业的信息化建设和数字化转型需求。

  • 看到过去的描述型分析(Greenplum 4)

这一类分析类型是需要建设企业级数据仓库,整合业务数据,累积历史,支撑战略型分析,面向营销、风险、财务、绩效等业务条线,辅助日常业务决策;具体如下图所示,这里Greenplum所扮演的角色就是图中的数据平台,这里的数据平台相当于是一个数据仓库。

  • 面向未来的预测性分析(Greenplum 5)

这一类分析类型是需要建立数据科学团队,利用机器学习、图计算等技术,针对海量数据,进行探索、研究分析,为新出现的业务问题寻找答案,或从数据中发现新的业务洞察。Greenplum 通过集成MADlib算法库,实现“In-database”数据分析和挖掘计算,MADlib是2011年开始,UC伯克利大学产研结合项目,Greenplum集成的基于机器学习及人工智能分析的算法包,数据无需搬动到库外就可进行快捷的挖掘分析,还可利用MPP并行计算能力大幅提高数据分析数据挖掘的性能,常用的算法如监督学习、非监督学习、图计算等等算法都可以通过SQL调用的方式直接执行。这里Greenplum所扮演的角色就在图中的存储层和算法层。

  • 决定现在的运营型分析 (Greenplum 6)

嵌入式的、自动的制定决策过程,战术性分析。实时捕获业务发生,利用预测型分析结果,使组织在任意时刻做出最好的决策。HTAP类型应用。这里Greenplum所扮演的角色就是图中的实时查询(HTAP)。

经过上文的介绍,大家对Greenplum及其可以支撑的分析类型都有了一定的了解。在文章的最后,我们进行一下总结。Greenplum是专为商业智能处理和OLAP高级数据分析而设计的数据平台,在这个企业级分析数据平台下能够实现对海量数据快速、全量的分析。Greenplum大数据平台基于Share Nothing 的MPP(大规模并行处理)架构,每个节点拥有自己的CPU、内存、硬盘来管理数据,所有资源包括数据在内完全无共享,同时是业界首个开源的MPP数据仓库软件,具有非常优异的弹性和线性扩展能力,内置并行存储、并行通讯、并行计算和优化技术,兼容ANSI SQL标准,具备PB级结构化、半结构化和非结构化数据存储、处理和实时分析能力,支持涵盖OLTP业务的混合负载,可以为客户打通业务-数据-洞察-业务的闭环,可部署于企业裸机,传统的Bare-Metal PC服务器、私有云和公有云、容器技术甚至提供一体机的部署方式选择,支撑着全球金融、证券、电信、政府、制造、交通运输等各行业的大量核心生产系统。所以说,Greenplum是一个可以满足您过去、现在和未来数据分析需求的企业级数据平台,这一点已经在大量上述的行业核心生产系统中得到验证。

关注微信公众号

VMware 中国研发中心

Greenplum官方技术交流群

扫码添加小助手即可入群,添加时请备注 “GP网站”