一. Greenplum简介

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

Greenplum作为企业级数据库产品,可以说是世界上最先进的OLAP开源数据库之一。Greenplum是由数个独立的数据库服务组合成的逻辑数据库,简单的说就是一个与ORACLE、 DB2一样面向对象的关系型数据库集群,我们可以通过标准的SQL可以对GP中的数据进行访问存取。2015年10月,Pivotal宣布Greenplum正式开源。

Greenplum为大数据存储、计算、挖掘而设计,拥有丰富的特性:

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

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

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

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

二. Greenplum架构

数据库构架设计中主要有Shared Everthting、Shared Nothing、Shared Disk:

数据库架构类型

Shared Everthting:局限于单一服务器(通常是价格比较昂贵的SMP服务器),完全透明共享CPU、Memory和I/O,典型的代表SQL Server。并行处理能力是最差的,其扩展性和性能受到相应的限制。

Shared Disk各个处理单元使用自己的私有 CPU和Memory,共享磁盘系统。典型的代表Oracle Rac, 它是数据共享,可通过增加节点来提高并行处理的能力,扩展能力较好,类似于SMP(对称多处理)模式。这种架构需要通过一个狭窄的数据管道将所有I/O信息过滤到昂贵的共享磁盘子系统。但是当存储器接口达到饱和的时候,增加节点并不能获得更高的性能 。

Shared Nothing各个处理单元都有自己私有的CPU/内存/硬盘等,不存在共享资源,类似于MPP(大规模并行处理)模式,它是把某个表从物理存储上被水平分割,并分配给多台服务器(或多个实例),每台服务器可以独立工作,各处理单元之间通过协议通信。并行处理和扩展能力更好,只需增加服务器数就可以增加处理能力和容量。典型代表DB2 DPF和Hadoop ,各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。

Greenplum是基于软件的海量数据并行操作的“完全不共享”的MPP架构,将实际的数据存储设备分成一个个区段服务器上的小存储单元,每个单元都有一个连接本地磁盘的专用独立的、高带宽通道。区段服务器可以通过完全并行的方式处理每个查询,同时使用所有磁盘连接,并按照查询计划的要求在各区段间实现高效数据流动。Greenplum基于这种架构可以帮助客户创建数据仓库(Greenplum从开始设计的时候就被定义成数据仓库),充分利用低成本的商用服务器、存储和联网设备,通过经济的方式升级到千万亿字节的系统,并且在处理OLAP、BI(商务智能)、数据分析和数据挖掘等任务时性能远远超过了通用数据库系统。

Greenplum架构

Greenplum的组件分成三个部分:Master Severs、Segment Severs和Master Severs与Segment Severs之间的高效互联技术Interconnect。其中Master和Segment本身就是独立的数据库Sever。

Master负责建立与客户端的连接和管理,进行SQL的解析并形成执行计划生成并拆分执行计划;把执行计划分配给Segment的节点,收集Segment的执行结果并返回给最终应用;Master不存储业务数据,只存储数据字典,不负责运算,因此不会成为系统性能的瓶颈。这也是Greenplum与传统MPP架构数据库的一个重要区别。

Segment负责业务数据的存储和存取,并根据得到执行计划,负责处理业务数据。也就是用户关系表的数据会打散分布到每个Segment节点。当进行数据访问时,首先所有Segment并行处理与自己有关的数据,如果需要Segment可以通过进行Innterconnect进行彼此的数据交互。Segment节点越多,数据就会打的越散,处理速度就越快。因此与Shared Everthting数据库集群不同,通过增加Segment节点服务器的数量,Greenplum的性能会成线性增长。

三. GreenplumBI(大数据应用)

Greenplum的特点主要就是查询速度快,数据装载速度快,批量DML处理快。而且性能可以随着硬件的添加,呈线性增加,拥有非常良好的可扩展性。因此,它主要适用于面向分析的应用。比如构建企业级ODS/EDW,或者数据集市等等。

Greenplum的数据库引擎层是基于著名的开源数据库Postgresql的,良好的兼容了Postgresql的功能 ,这使得Greenplum在支持BI等大数据分析与挖掘方面的应用时具备优秀的兼容性和丰富的拓展能力:

(1)Postgresql有非常强大 SQL 支持能力和非常丰富的统计函数和统计语法支持,除对ANSI SQL完全支持外,还支持比如分析函数(SQL2003 OLAP window函数),还可以用多种语言来写存储过程,对于Madlib、R的支持也很好。

(2)Postgresql中的功能模块和接口基本上99%都可以在Greenplum上使用,例如odbc、jdbc、oledb、perldbi、python psycopg2等,所以Greenplum与第三方工具(ETL工具)、BI报表集成的时候非常容易。

(3)对于postgresql的contrib中的一些常用模块Greenplum提供了编译后的模块开箱即用,如oraface、postgis、pgcrypt等,对于其它模块,用户可以自行将contrib下的代码与Greenplum的include头文件编译后,将动态so库文件部署到所有节点就可进行测试使用了。

