CREATE VIEW (DLT)

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