`

Greenplum高性能数据引擎探秘

 
阅读更多

[导读]高性能数据引擎也都是基于这两个方面的来最求高效:“大规模”需要的是数据吞吐能力,就是所谓的I/O;“数据处理”需要的是并行计算能力,即充分利用硬件资源对任务及进程的最大化运行。

 

Greenplum数据引擎是为新一代数据仓库和大规模分析处理而建立的软件解决方案。其最大的特点是不需要高端的硬件支持仍然可以支撑大规模的高性能数据仓库和商业智能查询。在数据仓库、商业智能的应用上,尤其海量数据的处理方面性能极其优异。

高性能的大规模数据处理能力是DBA对数据库梦寐以求的能力之一。从字面上不难看出,“高性能的大规模数据处理能力”中,一方面是针对“大规模的数据”,另一方面就是“数据的处理”,施加于二者之上的要求是“高性能”。

所以,高性能数据引擎也都是基于这两个方面的来最求高效:“大规模”需要的是数据吞吐能力,就是所谓的I/O;“数据处理”需要的是并行计算能力,即充分利用硬件资源对任务及进程的最大化运行。

 

 

在理解提升I/O和并行计算的能力之前,我们需要深入Greenplum的核心,了解一下Greenplum的Shared Nothing架构。

Shared Nothing架构

与Oracle RAC的Shared Everything架构不同,Greenplum采用Shared Nothing架构。整个集群由很多个数据节点(Segment Host)和控制节点(Master Host)组成,其中每个数据节点上可以运行多个数据库。

简单来说,Shared Nothing是一个分布式的架构,每个节点相对独立。典型的Shared Nothing系统会集数据库、内存Cache、等存储状态的信息;而不在节点上保存状态的信息。  
Shared Nothing架构简图

 

对于应对大规模数据处理的服务器集群设备,若将Session状态信息保存在各个数据节点上,各节点的Session复制会极大的影响性能;若采用Shared Nothing,保持每个节点的无状态性,不再使用Session来保持全局的状态,而是将Session直接放在数据库中,在数据库前再加一层如Memcached分布式Cache,这样将可极大的提高性能,当改变Session中的对象时,将同步到Cache和数据库。

基于Shared Nothing的分布式架构模式,Greenplum在高效处理I/O数据吞吐和并发计算的过程就很好理解。

高效I/O的实现

I/O瓶颈是数据库,特别是大规模数据分析处理中永恒的话题。在Greenplum中,需要存储的数据在进入进入数据库时,将首先进行数据分布的处理工作;将一个表里的数据平均分布到每个节点,并为每个表指定一个分发列(distribute Column),之后便根据Hash来分布数据。  
Greenplum的高效数据载入

 

基于Shared Nothing的原则,Greenplum这样处理可以充分发挥每个节点处I/O的处理能力。在这一过程中,控制节点(Master Host)将不再承担计算任务,而只负责必要的逻辑控制和客户端交互。

这是Greenplum的独到之处。在多数集群的大规模数据处理系统中,都使用中心节点进行大量的控制和计算,大量的数据交换过程中将造成中心节点的负载过大;多数情况下,数据库的I/O瓶颈在这一位置(处理过程)形成病灶,进而随多核心CPU时序控制和处理响应的时段等问题开始蔓延,最终致使系统中很多节点的I/O位置病入膏肓。

在Greenplum中,控制节点只负责必要的逻辑处理和客户端交互,节点间的数据交互将直接在节点间完成,而不需要控制节点;在一定的硬件资源支持下,高效I/O不再是DBA的梦想。

并行计算能力

I/O瓶颈的解决为并行计算能力的提升创造了良好的环境。下面我们一起来看看Greenplum是如何进行高性能的并行计算的。

在硬件方面,Greenplum可以使用标准的服务器并通过服务器间的高级通信连接,将多台服务器组成一个强大的计算平台,实现快速的海量并行运算

在系统内部,Greenplum通过自己的并行数据流引擎来实现更多计算需求的硬件资源调度。一般,多表JOIN操作是考验系统并行计算能力的经典案例。在Greenplum中,这一过程是将一个表里的数据平均分布到每个节点,并为每个表指定一个分发列,之后便根据Hash算法来分布数据。

这样,每个节点的数据通过分发列即得知。如果对distribute Column做JOIN操作,只需要通过分发列得到数据的节点位置,并对相应的节点进行计算,最后合并结果就可完成。

当然,这种几个表规模的查询还不能证明Greenplum在并行计算方面的能力。但重要的是,通过Greenplum的并行数据流引擎,我们可以在一个主机上同时启动多个PostgreSQL数据库进行更多表的关联及更复杂的查询操作。这就充分发挥了硬件资源的性能。 
 Greenplum高性能大数据数据查询

 

在进行数据装载时,不是常规的一个中心数据源将数据分发至各节点,而是所有节点同时读取数据,然后根据Hash算法,将属于自己的数据留下,将其他的节点的数据通过网络直接传送给需求方。这种多数据流的并行传输保证了高性能的数据装载速度。

在进行并发数据分析时,Greenplum的另一个强大之处是支持对一个Segment节点的虚拟化,在载入数据后,我们可以对数据节点虚拟多个数据库进行并行分析操作,依旧源于Share nothing架构,Greenplum的一个Segment可支持2-10个虚拟数据库(官方推荐为6个),可以最大限度发挥硬件设备,提高并行规模和查询分析效率。

 

  • 大小: 42.5 KB
  • 大小: 16.9 KB
  • 大小: 41.2 KB
  • 大小: 27.2 KB
分享到:
评论

相关推荐

    Greenplum不同集群之间同步数据方法及性能1

    本文将详细介绍如何在Greenplum的不同集群之间同步数据,以及如何监控性能以确保过程的效率。 【相同集群相同数据库不同SCHEMA之间同步数据】 在相同集群的相同数据库但不同SCHEMA之间同步数据,可以使用SQL语句...

    Greenplum性能测试报告.docx

    本次测试的主要目的是评估Greenplum数据库在数据查询方面的性能,包括单表查询效率和多表JOIN操作的处理能力。通过深入理解Greenplum的架构和分布式存储策略,我们将验证其在大规模数据处理场景下的表现,并为后续...

    Greenplum 中的数据字典

    在Greenplum数据库系统中,数据字典是一个关键的概念,它是一个内部的...掌握Greenplum的数据字典是管理和优化数据库性能的重要步骤,通过查询和理解这些系统表,DBA和开发人员能够更好地理解和维护数据库的复杂结构。

    基于数据挖掘的Greenplum分析.pdf

    特别是在数据挖掘领域,Greenplum通过其独特的MPP架构和高性能的数据处理能力,为数据分析和决策提供了强有力的支持。随着大数据时代的来临,企业对于高效数据处理的需求日益迫切,Greenplum作为满足这一需求的重要...

    Greenplum元数据信息1

    Greenplum是一个高度并行的、大规模数据分析的MPP(大规模并行处理)数据库系统。本文将深入探讨如何获取和分析Greenplum中的元数据信息。 首先,我们要了解如何获取集群中数据库的信息。在Greenplum中,可以通过...

    Greenplum分布式大数据数据平台实战培训视频-1

    Greenplum分布式大数据数据平台实战培训视频- 01-Greenplum架构(1)

    Greenplum分布式大数据数据平台实战培训视频-3

    Greenplum分布式大数据数据平台实战培训视频- 03-安装Greenplum(1)

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

    它的分布式架构、高性能、高度可扩展性和灵活的数据处理能力,使得它成为业界在大数据存储、计算、分析和挖掘方面的首选平台。通过深入学习和掌握Greenplum的内核与架构,开发者和数据库管理员将能更好地应对大数据...

    spark 并行加载 greenplum 数据

    spark 并行加载 greenplum 数据,为正确运行,需引入 spark 相关包和 greenplum 驱动。 <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core --> <groupId>org.apache.spark ...

    Greenplum分布式大数据数据平台实战培训视频-2

    Greenplum分布式大数据数据平台实战培训视频-02-Greenplum架构(2)

    Greenplum数据仓库设计规范1

    - **表命名实例**:在Greenplum中,表名通常由数据层级和具体业务含义组成,如ODS_E_ENT_PERSON_20180506代表数据接入层中关于企业高管的数据表,日期表示数据的时效性。 - **字段命名实例**:字段名同样应清晰反映...

    VMware vSphere 5.5的Greenplum的数据库性能

    随着数据量和数据源的爆炸性增长,单一大型计算机已无法满足处理需求,而Greenplum通过在多台计算机上进行并行处理,实现了线性扩展能力和高可用性,成为大数据分析领域的佼佼者。 ### VMware vSphere 5.5:虚拟化...

    Greenplum分布式大数据数据平台实战培训视频-4

    Greenplum分布式大数据数据平台实战培训视频-04-安装Greenplum(2)

    Greenplum 架构概览1

    Greenplum的核心特性在于其Master-Segment架构,这种架构允许它以水平扩展的方式处理大量数据,提供高可用性和高性能。 **基本拓扑结构** Greenplum集群主要由三个部分构成:Master节点、Standby Master节点和...

    EMC Greenplum bi 数据仓库

    EMC Greenplum BI数据仓库是EMC公司旗下的数据计算部门推出的一款高性能、高扩展性的数据仓库解决方案。它旨在帮助企业从海量数据中提取价值,支持复杂的商业智能(BI)和数据分析需求。Greenplum采用先进的大规模...

    GreenPlum大规模数据处理解决方案

    其核心特性包括但不限于高度可扩展性、高性能分析处理以及对多种数据格式的支持。 1. **高度可扩展性**:GreenPlum采用分布式架构设计,通过增加节点的方式实现水平扩展,从而支持PB级别的数据存储和处理。 2. **高...

    Greenplum分布式大数据数据平台实战培训视频-5

    Greenplum分布式大数据数据平台实战培训视频-05-安装Greenplum(3)

    GreenPlum 分布倾斜性能问题解决案例

    描述"gp 常见数据瓶颈SQL优化"表明了这篇文章的主要内容是解决 GreenPlum 数据库中的性能问题,并且对 SQL 优化进行了说明。 标签解释 标签"GPDB greenplum 优化"表明了这篇文章的主要内容是关注 GreenPlum 数据库...

    Greenplum数据仓库技术架构介绍.pptx

    Greenplum的架构特点包括MPP ShareNothing海量并行处理、完全无共享、CPU计算能力、数据从Disk上的I/O吞吐性能、Master管理节点、Segment数据节点等。Greenplum的核心功能包括无共享MPP、多态存储、 高效数据加载、...

Global site tag (gtag.js) - Google Analytics