DESIGNER_SET_DESIGN_KSAFETY
为全面设计设置 K-safety 并将 K-safety 值存储在
DESIGNS
表中。对于增量设计,Database Designer 会忽略此函数。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
DESIGNER_SET_DESIGN_KSAFETY ( 'design‑name' [, k‑level ] )
参数
- design‑name
- 要为其设置 K-safety 值的设计名称,VARCHAR 类型。
- k‑level
- 介于 0 和 2 之间的整数,用于指定目标设计的 K-safety 级别。此值必须与数据库群集中的节点数兼容:
-
k‑level = 0
:≥ 1 个节点 -
k‑level = 1
:≥ 3 个节点 -
k‑level = 2
:≥ 5 个节点
如果忽略此参数,Vertica 会根据节点数将此设计的 K-safety 设置为 0 或 1:如果群集包含 ≥ 3 个节点,则为 1,否则为 0。
如果您是 DBADMIN 用户并且 k-level 与系统 K-safety 不同,Vertica 会按如下方式更改系统 K-safety:
-
如果 k-level 小于系统 K-safety,Vertica 会在部署设计后将系统 K-safety 更改为较低级别。
-
如果 k-level 大于系统 K-safety 并且对数据库群集有效,Vertica 会为此设计中的表创建所需数量的伙伴实例投影。如果设计适用于所有数据库表,或者数据库中的所有表都具有所需数量的伙伴实例投影,则 Database Designer 将系统 K-safety 更改为 k-level。
如果设计排除了一些数据库表并且它们的伙伴实例投影数量小于 k-level,Database Designer 将系统 K-safety 保持不变。它会返回警告并指出哪些表需要新的伙伴实例投影以调整系统 K-safety。
如果您是 DBDUSER,Vertica 会忽略此参数。
-
特权
非超级用户:设计创作者示例
以下示例将 VMART_DESIGN 设计的 K-safety 设置为 1:
=> SELECT DESIGNER_SET_DESIGN_KSAFETY('VMART_DESIGN', 1);