Greenplum企业应用实战(笔记):第一章 greenplum简介

第一章 greenplum简介

[TOC]

1.1 greenplum的起源和发展历程

针对数据密集型计算中的海量数据处理这一高效的数据管理功能。比较典型的解决方案有Teradata、Greenplum、Hadoop Hive、Oracle Exadata、IBM Netteza等

1.2 OLTP与OLAP

数据库系统一般分为两种类型:OLTP、OLAP:

OLTP(On-Line Transaction Processing,联机事务处理)系统:也称为生产系统,它是事件驱动的、面向应用的,比如电子商务网站的交易系统就是一个典型的OLTP系统。

OLTP的基本特点:

  1. 数据在系统中产生
  2. 基于交易的处理系统(Transaction-Based)
  3. 每次交易牵涉的数据量很小
  4. 对响应时间要求非常高
  5. 用户数量非常庞大,主要是操作人员
  6. 数据库的各种操作主要基于索引进行

OLAP(On-Line Analytical Processing,联机分析处理)系统:是基于数据仓库的信息分析处理过程,是数据仓库的用户接口部分。是跨部门的、面向主题的。

OLAP的基本特点是:

  1. 本身不产生数据,其基础数据来源于生产系统中的操作数据(OperationalData)
  2. 基于查询的分析系统
  3. 复杂查询经常使用夺标联结、全表扫描等,牵涉的数据量往往十分庞大
  4. 响应时间与具体查询有很大关系
  5. 用户数量相对较小,其用户主要是业务人员与管理人员
  6. 优于业务问题不固定,数据库的各种操作不能完全基于索引进行

greenplum属于OLAP

1.3 PostgreSQL与Greenplum的关系

1.3.1 PostgreSQL

PostgreSQL:是一种非常先进的对象-关系型数据库管理系统(ORDBMS),是目前功能最强大,特性最丰富和技术最先进的自由软件数据库系统之一

特性:

  1. 函数/存储过程
    1. 内置的plpgsql,一种类似oracle的plsql的语言
    2. 支持的脚本语言有:PL/Lua、PL/LOLCODE、PL/Perl、PL/HP、PL/Python、PL/Ruby、PL/sh、PL/Tcl和PL/Scheme
    3. 编译语言有C、C++、JAVA
    4. 统计语言PL/R
  2. 索引:支持用户歹意的索引访问方法,并且内置B-tree、哈希和GiST索引。特点如下:
    1. 可以从后向前扫描
    2. 可以创建表达式索引
    3. 部分索引
  3. 触发器
  4. 并发管理(MVCC,多版本并发机制)
  5. 规则(RULE):规则允许我们队由一个查询生成的查询数进行改写
  6. 数据类型
    1. 任意精度的数值类型
    2. 无线长度的文本类型
    3. 几何原语
    4. IPv4和IPv6类型
    5. CIDR块和MAC地址
    6. 数组
    7. 自定义类型
  7. 用户定义对象:索引、操作符(内部操作符可以被覆盖)、聚集函数、域、类型转换、编码转换
  8. 继承:表可以相互继承。一个表可以有父表,父表的结构变化会导致子表的结构变化,而对子表的插入和数据更新等也会反映到父表中
  9. 其他特性与扩展
    1. 二进制和文本大对象存储
    2. 在线备份
    3. TOAAT(The Oversized-Attribute Storage Technique)用于透明地在独立的地方保存大的数据库属性。当数据超过一定大小的时候,会自动进行压缩以节省空间
    4. 正则表达式
    5. Slony-I
    6. pgcluster
    7. Mammoth replicator
    8. Bucardo

1.3.2 Greenplum

本质上讲,greenplum 是一个关系型数据库集群,是由数个独立的数据库服务组合成的逻辑数据库。

与oracle RAC的shared-Everything架构不同,greenplum采用Shared-Nothing架构,整个集群由很多个数据节点(Segment Host)和控制节点(master Host)组成,其中每个数据节点上可以运行多个数据库。简单来说,Shared-Nothing是 一个分部式的架构,每个节点相对独立。在典型的Shared-Nothing中,每一个节点上所有的资源(CPU,内存,磁盘)都是独立的,每个节点都只有全部数据的一部分,也只能使用本节点的资源

在greenplum中,需要存储的数据在进入数据库时,将先进行数据分布的处理工作,将一个表中的数据平均分布到每个节点上,并为每个表指定一个分布列(distribute Column),之后便根据Hash来分布数据。基于Shared-Nothing的原则,Greenplum这样处理可以充分发挥每个节点处I/O的处理能力

1.4 greenplum特性及应用场景

1.4.1 特性

  1. 支持海量数据存储和处理
  2. 高性价比
  3. 支持Just In Time BI:通过准实时、实时的数据加载方式,实现数据仓库的实时更新,进而实现动态数据仓库(ADW),基于动态数据仓库,业务用户能对当前业务数据进行BI实时分析(Just In Time BI)
  4. 系统易用性
    1. 支持主流的sql语法,使用起来十分方便,学习成本低
    2. 扩展性好,支持多语言的自定义函数和自定义类型等
    3. 提供了大量的维护工具,使用维护起来很方便
    4. 在internet上有这丰富的postgreSQL资源供用户参考
  5. 支持线性扩展:采用MPP并行处理架构。在MPP结构中增加节点就可以线性提供系统的存储容量和处理能力
  6. 较好的并发支持及高可用性支持除了提供硬件级的Raid技术外,还提供数据库层Mirror机制保护,也剧场将每个节点的数据在另外的节点中同步镜像,单个节点的错误不影响整个系统的使用。对于主节点,还提供Master/Stand by机制进行主节点容错,当主节点发生错误时,可以切换到Stand by节点继续服务
  7. 支持MapReduce:一种大规模数据分析技术
  8. 数据库内部压缩

1.4.2 greenplum应用场景

greenplum的主要特点:查询速度快、数据装载速度快、批量DML处理快、性能可以随着硬件的添加呈线性增加、拥有非常良好的课扩展性。

主要适用于面向分析的应用,如构建企业级ODS/EDW、数据集市等

    原文作者:凉秋_不见春暖
    原文地址: https://www.jianshu.com/p/b5c85cadb362
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