创建和管理视图

本页演示如何在 Unity 目录中创建视图。 请参阅什么是视图?。

所需的权限

若要创建视图,请执行以下操作:

  • 你必须具有对父目录的 USE CATALOG 权限和对父架构的 USE SCHEMA 和 CREATE TABLE 权限。 元存储管理员或目录所有者可以向您授予所有这些权限。 架构所有者或具有 MANAGE 权限的用户可以向你授予该架构上的 USE SCHEMA 和 CREATE TABLE 权限。
  • 您必须能够读取该视图中引用的表和视图(即对表或视图具有 SELECT,对目录具有 USE CATALOG,并对架构具有 USE SCHEMA)。
  • 如果视图引用工作区本地 Hive 元存储中的表,则只能从包含工作区本地表的工作区访问视图。 因此,Databricks 建议仅从 Unity Catalog 元存储中的表或视图创建视图。

若要读取视图,所需的权限取决于计算类型、Databricks Runtime 版本和访问模式。 请参阅查询视图的要求。

若要更新视图定义或说明,您必须是视图的所有者。 拥有 MANAGE 权限是不够的。 有关详细信息,请参阅 ALTER VIEW 和 COMMENT ON 参考页。

创建视图

若要创建视图,请在 SQL 编辑器 或附加到计算的 笔记本 中运行以下 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;