Greenplum——大数据时代高性能的数据仓库与BI应用平台的更多相关文章

  1. 大数据时代变局与机遇,BI数字化转型的实战攻略!

    党的十九大报告提出,要推动互联网.大数据.人工智能和实体经济深度融合.更加高效地获取.运用信息,成为企业具有强大竞争力的重要标志.我国企业应牢牢把握历史性机遇,以更加开放的姿态,积极拥抱新经济,积极参 ...

  2. 大数据时代快速SQL引擎-Impala

    背景 随着大数据时代的到来,Hadoop在过去几年以接近统治性的方式包揽的ETL和数据分析查询的工作,大家也无意间的想往大数据方向靠拢,即使每天数据也就几十.几百M也要放到Hadoop上作分析,只会适 ...

  3. 转:大数据时代快速SQL引擎-Impala

    本文来自:http://blog.csdn.net/yu616568/article/details/52431835 如有侵权 可立即删除 背景 随着大数据时代的到来,Hadoop在过去几年以接近统 ...

  4. 大数据时代的IT架构设计

    大数据时代的IT架构设计(来自互联网.银行等领域的一线架构师先进经验分享) IT架构设计研究组 编著   ISBN 978-7-121-22605-2 2014年4月出版 定价:49.00元 208页 ...

  5. (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 决策树分析算法)

    随着大数据时代的到来,数据挖掘的重要性就变得显而易见,几种作为最低层的简单的数据挖掘算法,现在利用微软数据案例库做一个简要总结. 应用场景介绍 其实数据挖掘应用的场景无处不在,很多的环境都会应用到数据 ...

  6. 大数据时代的技术hive:hive介绍

    我最近研究了hive的相关技术,有点心得,这里和大家分享下. 首先我们要知道hive到底是做什么的.下面这几段文字很好的描述了hive的特性: 1.hive是基于Hadoop的一个数据仓库工具,可以将 ...

  7. 大数据时代的数据存储,非关系型数据库MongoDB

    在过去的很长一段时间中,关系型数据库(Relational Database Management System)一直是最主流的数据库解决方案,他运用真实世界中事物与关系来解释数据库中抽象的数据架构. ...

  8. 大数据时代的数据存储,非关系型数据库MongoDB(一)

    原文地址:http://www.cnblogs.com/mokafamily/p/4076954.html 爆炸式发展的NoSQL技术 在过去的很长一段时间中,关系型数据库(Relational Da ...

  9. 看大数据时代下的IT架构(1)业界消息队列对比

    一.MQ(Message Queue) 即 消息队列,一般用于应用系统解耦.消息异步分发,能够提高系统吞吐量.MQ的产品有很多,有开源的,也有闭源,比如ZeroMQ.RabbitMQ. ActiveM ...

随机推荐

  1. CentOS下的yum命令

    yum命令是rpm的一款前端工具,可以安装.更新.卸载rpm包,可以从指定服务器下下载rpm包并安装,可以自动解决依赖问题. 语法: yum [options] [command] [package ...

  2. 支付宝app支付服务器签名代码(C#)

    1,引入支付宝的sdk(AopSdk) 支付宝接口文档网站可下载,注意下载C#版本: 2,代码写的比较简单 public static string RSASign(string OrderNo,de ...

  3. C#单元测试,带你入门

    注:本文示例环境 VS2017 XUnit 2.2.0 单元测试框架 xunit.runner.visualstudio 2.2.0 测试运行工具 Moq 4.7.10 模拟框架 为什么要编写单元测试 ...

  4. xpo-4大类

      Xpo (XPBaseObject.XPLiteObject.XPCustomObject.XPObject) 类名 延后删除 是否乐观锁定 提供OID字段 XPBaseObject 不支持 支持 ...

  5. 腾讯云更换yum源

    最近公司使用了云服务器代替了机房的一些服务器,然而选择了腾讯云,个人观点通过比较还是阿里云好了点,可能为了使用腾讯云的一些其他功能吧,书归正文. 由于腾讯的源网站经常挂,在我使用过的一台腾讯云主机的时 ...

  6. Vmware报错:此主机支持IntelVTx 但IntelVTx处于禁用状态

    "此主机支持IntelVTx 但IntelVTx处于禁用状态",报错原因:电脑未开启虚拟化 解决方案: 电脑关机(是关机不是重启)--开机,进BIOS --选择 configura ...

  7. iStat for mac

    iStat for mac 电脑硬件信息检测软件,安装完成后它位于"系统偏好设定"的应用程序面板,让您从选单列监测系统的各项丰富资讯,又不会占用使用者太大的桌面空间,提供的信息包括 ...

  8. 【LR11】Error -27796: Failed to connect to server"server:port": [10060] Connection timed out错误解决办法

      场景描述:被测系统是发布在远程服务器上的,假设IP是10.10.10.10,端口是8066,那么访问地址是http://10.10.10.10:8066/,在control机器上我设置了IP欺骗. ...

  9. 基于Redis实现分布式锁(1)

    转自:http://blog.csdn.net/ugg/article/details/41894947 背景在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等.大部 ...

  10. MySql学习笔记(五) —— 存储过程

    存储过程是MySql 5支持的特性,它是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之 ...