在 vertica 数据库中使用投影的目的

Purpose of using projections in vertica database

我有一个使用投影的 vertica 数据库。我阅读了 vertica 文档,但文档通常会讨论如何发布;

https://my.vertica.com/docs/7.2.x/HTML/index.htm#Authoring/SQLReferenceManual/Statements/CREATEPROJECTION.htm?Highlight=projection

https://my.vertica.com/docs/7.2.x/HTML/index.htm#Authoring/SQLReferenceManual/SystemTables/CATALOG/PROJECTIONS.htm?Highlight=projection

我需要知道投影的逻辑,为什么?只是为了表现?

Vertica 中的投影有 3 个主要用途。

1) 存储数据 - 当您创建 table 时,在 vertica 中,在后台 vertica 将为您的数据创建超级投影,超级投影是您数据的主要存储,它包括您的所有列和有一些你可以玩的默认值。

2) 性能 - 投影就像数据的物化视图(如果您有一些 Oracle 背景,它会更容易理解),您可以在主 tables 的子列上创建它们具有不同的排序顺序和不同的分段,它非常导入 MPP 数据库以具有正确的投影设计以获得良好的性能。

3) 用于HA,集群数据库,在某些情况下你想在集群上的不同节点之间拆分数据,这样每个节点都会有部分数据集。使用该方法,当其中一个节点崩溃时,您希望停机时间为零,投影通过在您的节点中包含其他节点数据的一部分来帮助实现这一点(vertica 自动管理它,您可以查看 KSAFE 的文档)

希望你会觉得有用 谢谢