GreenPlum的那些事《一》——GreenPlum数据库介绍

1. 数据存储

行式数据库是按照行存储的,行存储就是各行放入连续的物理位置,就行我们平时写字一样,一行一行的写,读取的时候也是一行一行的读取。像SQL server,Oracle,mysql等传统的关系型数据库都属于行式数据库范畴。
列式数据库是按照列存储的,列存储是把多行数据的每一列按照列存储在磁盘,就像一把数据写入excel表格中,每次按照列读取数据,像Vertica,GreenPlum,HBase(HBase其实不是真正的列式数据库,是按照列簇存储的)。
列存储和行存储对比

2. GreenPlum架构

massively parallel processing 简称MPP,即无共享、大规模并行处理。
MPP架构

MPP架构有如下特点:

  • Share Nothing节点之间数据不共享,只有通过网络连接实现的协同,每个节点有独立的存储和内存。
  • 数据根据某种规则(如Hash)散布到各个节点
  • 计算任务也是会发布到各个节点并行执行,最后再将结果聚合到整体返回
  • 用户使用时会看做整体

Greenplum 数据库软件将数据平均分布到系统的所有节点服务器上,所以节点存储每张表或表分区的部分行,所有数据加载和查询都是自动在各个节点服务器上并行运行,并且该架构支持扩展到上万个节点。

压缩数据
根据数据类型、基数自动进行数据压缩,支持多种压缩算法,压缩比通常可达10:1左右,支持直接访问编码数据的数据值,大大节省在数据查询期间的CPU开销,获得相应有效 I/O 性能提升。

所以在此说明下,建表的时候字段类型一定要选择合适的类型,比如数字类型就选数字类型,不要选字符类型,使用的时候在转换,时间类型也一样。

以上简单的介绍了GPDB的一些特性,在使用中优化就要依据这些特性来的。后期会逐渐介绍GPDB的使用和优化。