基于 Lakeflow 声明性管道中 SQL 查询的结果集构造没有物理数据的虚拟表。
Syntax
下面介绍了使用 SQL 声明视图的语法:
CREATE VIEW view_name
[ COMMENT view_comment ]
[ TBLPROPERTIES ]
AS query
参数
view_name
视图的名称。 该名称在管道的目标目录和架构中必须是唯一的。
view_comment
视图的可选说明。
TBLPROPERTIES
表的表属性可选列表。
查询
从基表或其他视图中构造视图的查询。
所需的权限
管道以某身份运行的用户必须具有以下权限才能创建视图:
- 对视图引用的基表的 SELECT 特权。
- 对父目录的 USE CATALOG 权限和父架构的 USE SCHEMA 权限。
- 在视图所属架构中授予 CREATE TABLE 权限。
要使用户能够更新管道中的视图,他们必须具有以下权限:
- 对父目录的 USE CATALOG 权限和父架构的 USE SCHEMA 权限。
- 视图的管理权限。
- 对视图引用的基表的 SELECT 权限。
要使用户能够查询生成的视图,他们必须具有以下权限:
- 父目录上的 USE CATALOG 权限和父架构上的 USE SCHEMA 权限。
- 对视图的 SELECT 特权。
局限性
-
CREATE VIEW
仅在支持默认发布模式的管道中可用。 不支持使用 LIVE 架构(旧版)的管道。 有关详细信息,请参阅 LIVE 架构(旧版)。 - 管道需为 Unity Catalog 管道。
- 不支持以子句形式
CONSTRAINT
的期望值。 - 视图不能具有流式处理查询,也不能用作流式处理源。
例子
-- Create a view from an external data source
CREATE VIEW taxi_raw AS SELECT *
FROM read_files("/databricks-datasets/nyctaxi/sample/json/");
-- Use a view to create a filtered view:
CREATE VIEW taxi_silver AS SELECT *
FROM taxi_raw
WHERE distance > 0.0;