适用于:
Databricks SQL
刷新流式处理表或具体化视图的数据。 默认情况下,数据会同步刷新。
可以通过执行 DESCRIBE EXTENDED 来跟踪刷新状态。
注意
针对具体化视图和流式处理表创建和刷新操作由无服务器 Lakeflow 管道提供支持。 可以使用目录资源管理器在 UI 中查看有关支持管道的详细信息。 请参阅什么是目录资源管理器?。
注意
REFRESH MATERIALIZED VIEW 也适用于具体化指标视图。 使用它手动刷新支持指标视图的具体化。 请参阅 指标视图的具体化。
语法
REFRESH { MATERIALIZED VIEW | [ STREAMING ] TABLE } table_name
[ FULL ] [ WHERE predicate ] [ SYNC | ASYNC ]
可以指定任何子FULL集,WHERE也可以SYNCASYNC在同一命令中指定。
参数
-
标识要刷新的具体化视图或流式处理表。 名称不得包含 时态规范或选项规范。 如果找不到对象,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。
完全
是否执行完全刷新。
- 对于具体化视图,完全刷新将处理源中的所有可用数据。
- 对于流式处理表,完全刷新会截断表并使用流式处理表的最新定义处理源中的所有可用数据。
不建议对不保留整个数据历史记录或保留期较短的源(如 Kafka)调用完全刷新,因为完全刷新会截断现有数据。 如果数据在源中不再可用,则可能无法恢复旧数据。
WHERE 谓词
适用于:
流式处理表,使用 FLOW REPLACE WHERE子句创建的流式处理表替代此单个刷新的
REPLACE WHERE流的谓词。 刷新仅删除与目标匹配predicate的行,并从源重新计算它们。 流的定义的谓词保持不变,在下一次刷新时再次应用,因此谓词重写是一次性操作,不会修改表定义。 将其用于一次性回填或更正。 请参阅 独立流式处理表的 REPLACE WHERE 流。该
WHERE子句仅在使用FLOW REPLACE WHERE流创建的流式处理表上受支持。 指定WHERE任何其他流式处理表或具体化视图时,将返回错误。SYNC
是否执行同步刷新。 在创建具体化视图或流式处理表并完成初始数据加载之前,该命令会阻塞。
这是默认行为。
异步
是否执行异步刷新,这会在 Lakeflow 管道上启动后台作业。 该命令会在数据加载完成之前立即返回,并提供一个链接,指向支持具体化视图或流式处理表的底层管道。 可以访问此链接以查看刷新状态。
如果要执行异步刷新,则必须指定
ASYNC。 如果未指定关键字,则将同步执行该操作。
示例
-- Refreshes the materialized view to reflect the latest available data
> REFRESH MATERIALIZED VIEW catalog.schema.view_name;
-- Refreshes the streaming table to process the latest available data
-- The current catalog and schema will be used to qualify the table
> REFRESH STREAMING TABLE st_name;
-- Truncates the table and processes all data from scratch for the streaming table
> REFRESH STREAMING TABLE cat.db.st_name FULL;
-- Overrides the REPLACE WHERE predicate for a single asynchronous refresh.
-- Only rows matching id = 3 are recomputed. The flow's static predicate is unchanged.
> REFRESH STREAMING TABLE rep_st WHERE id = 3 ASYNC;