大数据 频道

从技术到工具再到落地,Pivotal多位技术专家详解Greenplum

  【IT168 评论】2018年12月15日-16日,2018 PostgreSQL中国技术大会在浙江吉利控股集团有限公司正式开幕。大会由中国PostgreSQL用户会主办,云集了国内各界的PostgreSQL技术专家,笔者有幸在大会现场采访到了Pivotal的多位技术专家。

  提到Pivotal,大家或许并不陌生, 凭借着其在Cloud Foundry、Spring、Cloud Native、DevOps、Microservices等领域的技术累积、对企业数字化转型的洞察以及 Pivotal的Greenplum和GemFire在大数据和数据处理领域丰富多彩的发展历程, 今天的Pivotal, 已经成长为云原生时代的开源巨头。谈到这个全世界首个开源的多云数据平台,到2018年,Greenplum项目已走过13个年头, 获得了众多大企业的赞助支持。在短短两个小时的采访中,Pivotal多位技术专家从Greenplum的发展历程、相关工具以及实际的落地案例三个方面,为我们全面立体的呈现了一个Greenplum。

  Greenplum发展历程:从数据仓库到大数据分析平台再到企业整体数据管理平台

  十多年前,Greenplum在选型数据库内核时选定了PostgreSQL 8.2.3,并之后很长一段时间都在沿用这个内核版本。为什么会这样选择呢?首先,PostgreSQL 8.2.3是当时最新的版本。因为PostgreSQL是一个单机数据库,Greenplum研发团队基于PostgreSQL执行器做了支持MPP分布式架构的改动,在PostgreSQL原有的优化器基础之上,构造了两个版本的Greenplum数据库并行优化器,传统查询优化器及ORCA查询优化器,同时还增加了Dispatcher模块和Interconnect模块。

  Greenplum 4的内核版本为PostgreSQL 8.2.3,Greenplum 5的内核版本为PostgreSQL 8.3.23,而Greenplum 6的内核版本为PostgreSQL 9.4 。为什么从4到5只实现了一个版本的升级,而5到6却实现了四个版本的升级呢?Greenplum在发布5.0时,进行了大量的重构工作,尽管只升级了一个Postgres的内核版本,但将Greenplum和PostgreSQL的代码 全分开了,之后MPP和PostgreSQL互相不再是特别紧的耦合在一起,可以独立升级。这也是为什么从6.0开始Postgres内核版本升级得以突飞猛进的一个重要原因。而6.0选择升级到9.4内核也是综合考虑各方面的因素,包括用户发布时间,用户需求等。内核版本升级以后,还有很重要的一部分工作是让Postgres的各种新特性,例如FDW,流复制等功能,支持MPP架构。

  Pivotal大中华区数据产品线业务总监程良在某次演讲中称,“今天,Greenplum的定位不仅是数据仓库和大数据分析平台,还是企业的整体数据管理平台。”

  如何理解这句话呢?Greenplum产品经理李阳为我们进行了更详细的解答。Greenplum最早的定位是数据仓库,其上的主要应用是BI报表类产品,用户执行的是长时间的批处理任务。后来随着对大数据分析需求的持续增加,传统的SQL查询逐渐满足不了越来越多样化的数据分析需求 ,Greenplum在此数据仓库上增加了更多分析的功能,例如支持GIS做地理信息分析,加入GPText做文本搜索,利用Madlib支持机器学习等。当Hadoop兴起时,Greenplum除了本身可以支持MapReduce,还可以通过外部表的方式将任务下放到Hadoop中执行;现在,Greenplum有了一个统一和外部数据交互的接口——Pivotal Extension Framework ,从而成为一个完整的大数据平台。通过PXF接口,Greenplum可连接Hadoop HDFS、HBase、Hive、Oracle、DB2、MySQL、PostgresSQL等多种外部数据源;通过Spark-Connector支持与Spark的数据连接;通过Kafka-Connector接口支持与Kafka消息队列的无缝连接;通过Gemfire-Connector实现与分布式内存数据的连接。

  Greenplum相关工具:新一代Greenplum监控管理平台Pivotal Greenplum Command Center

  Greenplum Command Center (简称GPCC)是Greenplum原厂推出的图形化运维管理工具,这款产品早在Pivotal收购Greenplum就存在了,当时承担的位置是Greenplum图形化界面。但是数据库操作者,尤其是企业级数据仓库的操作者更习惯于直接在命令行工具上去配置、运维、使用。不过,这对初学者不太友好,GPCC这个项目开发的初衷之一就是为了降低技术门槛。

  数据库运维与传统企业IT运维工作相比,最大的难点就是SQL查询的性能问题。一般来说,分析查询问题的经典方式通常有3种,EXPLAIN、EXPLAIN ANALYZE和反复调参对比,比较硬核的方式就是gdb调试。但是这几种方式都存在着难以精确定位问题、难以解决通用问题,难以自动化等缺点。

  针对此,GPCC项目推出了一个新功能[HW3] ——可视化在线查询计划,该功能具备以下特点:

  ·易读性,利用数据可视化技术,采用贴近数据库执行计划的树状结构,更直观地表示节点之间的关系;

  ·实时性,可视化执行计划完全与数据库内部执行同步,可以直观的看到数据库内部正在发生的处理;

  ·用开销非常小的方式从数据库内部各个组件(优化器、执行器)采集捕获信息;

  ·该功能的实现是通过收集以下三大类查询特征信息:查询生命周期信息、静态计划树信息、执行器进度信息。

  GPCC有两个很明显的优势就是直观和实时,通过采集优化器和执行器的内部消息,快速定位问题,适合于很多PostgreSQL和Greenplum的优化场景,例如PostgreSQL应用场景中的统计信息缺失、使用HASH聚合和溢出文件等,Greenplum应用场景中的数据倾斜和计算倾斜、大量数据Broadcast和未使用分区裁剪等。

  目前,GPCC这款产品已经具备了可视化查询进度、告警等功能,下一步将深入挖掘数据,发布更多智能化运维的功能。

  Greenplum案例解析:某客户监察系统案例参考

  前面我们从技术和工具两个方面介绍了Greenplum,接下来我们结合一个实际案例来看一下Greenplum的应用——某客户监察系统案例参考。

  一.面临问题&建设目标

  目前大部分的数据平台都会面临以下三个问题,该客户原有的数据平台和监察系统也不例外:

  ·业务支撑,因为受限于传统架构下,原有数据平台不具备分布式计算和横向扩展能力,性能和业务的可扩展性都有一定的局限性。

  ·业务扩展性,随着业务发展,数据量会越来越大,数据类型也会越来越多,过去更多的是结构化的数据,而现在的数据包括结构化、半结构化、非结构化;

  ·数据管控,也就是数据温度。比如有一些访问比较频繁的数据,我们称之为热数据,有一些归档数据或者历史数据,我们称之为冷数据或者温数据。在之前的数据平台架构中往往是没有数据管控的,且数据质量和数据清洗做得也不够好。

  针对以上问题,该客户经过深入的调研和思考,设立了数据平台建设总体目标,即使用大数据技术和平台,对各业务领域的数据进行整理,构建基础数据平台和三大保障体系,并在此基础上搭建统一的数据共享和分析平台,为企业内外部各层次用户提供信息服务,数据分析和挖掘支持能力。

  二.技术选型

  经过长时间的前期沟通,最终该客户采用了MPP数据库+Hadoop的混搭架构,这也是金融行业在做大数据平台时比较常见的一种组合方式。

  为什么大家会选择MPP+Hadoop的混搭架构呢?其实之前很多人一提到大数据就是讲Hadoop,大家都试图用Hadoop去解决所有大数据的问题,但实际落地时就会发现有些场景Hadoop并不适合,比如低延时、高并发的场景。针对这种混合负载的场景,引入MPP来做低延时、高并发和迭代分析的场景是在合适不过了,不仅效率最高,而且整个项目实施的难度也会降低。

  MPP产品那么多,为什么要选Greenplum呢?首先,很直观也很明显的一个原因,Greenplum确实是MPP产品中的领先者,它是最早提出分布式计算,并且具备压缩、行列存储、并行加载等功能;其次,Greenplum不只可以和Hadoop连接,还可以和Hadoop外面的数据库Oracle、DB2、MongoDB等进行有效连接。这种连接方式有一个最大的好处就是可以直接在异构数据库的外部表上做计算。原始数据可以直接使用Greenplum的计算引擎来做计算,计算完之后,可以把数据吐回去。另外,也可以拿数据和本地表做关联。最后,Greenplum包含全文检索以及机器学习库,可以赋能到Hadoop中的数据。

  三.部署实施&性能成本

  该客户的监察系统建设其实是分为两个项目的,一个是咨询类项目,一个是实施、上线、交付类项目。咨询类前后大概花费了一年时间,主要是帮助用户选择技术路线,包括其中的功能验证和产品验证等等。交付类项目时间大概是三到五个月之间。

  系统建设完成之后,生产系统会每个250毫秒就通过微批量的方式将数据加到库中。从交易系统的响应时间来看,准实时系统在秒级,而实时系统在毫秒级。

  在成本方面大致可以节省一半,成本减少主要是来自两方面,硬件设备和软件成本。之前,该客户使用的硬件设备是小型机,而现在只需要基于X86的PC服务器即可。软件成本方面,之前采购Oracle和DB2数据库的license是很昂贵的,但是现在有了更多选择,例如Greenplum、Kafka等,这些软件本身是开源产品,只需为服务付费即可。

  今天Greenplum服务的客户已经遍及我们每个人生活中的方方面面,在中国的电信、银行、保险、证券、交通、物流、互联网和制造业当中。越来越多的客户开始从MPP项目开始着手,逐渐利用混搭的技术来构造未来的数据之湖。

0
相关文章