1、PostgreSQL教程
2、postgresql与mysql比较
3、阿里云德哥:PostgreSQL 数据库的前世今生
4、PostgreSQL 好评如潮,它是如何做到的? - 开源中国
GreenPlum是面向数据仓库应用的关系型数据库,基于PostgreSQL开发,跟PostgreSQL的兼容性非常好,大部分PostgreSQL客户端工具及PostgreSQL应用都能运行在GreenPlum平台上。
数据库系统一般分为两种类型: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。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最早是在10多年前(大约在2002年)出现的,基本上和Hadoop是同一时期(Hadoop 约是2004年前后,早期的Nutch可追溯到2002年)。当时的背景是:
下图就是GFS的架构
数据库由Master Severs和Segment Severs通过Interconnect互联组成。
简单来说
Master主机负责:建立与客户端的连接和管理;SQL的解析并形成执行计划;执行计划向Segment的分发收集Segment的执行结果;Master不存储业务数据,只存储数据字典。
Segment主机负责:业务数据的存储和存取;用户查询SQL的执行。
master节点,可以做成高可用的架构
master node高可用,类似于hadoop的namenode和second namenode,实现主备的高可用。
segments节点
Greenplum数据库软件将数据平均分布到系统的所有节点服务器上,所以节点存储每张表或表分区的部分行,所有数据加载和查询都是自动在各个节点服务器上并行运行,并且该架构支持扩展到上万个节点。
对于数据的装载和性能监控。
并行备份和恢复。
数据访问流程,数据分布到不同颜色的节点上
查询流程分为查询创建和查询分发,计算后将结果返回。
对于存储,将存储的内容分布到各个结点上。
对于数据的分布,分为hash分布和随机分布两种。
均匀分布的情况:
Greenplum发明支持混合按列或按行存储数据,每张表或表分区可以由管理员根据应用需要,分别指定存储和压缩方式。基于这个功能,用户可以对任何表或表分区选择按行或按列存储数据和处理方式。这些是在建表或表分区的DDL语句中配置的,只需在建表或表分区时指定。这个功能基于Greenplum的多态维数据存储技术。
Master和Segment都是一个单独的PostgreSQL数据库。每一个都有自己单独的一套元数据字典。
Master节点一般也叫主节点,Segment叫做数据节点。
为了实现高可用,每个Segment都有对应的备节点 Mirror Segment分别存在与不同的机器上。
Client一般只能与Master节点进行交互,Client将SQL发给Master,然后Master对SQL进行分析后再将其分配给所有的Segment进行操作。
Greenplum没有Windows版本,只能安装在类UNIX的操作系统上。
Greenplumn极度消耗I/O资源,所以对存储的要求比较高。
sql调优:Greenplum优化--SQL调优篇
性能调优:Greenplum实战之查询优化