体系结构

了解 Vertica 的工作原理有助于您有效地设计、构建、操作和维护 Vertica 数据库。此部分假定您熟悉关系数据库管理系统和 SQL 的基本概念和术语。

列存储

Vertica 以列格式存储数据,以便可以查询数据以获得最佳性能。与基于行的存储相比,列存储可减少磁盘 I/O,使其成为读取密集型工作负载的理想选择。Vertica 仅读取回答查询所需的列。对列进行编码和压缩可进一步提高性能。

Vertica 使用许多不同的编码策略,具体取决于列数据类型、表基数和排序顺序。编码可提高性能,因为执行查询只需较少的磁盘 I/O。此外,还可以在较少的空间中存储更多的信息。

使用压缩后,列存储占用的存储空间大大少于行存储。在列存储中,投影列中存储的每个值都具有相同的数据类型。这极大地方便了压缩操作,尤其是在经过排序的列中更是如此。在行存储中,行中的每个值都具有不同的数据类型,因此实际压缩效果要低很多。Vertica 使用的高效存储方法使得您能够在物理存储中维护更多历史数据。

投影

一个投影由一组具有相同排序顺序的列组成,该排序顺序由要用作排序依据的一个列或一系列的列定义。与传统数据库中的索引或实体化视图一样,投影可加快查询处理速度。当根据原始表编写查询时,查询会使用投影返回查询结果。有关详细信息,请参阅投影

投影会分布和复制到群集中的各个节点,确保在一个节点不可用时,数据的另一个副本仍然可用。这种冗余称为 K-safety

自动数据复制、故障转移和恢复可实现主动冗余,从而提高性能。节点可通过查询系统实现自动恢复。

Eon 模式和企业模式

Vertica 数据库采用以下两种模式之一运行:Eon 模式或企业模式。这两种模式都可以部署在内部部署或云中。在 Eon 模式下,计算和存储分开;数据库使用共享的公共存储,您可以根据需要添加或移除节点或子群集。在企业模式下,每个数据库节点都有一份数据,并且会分发查询以利用数据局部性。了解这些模式之间的差异至关重要。请参阅Eon 模式与企业模式