我们的项目要求是让某些表只出现在当前可用的5个节点中的一个/两个节点上。
是否可以将表保留在K-1安全集群中的特定节点上?
答案 0 :(得分:2)
您永远不可能只在一个节点上存在所有单个数据集,并且仍具有k-1安全性。 k-1安全性的想法是节点可以在不降低数据可用性的情况下关闭(事实上,如果主节点或伙伴节点上的数据不可用,Vertica将永远不会允许这种情况发生,那么它将关闭)。
但是,您可以指定要取消分段的特定节点。老实说,这根本不是一个好主意。您将创建热点(集中数据,集中工作量)。您还将创建一种情况,如果某人登录到其他节点,则更多数据可能必须通过专用网络才能到达启动器。
我从来没有见过有人在练习中这样做,我会谨慎对待它。如果群集中的一个节点速度很慢,则可能会影响整个群集的性能。
要回答您的问题,尽管......要取消对特定节点的分割,这是CREATE PROJECTION
命令的子句。
UNSEGMENTED { NODE node | ALL NODES } ]
只需创建两个投影,每个投影一个。您至少需要2个节点才能满足k-safety。这种k-安全检查要么在第一次插入之前发生(或者如果在刷新满足k-safety的足够新的投影之前尝试丢弃其他现有投影)。
但是,如果你真的知道自己在做什么,那就去做吧。如果这个集群将增长并获得更多工作负载,那么执行此类配置是一项管理噩梦。