REFRESH

在前台同步刷新一个或多个表投影,并更新 PROJECTION_REFRESHES 系统表。如果在不使用实参的情况下运行 REFRESH,则它会刷新所有包含过时数据的投影。

有关投影刷新的详细信息,请参阅刷新投影

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

这是元函数。您必须在顶级 SELECT 语句中调用元函数。

行为类型

易变

语法

REFRESH ( [ '[[database.]schema.]table[,...]' ] )

参数

[database.]schema

数据库和架构。默认架构为 public。如果指定一个数据库,它必须是当前数据库。

要刷新的投影的锚表。如果指定多个表,REFRESH 会尝试并行刷新。此类调用将包含在 Database Designer 部署(和部署脚本)中。

返回

Projection Name
作为刷新目标的投影。
Anchor Table
投影的关联锚表。
Status
投影的刷新状态:
  • queued:排队等待刷新。

  • refreshing:正在刷新。

  • refreshed:已成功完成刷新。

  • failed:未成功完成刷新。

Refresh Method
用于刷新投影的方法
Error Count
投影刷新失败的次数。
Duration (sec)
投影刷新运行的时间(以秒为单位)。

特权

刷新方法

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

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

示例

以下示例将刷新两个表中的投影:

=> SELECT REFRESH('t1, t2');
                                             REFRESH
----------------------------------------------------------------------------------------
Refresh completed with the following outcomes:

Projection Name: [Anchor Table] [Status] [Refresh Method] [Error Count] [Duration (sec)]
----------------------------------------------------------------------------------------

"public"."t1_p": [t1] [refreshed] [scratch] [0] [0]"public"."t2_p": [t2] [refreshed] [scratch] [0] [0]

在以下示例中,仅刷新了一个表中的投影:

=> SELECT REFRESH('allow, public.deny, t');
                                               REFRESH
----------------------------------------------------------------------------------------

Refresh completed with the following outcomes:

Projection Name: [Anchor Table] [Status] [Refresh Method] [Error Count] [Duration (sec)]
----------------------------------------------------------------------------------------
"n/a"."n/a": [n/a] [failed: insufficient permissions on table "allow"] [] [1] [0]
"n/a"."n/a": [n/a] [failed: insufficient permissions on table "public.deny"] [] [1] [0]
"public"."t_p1": [t] [refreshed] [scratch] [0] [0]

另请参阅