刷新投影

当为已包含数据的表创建投影时,Vertica 不会自动将该数据加载到新投影中。相反,您必须显式刷新该投影。在执行此操作之前,投影无法参与对其锚表执行查询。

可以使用以下函数之一刷新投影:

这两个函数都会更新维护有关投影刷新状态的信息的系统表:PROJECTION_REFRESHESPROJECTIONSPROJECTION_CHECKPOINT_EPOCHS

如果刷新会违反表或架构磁盘配额,则操作将失败。有关详细信息,请参阅磁盘配额

获取投影刷新信息

可以查询 PROJECTION_REFRESHESPROJECTIONS 系统表来查看刷新操作的进度。还可以调用 GET_PROJECTIONS 函数来查看给定表的投影刷新的最终状态:

=> SELECT GET_PROJECTIONS('customer_dimension');
                                           GET_PROJECTIONS
----------------------------------------------------------------------------------------------------------
 Current system K is 1.
# of Nodes: 3.
Table public.customer_dimension has 2 projections.

Projection Name: [Segmented] [Seg Cols] [# of Buddies] [Buddy Projections] [Safe] [UptoDate] [Stats]
----------------------------------------------------------------------------------------------------
public.customer_dimension_b1 [Segmented: Yes] [Seg Cols: "public.customer_dimension.customer_key"] [K: 1]
       [public.customer_dimension_b0] [Safe: Yes] [UptoDate: Yes] [Stats: RowCounts]
public.customer_dimension_b0 [Segmented: Yes] [Seg Cols: "public.customer_dimension.customer_key"] [K: 1]
       [public.customer_dimension_b1] [Safe: Yes] [UptoDate: Yes] [Stats: RowCounts]

(1 row)

刷新方法

Vertica 可以刷新其伙伴实例之一中的投影(如有)。在这种情况下,目标投影将获取源伙伴实例的历史数据。否则,将使用刷新操作时的最新时期数据从头开始刷新投影。在这种情况下,投影不能参与刷新操作之前的任何时期的历史查询。

要确定用来刷新给定投影的方法,请查询 PROJECTION_REFRESHES 系统表中的 REFRESH_METHOD 列。