创建和管理视图
本文展示了如何在 Unity Catalog 中创建视图。 请参阅什么是视图?。
所需的权限
若要创建视图,请执行以下操作:
- 你必须具有对父目录的
USE CATALOG
权限和对父架构的USE SCHEMA
和CREATE TABLE
权限。 元存储管理员或目录所有者可授予所有这些权限。 具有MANAGE
权限的架构所有者或用户可以在架构上授予您USE SCHEMA
和CREATE TABLE
权限。 - 你必须能够读取视图中引用的表和视图(表或视图上的
SELECT
,以及目录上的USE CATALOG
和架构上的USE SCHEMA
)。 - 如果视图引用工作区本地 Hive 元存储中的表,则只能从包含工作区本地表的工作区访问该视图。 因此,Databricks 建议仅从 Unity Catalog 元存储中的表或视图创建视图。
- 创建的视图不能引用已使用 Delta Sharing 与你共享的视图。 请参阅什么是 Delta Sharing?。
若要读取视图,所需的权限取决于计算类型、Databricks Runtime 版本和访问模式。 请参阅查询视图的要求。
创建视图
若要创建视图,请运行以下 SQL 命令。 括号中的项是可选的。 替换占位符值替:
<catalog-name>
:目录的名称。<schema-name>
:架构的名称。<view-name>
:视图的名称。<query>
:用于组成视图的查询、列、表和视图。
CREATE VIEW <catalog-name>.<schema-name>.<view-name> AS
SELECT <query>;
例如,要通过 sales_redacted
表中的列命名创建名为 sales_raw
的视图:
CREATE VIEW sales_metastore.sales.sales_redacted AS
SELECT
user_id,
email,
country,
product,
total
FROM sales_metastore.sales.sales_raw;
还可以使用 Databricks Terraform 提供程序和 databricks_table 创建视图。 可以使用 databricks_views 检索视图全名列表。
删除视图
你必须是视图的所有者或对视图拥有 MANAGE
权限才能删除视图。 若要删除视图,请运行以下 SQL 命令:
DROP VIEW IF EXISTS catalog_name.schema_name.view_name;