基于 DLT 管道中 SQL 查询的结果集构造没有物理数据的虚拟表。
语法
下面介绍了使用 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 特权。
- 视图的 MANAGE 权限。
- SELECT 在视图引用的基表上的权限。
要使用户能够查询生成的视图,他们必须具有以下权限:
- 对父目录的 USE CATALOG 特权和对父架构的 USE SCHEMA 特权。
- SELECT 对视图的权限。
局限性
-
CREATE VIEW
仅在支持默认发布模式的管道中可用。 不支持使用 LIVE 架构(旧版)的管道。 有关详细信息,请参阅 LIVE 架构(旧版)。 - 管道必须是 Unity Catalog 的管道。
- 不支持以
CONSTRAINT
子句形式出现的期望。 - 视图不能包含流式查询,也不能作为DLT管道的流式源。
例子
-- 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;