2024年4月16日发(作者:)

1 概述

随着海量数据问题的出现,海量管理能力,多类型,变化快,高可用性,低成本,高端可扩展性

等需求给企业数据战略带来了巨大的挑战。企业数据仓库、数据中心的技术选型变得尤其重要!所以

在选型之前,有必要对目前市场上各种大数据量的解决方案进行分析。

2 主流分布式并行处理数据库产品介绍

2.1 Greenplum

2.1.1 基础架构

Greenplum是基于Hadoop的一款分布式数据库产品,在处理海量数据方面相比传统数据库有着

较大的优势。

Greenplum整体架构如下图:

SQL

MapReduc

SQL

MapReduc

...

...

Master

Severs

查询解析、优化、分发

Network Interconnect

...

Segment

Severs

查询处理、数

据存储

External

Sources

数据加载

... ...

数据库由Master Severs和Segment Severs通过Interconnect互联组成。

Master主机负责:建立与客户端的连接和管理;SQL的解析并形成执行计划;执行计划向Segment

的分发收集Segment的执行结果;Master不存储业务数据,只存储数据字典。

Segment主机负责:业务数据的存储和存取;用户查询SQL的执行。

2.1.2 主要特性

Greenplum整体有如下技术特点:

 Shared-nothing架构

海量数据库采用最易于扩展的Shared-nothing架构,每个节点都有自己的操作系统、数据库、硬

件资源,节点之间通过网络来通信。

 基于gNet Software Interconnect

数据库的内部通信通过基于超级计算的“软件Switch”内部连接层,基于通用的gNet (GigE,

10GigE) NICs/switches在节点间传递消息和数据,采用高扩展协议,支持扩展到1000个以上节点。

 并行加载技术

利用并行数据流引擎,数据加载完全并行,加载数据可达到4。5T/小时(理想配置)。并且可以

直接通过SQL语句对外部表进行操作

 支持行、列压缩存储技术

海量数据库支持ZLIB和QUICKLZ方式的压缩,压缩比可到10:1。压缩数据不一定会带来性

能的下降,压缩表通过利用空闲的CPU资源,而减少I/O资源占用。

海量数据库除支持主流的行存储模式外,还支持列存储模式。如果常用的查询只取表中少量字段,

则列模式效率更高,如查询需要取表中的大量字段,行模式效率更高。

海量数据库的多种压缩存储技术在提高数据存储能力的同时,也可根据不同应用需求提高查询的

效率

2.1.3 主要局限

 列存储模式的使用有限制,不支持delete/update操作。

 用户不可灵活控制事务的提交,用户提交的处理将被自动视作整体事务,整体提交,整体回

滚。

 数据库需要额外的空间清理维护(vacuum),给数据库维护带来额外的工作量。

 用户不能灵活分配或控制服务器资源。

 对磁盘IO有比较高的要求。

 备份机制还不完善,没有增量备份。

2.2 Vertica

2.2.1 基础架构

与以往常见的行式关系型数据库不同,Vertica 是一种基于列存储(Column-Oriented)的数据库

体系结构,这种存储机构更适合在数据仓库存储和商业智能方面发挥特长。

常见的RDBMS 都是面向行(Row-Oriented Database)存储的,在对某一列汇总计算的时候几乎

不可避免的要进行额外的I/O 寻址扫描,而面向列存储的数据库能够连续进行I/O 操作,减少了I/O

开销,从而达到数量级上的性能提升。

同时,Vertica 支持海量并行存储(MPP)架构,实现了完全无共享,因此扩展容易,可以利用

廉价的硬件来获取高的性能,具有很高的性价比。

如下图,展示的是单节点上的Vertica 的基本体系结构。