SET_DEPOT_PIN_POLICY_PARTITION
仅限 Eon 模式
将表或投影的指定分区固定到子群集存储库或所有数据库存储库,以减少存储库逐出的风险。
仅当组内的所有分区都单独固定时,才能固定分区组。如果更改或移除表分区,Vertica 会删除该表的所有分区固定策略。表的固定策略(如有)不受影响。
有关固定策略和使用指南的详细信息,请参阅固定存储库对象。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
SET_DEPOT_PIN_POLICY_PARTITION ( '[[database.]schema.]object‑name', 'min‑range‑value', 'max‑range‑value' [, 'subcluster' ] [, 'download' ] )
参数
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。- object-name
- 要固定的表或投影。如果指定一个投影,则该投影必须存储分区键。
注意
在将表或表的一个投影固定到子群集后,将不能再将其任何分区固定到该子群集。相反,您可以将一个或多个表分区固定到子群集,然后再将表或表的一个投影固定到该子群集。 - min‑range‑value
max‑range‑value - 要固定的 object-name 中分区键的最小值和最大值,其中 min-range-value 必须 ≤ max‑range‑value。要指定单个分区,min‑range‑value 和 max‑range‑value 必须相等。
注意
如果同一表上的分区固定策略指定的键范围重叠,则 Vertica 将对分区范围进行排序。例如,如果您创建了两个分区策略,其键范围分别为 1-3 和 2-4,则 Vertica 将创建一个键范围为 1-4 的固定策略。 - subcluster
- 在 subcluster 存储库上设置此固定策略。要在默认子群集上设置此策略,请指定
default_subcluster
。如果省略此参数,系统将在所有数据库存储库上设置该策略。 - download
- 布尔值,如果设置为 true,SET_DEPOT_PIN_POLICY_PARTITION 会立即将指定的分区添加到从公共存储下载的队列中。
默认值:false
特权
超级用户
固定策略的优先级
一般来说,涉及两个分区表的分区管理函数的优先级高于目标表的固定策略,如下所示:
例如,以下语句将分区从表 foo
复制到表 bar
:
=> SELECT COPY_PARTITIONS_TO_TABLE('foo', '1', '5', 'bar');
在这种情况下,将应用以下逻辑:
-
如果两个表具有不同的分区固定策略,则应用目标表
bar
的分区键 1-5 的固定策略。 -
如果表
bar
不存在,Vertica 将基于表foo
进行创建,并复制foo
的分区键 1- 5 的策略。随后,如果从任一表中清除分区固定策略,该固定策略也会从另一个表中清除。