开源大数据引擎:Greenplum 数据库架构分析

大数据

Greenplum 数据库是最先进的分布式开源数据库技术,主要用来处理大规模的数据分析任务,包括数据仓库、商务智能(OLAP)和数据挖掘等。自2015年10月正式开源以来,受到国内外业内人士的广泛关注。本文就社区关心的Greenplum数据库技术架构进行介绍。

一. Greenplum数据库简介

大数据是个炙手可热的词,各行各业都在谈。一谈到大数据,好多人认为就是Hadoop。实际上Hadoop只是大数据若干处理方案中的一个。现在的SQL、NoSQL、NewSQL、Hadoop等等,都能在不同层面或不同应用上处理大数据的某些问题。而Greenplum数据库做为一个分布式大规模并行处理数据库,在大多数情况下,更适合做大数据的存储引擎、计算引擎和分析引擎。

Greenplum数据库也简称GPDB。它拥有丰富的特性:

第一,完善的标准支持:GPDB完全支持ANSI SQL 2008标准和SQL OLAP 2003 扩展;从应用编程接口上讲,它支持ODBC和JDBC。完善的标准支持使得系统开发、维护和管理都大为方便。而现在的 NoSQL,NewSQL和Hadoop 对 SQL 的支持都不完善,不同的系统需要单独开发和管理,且移植性不好。

第二,支持分布式事务,支持ACID。保证数据的强一致性。

第三,做为分布式数据库,拥有良好的线性扩展能力。在国内外用户生产环境中,具有上百个物理节点的GPDB集群都有很多案例。

第四,GPDB是企业级数据库产品,全球有上千个集群在不同客户的生产环境运行。这些集群为全球很多大的金融、政府、物流、零售等公司的关键业务提供服务。

第五,GPDB是Greenplum(现在的Pivotal)公司十多年研发投入的结果。GPDB基于PostgreSQL 8.2,PostgreSQL 8.2有大约80万行源代码,而GPDB现在有130万行源码。相比PostgreSQL 8.2,增加了约50万行的源代码。

第六,Greenplum有很多合作伙伴,GPDB有完善的生态系统,可以与很多企业级产品集成,譬如SAS,Cognos,Informatic,Tableau等;也可以很多种开源软件集成,譬如Pentaho,Talend 等。

二. Greenplum架构

2.1 平台架构

图(1)是Greenplum数据库平台概括图。平台分为四个层次,我们依次从下往上看。

大数据

MPP核心架构

GPDB是大规模无共享的处理架构,后面会专门介绍;

先进的并行优化器是性能突出的关键之一。GPDB有两个优化器,一个是基于PostgreSQL planner的优化器;一个是全新开发的ORCA优化器。ORCA是Greenplum 5年以前启动的全新项目,这个优化器经过几年的开发和测试之后,最近已经成为GPDB企业版本的默认优化器。

GPDB的存储引擎支持多态存储,一个表的数据可以根据访问模式的不同使用不同的存储方式。存储方式对用户透明,执行查询时,不用关心待访问的数据使用的存储模式,优化器会自动选择最佳查询计划。

分布式数据库中,某些操作(例如跨节点关联)需要多个节点间进行数据交换。GPDB的并行数据库流引擎,可以根据数据的特点,例如分布方式、数据量等选择最合适的数据流操作符。目前GPDB支持两种数据流操作符:重分发(Redistribution)和广播(Broadcast)。重分发根据数据的哈希值重新分发到各个数据节点上,适用于数据量大的情况;广播则将数据发送给所有数据节点,适用于数据量较小的情况,例如维度表。

软件交换机是GPDB的一个重要组件,软件交换机可以在各个数据节点间及与主节点间建立可靠的UDP数据通讯机制,是实现高效数据流的核心。

Scatter/Gather 流引擎是专为并行数据加载和导出而设计,Scatter指数据通过并行加载服务器并行分散到各个数据节点,Gather指数据在 GPDB内部可以根据分布策略按需并行分发。

服务层

