是否可以在 Vertica 的 K-1 安全集群中的一个节点上创建一个未分段的 table?

Is it possible to create an unsegmented table on one node in a K-1 safe cluster in Vertica?

我们的项目要求是在当前可用的 5 个节点中,只有 one/two 个节点存在某些表。

是否可以将表保存在 K-1 安全集群中的特定节点上?

您永远不可能让单个数据集的所有内容仅存在于一个节点上,并且仍然具有 k-1 安全性。 k-1 安全的想法是节点可以在不降低数据可用性的情况下关闭(事实上,Vertica 永远不会允许这种情况发生,如果数据在主节点或伙伴节点上不可用,那么它将关闭).

但是,您可以指定要取消分段的特定节点。老实说,这根本不是一个好主意。您将创建热点(集中数据、集中工作负载)。您还将创建这样的情况,如果一个人登录到其他节点,则更多数据可能必须通过专用网络才能到达发起者。

我从未见过任何人在实践中这样做,我会警告不要这样做。如果集群中的一个节点速度很慢,它可能会影响整个集群的性能。

要回答您的问题,但是...要取消分段到特定节点,这是 CREATE PROJECTION 命令的子句。

UNSEGMENTED { NODE node | ALL NODES } ]

只需创建两个投影,每个节点一个。您至少需要 2 个节点才能满足 k-safety。这种 k-safety 检查在第一次插入之前不会发生(或者如果您尝试在刷新足够多的满足 k-safety 的新投影之前删除其他现有投影)。

不过,只有当您真正知道自己在做什么时才这样做。如果这个集群要增长并获得更多的工作负载,那么进行这种类型的配置将是一场管理噩梦。