vertica介绍

简介

Vertica是一款基于列存储的MPP(massively parallel processing)架构的数据库。它可以支持存放多至PB(Petabyte)级别的结构化数据。是由关系数据库大师Michael Stonebraker(2014 年图灵奖获得者)所创建,于2011年被惠普收购并成为其核心大数据平台软件。

Vertica 采用无共享的MPP 架构,基于工业标准的x86 服务器,拥有高可扩展性。
Vertica 集群中的所有节点100%对等,集群中没有主节点或其他共享资源。通过增加节点,就可以线性地扩展集群的计算能力和数据处理容量。
Vertica 是真正的纯列式数据库,优化器和执行引擎可以忽略表中与查询无关的列。Vertica 不仅仅按列式存储数据,还主动地根据列数据的特点和查询的要求选用最佳的算法对数据进行排序和编码压缩,这就极大地降低磁盘I/O 消耗。同时,Vertica 的执行引擎和优化器也是基于列式数据库设计的,编码压缩过的列数据在Vertica 的执行引擎中进行过滤、关联、分组等操作时不需要解反编码,从而大大降低了CPU 和内存消耗。
Vertica 充分利用列式存储的优点,在保持对前端应用透明的前提下,把数据在集群中的所有节点进行均匀分布的同时,还在多个节点上对同一份数据维护了多个拷贝,确保任意一个或几个节点出现故障或进入维修状态都不会影响集群的健康状态。这使得Vertica 拥有类似磁盘RAID 一样高可靠性。
无共享的MPP 架构和真正的列式数据库特性,使Vertica 拥有高性能、高扩展性、高压缩率、高健壮性的特点。与传统的解决方案相比,Vertica 可以以30%的成本,实现50 倍-1000 倍的性能提高。
--------------------------------------------以上来自百度百科------------------------------------------------

Vertica架构基础知识

Vertica体系结构的核心有几个关键概念,介绍如下:

列存储

Vertica以列格式存储数据,因此可以查询以获得最佳性能。与基于行的存储相比,列存储减少了磁盘I / O,使其成为读取密集型工作负载的理想选择。Vertica仅读取回答查询所需的列。例如:

=> SELECT avg(price)FROM tickstore WHERE symbol ='AAPL' and date ='5/31/13';

对于此示例查询,列存储只读取三列,而行存储读取所有列:
vertica介绍_第1张图片

数据编码和压缩

Vertica使用编码和压缩来优化查询性能并节省存储空间。

编码将数据转换为标准格式。Vertica使用许多不同的编码策略,具体取决于列数据类型,表基数和排序顺序。编码提高了性能,因为在查询执行期间磁盘I / O较少。此外,您可以在更小的空间中存储更多数据。

压缩将数据转换为紧凑格式。Vertica使用多种不同的压缩方法,并自动为压缩数据选择最佳压缩方法。使用压缩,Vertica可以存储更多数据,提供更多视图,并且使用的硬件比其他数据库少。使用压缩可以在物理存储中保留更多历史数据。

集群

集群支持扩展和冗余。您可以通过添加更多节点来扩展数据库群集,并且可以通过在群集中分发和复制数据来提高可靠性。
下图是K-safe=1的情况(k-safe技术:保证在vertica集群内,每一个数据库的每一个表的每一个列都被存储在至少K+1台机器上,这样当K台机器不可用,仍然有一个完整的数据库备份可用)。
vertica介绍_第2张图片
列数据分布在集群中的节点上,因此如果一个节点变得不可用,则数据库继续运行。将节点添加到群集或在不可用后重新联机时,它会自动查询其他节点以更新其本地数据。

Projections

(A projection consists of a set of columns with the same sort order, defined by a column to sort by or a sequence of columns by which to sort)。与传统数据库中的索引或物化视图一样,projections可加速查询处理(同一张表的多个projection可按不同排序方式、压缩模式以及数据分布满足查询的多样性)。根据原始表编写查询时,查询使用projections返回查询结果。

projections在群集中的节点之间分布和复制,确保如果一个节点不可用,则另一个数据副本仍然可用。
通过自动数据复制,故障转移和恢复提供了主动冗余,从而提高了性能。节点通过查询系统自动恢复。

Logical and Physical Schema

Vertica将有关数据库对象的信息存储在逻辑架构和物理架构中。两种模式之间的差异以及它们与数据存储的关系是Vertica体系结构的一个重要且独特的方面。

逻辑架构包含的对象,包括表,约束,和视图。Vertica支持您选择的任何关系模式设计。
物理架构实际为projections(A physical schema consists of collections of table columns called projections. A projection can contain some or all of the columns of a table)。

参考:
https://www.vertica.com/documentation/vertica/9-1-x/

博客:http://blog.sina.com.cn/s/blog_75ad98f30102w6pl.html
关于vertica的特性写的比较详细,可进行参考。

你可能感兴趣的:(Vertica)