分区和分段

在 Vertica 中,分区和分段是不同的概念,可实现不同的数据本地化目标:

  • 分段 是指跨群集节点组织和分发数据,以便实现快速数据清除和查询性能。分段的目的是使数据在多个数据库节点上均匀分布,以便所有节点均参与查询执行。可通过 CREATE PROJECTION 语句的哈希分段子句来指定分段。

  • 分区 指定如何在各个节点内组织数据以进行分布式计算。通过节点分区,可以轻松地标识要删除的数据和帮助回收磁盘空间。可以通过 CREATE TABLE 语句的 PARTITION BY 子句来指定分区。

例如:按年对数据进行分区对于保留和删除年度数据意义重大。然而,按年对相同数据分段则效率低下,因为与其他节点相比,包含本年数据的节点所要响应的查询可能要多得多。

下图显示了四节点数据库群集的分段和分区流:

  1. 示例表数据

  2. HASH(order_id) 分段的数据

  3. 按哈希跨四个节点分段的数据

  4. 按年在单个节点上分区的数据

尽管分区发生在所有四个节点上,但为了简单起见,示意图仅显示一个节点上的分区数据。

数据分区与分段

另请参阅