基于 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;