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‑valuemax‑range‑value 必须相等。
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 的策略。随后,如果从任一表中清除分区固定策略,该固定策略也会从另一个表中清除。

另请参阅