PgSQL个人学习笔记
一、数据库介绍
数据库选择
数据库的选择是很重要的,因为数据库的选择无疑是一个长期的决策,决定了后面的开发代价以及开发难度。所以在开始做数据库选择的时候一定要根据具体业务场景进行选择。
PostgreSQL介绍
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTFGRES,现在已经更名为POSTGRES,版本4.2为基础的对象关系型数据库管理系统(ORDBMS)。 PostgreSQL支持大部分的SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL可以用许多方法扩展,比如:通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言。并且,因为许可证的灵活,任何人都可以以任何目的的免费使用、修改和分发PostgreSQL,不管私用、商用、还是学术研究使用。
Greenplum介绍
GP是在开源的PostGreSQL基础上开发的。GP不是开源的,是商业版的,PostGreSQL是开源的。当前使用OLTP程序中,用户访问一个中心数据库,如果采用SMP系统结构,他的效率要比采用MPP结构要快的多。而MPP胸痛在决策支持和数据挖掘方面显示了优势,可以这样说,如果操作相互之间没有什么关系,处理单元之间需要进行的通信比较少,那采用MPP系统就要好,相反就不合适。
MySQL介绍
MySQL相对来说较为年轻,但是目前MySQL已经成为最流行的开源数据库。 MySQL的设计目标是成为一个快速的Web服务器后端,使用快速的索引序列访问方法(ISAM),不支持ACID。经过早期的之后,MySQL开始支持更多的存储引擎,并通过InooDB引擎实现了ACID。MySQL还支持其他存储引擎,提供了临时表的功能(使用Memory存储引擎),通过MyISAM引擎实现了高速读的数据库,此外还有其他核心存储引擎与第三方引擎。 MySQL的文档非常丰富,学习资源丰富。 MySQL近几年经历了所有权的变更和一些较为戏剧性的事件。它最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版本:Standard、Enterprise、Classic、Cluster、Embedded、Community。其中有一些是
二、PostgreSQL和GreenPlum对比
数据存储
当今是个数据不断膨胀的时代,采取MPP架构的数据库系统才能对海量的数据进行管理。GreenPlum支持50PB(1PB=1000TB)级海量数据的存储和处理,GreenPlum将来自不同源系统、不同部门、不同平台的数据集成到数据库中集中存放并且存放详尽历史的数据轨迹,业务用户不用再面对一个又一个信息孤岛,也不再困惑不同版本的数据导致的偏差,同时对于IT人员也降低管理维护工作的复杂度。
高并发
随着商业智能在企业内的快速发展,BI用户对信息分析平台的访问频率和查询复杂度也快速提升,因此要求相应的数据库系统对高并发查询进行支持。GreenPlum利用强大并行处理能力提供并发支持。 GreenPlum提供资源管理功能来管理数据库资源,利用资源队列管理可实现按用户组的进行资源分配,如Session同时激活数、最大资源值等。通过资源管理功能,可以按照用户级别进行资源分配和管理用户SQL查询优先级别,同时也能防止低质量SQL对系统资源的消耗。
线性扩展
GreenPlum与其他分布式大数据产品例如YongHong Z-DataMart一样采用通用的MPP并行处理架构,在MPP架构中增加节点就可以线性提高系统的存储容量和处理能力。 GreenPlum在扩展节点时操作简单,在很短时间内就能完成数据的重新分布。 GreenPlum线性扩展支持为数据分析系统将来得扩展给予了技术上得保障,用户可根据实施需要进行容量和性能得扩展
高性价比
GreenPlum数据库软件系统节点基于业界各种开放式硬件平台,如SUN/HP/DELL等厂商的PC Server等,在普通的X86 Server就能达到很高的性能,因此性价比很高,相比于其他分布式数据仓库专用系统,GreenPlum每TB的投资是前者的1/5甚至更低。同样,GreenPlum产品的维护成本相比同类厂商也低许多。
反应速度
我们面对的是一个瞬息万变的市场,谁能首先感知到市场的需求和变化,就能在竞争中先行一步,获得主动权,在竞争者立于不败之地。 GreenPlum通过准实时、实时的数据加载方式,实现数据仓库的实时更新,进而实现动态数据仓库。基于动态数据仓库,业务用户能对当前业务数据进行BI实时分析,能够让企业敏锐感知市场的变化,加快决策支持反应速度。
高可用性
GreenPlum是高可用的系统,在已有案例中最多使用了96台机器的集群MPP环境。除了硬件级的Raid技术外,GreenPlum还提供数据库层Mirror机制保护,即每个节点数据在另外的节点中同步镜像,单个节点的错误不影响整个系统的使用。 对于主节点,GreenPlum提供Master/Stand by机制进行主节点容错,当主节点发生错误时,可以切换到Stand by系欸但继续服务
系统易用
GreenPlum产品是基于流行的PostgreSQL之上进行开发的,几乎所有的PostgreSQL客户端工具及PostgreSQL应用都能运行在GreenPlum平台上,在Internet上有着丰富的PostGreSQL资源供用户参考。
n、拓展
SMP
SMP,对外称多处理器。顾名思义,在SMP中所有处理器都是对等的,他们通过总线连接共享同一块物理内存,这也就导致了系统中所有资源(CPU,内存,I/O等)都是共享的,当我们打开服务器的背板盖,如果发现又多个CPU槽位,但是却连接到同一个内存插槽的位置,那一般就是SMP架构的服务器,日常中常见的PC,笔记本、手机还有一些老的服务器都是使用这种架构。该架构相对简单,但是拓展性能非常差。
[root@hadoop_zxy ~]# ls /sys/devices/system/node/
## 如果只能看到一个node0,那就是SMP架构
has_cpu has_memory has_normal_memory node0 online possible power uevent
MPP
MPP,这个可以理解为刀片服务器,每个刀扇里都是一台独立的SMP架构服务器,且每个刀扇之间均有高性能的网络设备进行交互,保证SMP服务器之间的数据传输性能。相对于NUMA来说更适合大规模的计算,唯一不足的是,当其中的SMP节点增多的情况下,与之对应的计算管理系统也会相应的提高。
NUMA
NUMA,非均匀访问存储模型,这种模型就是为了剞劂SMP扩容性很差而提出的技术方案,如果说SMP相当于多个CPU连接一个内存池导致请求经常发生冲突的话,NUMA就是将CPU的资源分来,以node为单位进行切割,每个node里都有独立的core,memory等资源,这也就导致CPU在性能使用上的提升,但是同样存在问题就是2个node之间的资源交互非常慢,当CPU增多的情况下,性能提升的幅度并不是很高,所以可以看到很多明明有很多core的服务器却只有2个Node区
|