GPDB支持多级容错机制和高可用:
o 主节点(Master)高可用:为了避免主节点单点故障,可以设置一个主节点的副本(称为 Standby Master),他们之间通过流复制技术实现同步复制。当主节点发生故障时,从节点成为主节点,处理用户请求并协调查询执行。它们之间通过心跳检测故障。
o 数据节点(Segment)高可用:每个数据节点都可以配备一个镜像,它们之间通过文件操作级别的同步实现数据的同步复制(称为filerep技术)。数据节点上建议使用RAID5磁盘,以进一步提高数据的高可用。故障检测进程(ftsprobe)定期发送心跳给各个数据节点。当某个节点发生故障时,GPDB会自动进行故障切换。
o 网络高可用:为了避免网络的单点故障,每个主机配置多个网口,并使用多个交换机避免网络故障时造成整个服务不可用。

在线扩展:数据量增大,现有集群不能满足需求时,可以对GPDB数据库进行动态扩展。扩展过程中,业务可以继续运行,不需要宕机。

任务管理是指对资源的管理和使用情况的管理。

产品特性

数据加载在后面会专门介绍。

用户喜欢...

大数据和云计算的冲突

最近,IT行业专家在参加相关会议时发现了一个隐藏的主题,那就是虽然很多人将关注的重点转移到基于云计算的架构...


云计算的发展将让防火墙走向消亡

行业专家认为,云计算、混合环境、移动访问以及在线应用程序已经使得网络防火墙变得过时,数据中心运营商应该...


智能家居为何需要大数据, 大数据在智能家居领域的贡献是什么?

大数据分为大数据存储和大数据分析,属于两种截然不同的计算机技术领域,大数据存储用于大数据分析。大数据存储重点在于研发可以扩展至PB甚至EB级别的数据存储平台;大数据分析关注在...


云计算是如何做到对企业“通吃”的?

企业选择云计算,可以自由在“云”端资源池取用或扩展资源,支持各类程序运转,但无需为各类基础软硬件忧心,...


云计算技术七大预测:未来将以“多云”为主

以下是分析师在六七年前做出的七项关于云计算技术发展的预测。其中一些已经做出了成果——至少部分完成了——...


云计算的未来是全部混合云化

云计算的未来面临着相当激烈的竞争,根据IDG研究服务部门今年早些时候发布的一项研究发现,近40%的拥有某种公共...


云计算的迁移是什么样的

将企业应用程序迁移到云计算环境是一个日益增长的趋势。近日在伦敦举行的亚马逊网络服务(AWS)活动中,该公司的一...


云计算经济学:抓好可用性、性能与成本三个关键词

成本效益当然是企业的一大关注点:亚马逊网络服务、谷歌云平台、IBM Bluemix以及微软Azure都提供了入门的试用账户,...


云计算托管将在2018年成为主流

自1991年互联网诞生以来,尽管传统托管模式存在很多弱点,但网络托管却几乎没有变化。调研机构普华永道的Paul L...


云计算2.0时代:企业如何踏上“云化”之路

在数字化转型的热潮下,云计算开始步入全新的2.0时代。越来越多的玩家争相收割云计算红利。除了BAT(百度、阿里...


云计算厂商都在做的生态其实大不相同

云生态系统的建设,大概可以分为三个阶段,分别是:1、单一云企业模块阶段,2、垂直一体化云企业模块集成阶段、...


云计算未来之争,公有云、私有云还是混合云?

有关云计算及其发展趋势的问题总是会引起人们激烈地争论。随着公司逐渐感受到了云计算所带来的竞争力提升,他...


实力做桨,需求为帆 云计算进入“大航海时代”

随着国内云计算企业竞争日趋激烈,领军企业开始积极拓展海外业务,上线海外云计算服务节点,加速推进国际市场...


云计算:10个错误可能会摧毁你的企业

云计算是一把双刃剑。好的一面是,云计算提供了各种好处,包括提高可靠性、灵活性、可管理性和可扩展性。不过...


云计算如何改变人们的生活方式

近十年来,最火的科技词汇,非云计算莫属。从2006年云计算的概念被Google公司正式提出,到如今已经成为家喻户晓的...


云计算与粒计算的联系

云计算固然好,但也有不少的缺陷和使用限制,这样才出现了雾计算、霾计算等技术,这些技术都是针对云计算做的...