`
weitao1026
  • 浏览: 1059893 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

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

一. 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数据库平台概括图。平台分为四个层次,我们依次从下往上看。

Greenplum 数据库
MPP核心架构

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

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

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

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

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

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

服务层

GPDB支持多级容错机制和高可用:

1、主节点(Master)高可用:为了避免主节点单点故障,可以设置一个主节点的副本(称为 Standby Master),他们之间通过流复制技术实现同步复制。当主节点发生故障时,从节点成为主节点,处理用户请求并协调查询执行。它们之间通过心跳检测故障。

2、数据节点(Segment)高可用:每个数据节点都可以配备一个镜像,它们之间通过文件操作级别的同步实现数据的同步复制(称为filerep技术)。数据节点上建议使用RAID5磁盘,以进一步提高数据的高可用。故障检测进程(ftsprobe)定期发送心跳给各个数据节点。当某个节点发生故障时,GPDB会自动进行故障切换。

3、网络高可用:为了避免网络的单点故障,每个主机配置多个网口,并使用多个交换机避免网络故障时造成整个服务不可用。

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

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

产品特性

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

1、数据联邦是比较有意思的,最近“数据湖泊”这个词非常火热,数据湖泊的目的是不需再对数据像以前那样经过定制,生成特定的业务报表;而是保存原始数据,什么时候想分析就从原始数据上直接处理。GBDB可以实现数据湖泊(我们称之为数据联邦),它能访问和处理数据中心里面的所有数据,不管你的数据是在Hadoop、在文件系统上、还是在其他数据库中,Greenplum可以使用一个SQL在保证ACID的前提下访问所有数据。

2、GPDB即支持行存,也支持列存。还为不需更新的数据存储和处理进行了专门的优化。

3、支持多种压缩方法,包括QuickLZ,Zlib,RLE 等。

4、支持多级分区表,分区支持多种模式,包括范围,列表等。

5、支持B树、位图和GiST 等索引

6、GPDB认证机制支持多种方式,包括LDAP和Kerberos等。通过访问控制列表(ACL),可以实现灵活的基于角色的安全控制。

7、扩展语言支持:GPDB 支持使用多种流行语言实现用户自定义函数(UDF,类似于Oracle的存储过程),包括 Python,R,Java,Perl,C/C++ 等。

8、地理信息处理:通过集成PostGIS,GPDB支持对地理信息进行存储和分析。

9、内建数据挖掘算法库:通过MADLib(现在是Apache孵化项目)算法库,可以内建几十种常见的数据分析和挖掘算法到GPDB数据库中,包括逻辑回归,决策树,随机森林等。不需要写任何算法代码,通过SQL就可以使用其中的所有算法。

10、文本检索:通过GPText扩展,GPDB可以支持高效灵活丰富的全文检索功能。与 MADLib 合用,可以进行并行文本分析和挖掘。

客户端访问和工具

通过psql命令行工具可以访问GPDB数据库的所有功能,此外还提供了ODBC、JDBC、OLEDB、libpq等应用编程接口。

数据库或者数据集群的管理工具非常重要,GPDB提供了图形化的管理工具GPCC(Greenplum Command Center),帮你管理状态,监控资源使用情况。

Greenplum Workload Manager是刚刚发布的新产品,用以实现基于规则的资源管理。它支持自定义规则,当某个SQL满足规则描述的条件时会执行某些操作。比如你可以定义规则自动取消消耗CPU资源达50%以上的查询。

2.2 大规模并行处理(MPP)无共享架构

MPP 是Greenplum数据库最突出的特色。现在很流行MPP这个词,我们可以看一下它是什么意思。下边图(2)中,主节点有两个,一个是主节点,一个是从主节点。通过软交换机制,也就是通过高速网络,主节点连到数据节点。每个数据节点有自己的CPU,自己的内存,自己的硬盘,他们唯一共享的就是网络。这也是称为无共享架构的原因。这种架构的好处是集群是分布式的环境,数据可以分布在很多节点上进行并行处理,可以做到线性扩展。

分享到:
评论

相关推荐

    Greenplum 数据库架构分析及CTE实现_杨瑜@Pivotal.pdf

    Greenplum数据库是一种大规模并行处理(MPP)数据库,专门为数据仓库和大数据分析工作负载而设计。它支持标准的SQL语言,并遵守ANSISQL2008标准,具备OLAP功能,同时兼容JDBC和ODBC接口。Greenplum的核心特性是其...

    Greenplum数据库架构分析.pptx

    《Greenplum数据库架构分析与CTE实现》 Greenplum数据库是一款专为大数据存储、计算和挖掘设计的高性能数据库系统。它遵循ANSI SQL 2008标准,支持在线分析处理(OLAP)操作,并且具备ACID属性,能够进行分布式事务...

    Greenplum 数据库架构分析及CTE实现_.zip

    **一、Greenplum数据库架构** 1. **分布式架构**:Greenplum的核心特性是其分布式架构,将大型数据集分散在多个物理节点上,每个节点都有自己的内存和磁盘资源。这种设计使得数据处理能够并行进行,极大地提高了...

    开源大数据引擎:分布式Greenplum数据库内核分析

    在分析开源大数据引擎时,分布式Greenplum数据库内核是一个值得深入探讨的主题。Greenplum作为一个大规模并行处理(MPP)架构的开源数据库系统,特别适用于大数据存储、计算、分析和挖掘的应用场景。在本篇文章中,...

    Greenplum数据库文档(中文版)

    在设计数据模型时,应考虑Greenplum数据库的架构特点,即采用shared-nothing的多节点架构。这意味着对于数据分析而言,非规范化的设计(如星型或雪花模型)更为合适,尤其是当涉及大规模的事实表和小规模的维度表时...

    Greenplum数据库架构.pdf

    《Greenplum数据库架构详解》 Greenplum数据库是一款基于PostgreSQL 8.2.14的高性能数据仓库系统,其设计目标是提供大规模并行处理(MPP)能力,适用于大数据分析和商业智能(BI)场景。作为PostgreSQL的一个分支,...

    Greenplum数据库开发基础.pptx

    2. Greenplum数据库架构:Greenplum数据库采用Shared-Nothing Architecture,包括Master节点、Segment节点和Interconnect层。Master节点负责协调工作处理过程,Segment节点存储业务数据,Interconnect层负责进程间...

    GreenPlum数据库.ppt

    总结,GreenPlum数据库以其独特的MPP架构、高效的数据分布策略、并行处理能力和集成的MapReduce功能,为企业提供了一种强大、可扩展的大数据解决方案。通过合理利用GreenPlum,企业可以应对大数据挑战,实现高效的...

    Greenplum 数据库最佳实践

    Greenplum数据库是一种基于MPP(大规模并行处理)架构的关系型数据库,专为数据仓库和大数据分析而设计。它由Greenplum公司开发,现在是Pivotal软件公司的产品之一。Greenplum具备处理PB级别数据的能力,支持复杂的...

    greenplum数据库jdbc驱动下载

    绿盟(Greenplum)是一种基于MPP(大规模并行处理)架构的开源...总结,Greenplum数据库的JDBC驱动程序为Java开发者提供了访问和操作Greenplum数据仓库的强大工具,使大数据分析工作在Java环境中变得更为便捷和高效。

    GreenPlum数据库详细安装过程.docx

    1.2. GreenPlum数据库架构原理 1 2. SUSE Linux Enterprise 11 64-bit操作系统安装过程 2 2.1. 初始化阶段 2 2.2. 系统分区 4 2.3. 软件选择和系统任务 12 2.4. 语言选择 14 2.5. Kdump设置 15 2.6. 安装过程...

    greenplum数据库 v5.8.1

    综上所述,Greenplum数据库v5.8.1版本是一个强大且灵活的大数据解决方案,特别适合需要进行大规模数据分析的企业。在Redhat7或CentOS7系统上部署该版本,用户将受益于其高性能、易扩展性和丰富的功能特性。在实际...

    Greenplum 数据库最佳实践.pdf

    Greenplum 数据库是一个基于大规模并行处理(MPP)和无共享架构的分析型数据库,具有非规范化数据库模式,例如星型或雪花模式。 数据模型 在设计 Greenplum 数据库时,需要考虑数据模型的设计。Greenplum 数据库...

    greenplum数据库学习资料

    总的来说,掌握Greenplum数据库技术需要对MPP架构有深入理解,熟悉其特有的数据分布和查询优化策略,同时结合实际操作和案例分析,才能更好地发挥其在大数据分析中的优势。希望这份学习资料能助你在Greenplum的学习...

    Greenplum数据库基础培训.pptx

    Greenplum数据库是一种基于PostgreSQL 8.2的海量并行处理(Massively Parallel Processing, MPP)数据库管理...对于开发人员和DBA来说,理解这些核心概念和机制对于有效利用Greenplum数据库进行数据处理和分析至关重要。

    Greenplum数据库使用总结(5.11版本).pdf

    Greenplum数据库的架构由一个主节点(Master)和多个分片节点(Segment)组成,这种设计符合shared-nothing的架构理念。每个Segment节点管理一部分数据,同时并行执行查询操作,以提高查询性能。 1. **架构图示**:...

    Greenplum数据库文档(中文)

    Greenplum数据库架构:** - **MPP架构**:Greenplum采用了分布式数据库的设计,通过MPP架构将数据分散到多个节点上,每个节点都有自己的计算资源,实现并行处理。 - **段(Segment)**:数据在Greenplum中被分片...

    Greenplum数据库调优1

    Greenplum数据库采用MPP(Massively Parallel Processing)架构,其核心特点是主节点(Master)负责接收查询请求,并将查询任务拆分后分发到各个segment节点上进行并行处理。这种设计使得Greenplum能够处理大规模...

    GreenPlum数据库详细安装过程【Suse操作系统安装配置开始到GP数据安装完成】

    ### GreenPlum数据库详细安装过程 #### 一、GreenPlum数据库概述与架构原理 GreenPlum数据库是一款高性能的企业级...此外,对于GreenPlum数据库架构原理的理解也是必不可少的,这有助于更好地管理和优化数据库性能。

Global site tag (gtag.js) - Google Analytics