移动数据存储位置

SET_OBJECT_STORAGE_POLICY 将数据存储从现有位置(带标签和不带标签)移至另一个带标签的位置。该函数执行两个任务:

  • 为对象创建存储策略,或更改其当前策略。

  • 将指定对象的所有现有数据移至目标存储位置。

在该函数将对象数据移至指定的目标位置之前,Vertica 会计算所需的存储并检查目标处的可用空间。在调用 SET_OBJECT_STORAGE_POLICY 之前,请检查新目标位置上的可用空间。请注意,检查并不能保证在 Tuple Mover 实际执行移动时该空间仍然可用。如果存储位置没有足够的可用空间,该函数将返回错误。

默认情况下,Tuple Mover 在所有待定的合并任务返回后才将对象数据移至新的存储位置。您可以通过将函数的 enforce-storage-move 实参设置为 true 来强制立即移动数据。例如,以下语句设置表的存储策略并立即实施移动操作:

=> SELECT SET_OBJECT_STORAGE_POLICY('states', 'SSD', 'true');
                            SET_OBJECT_STORAGE_POLICY
------------------------------------------------------------------------------------------------
 Object storage policy set.
Task: moving storages
(Table: public.states) (Projection: public.states_p1)
(Table: public.states) (Projection: public.states_p2)
(Table: public.states) (Projection: public.states_p3)
(1 row)