管理架构

本文介绍如何在 Unity Catalog 中查看、更新和删除目录。

另请参阅什么是 Azure Databricks 中的架构?创建架构

注意

在 Hive 元存储中,必须使用 SQL 命令管理架构。 旧版 Hive 元存储中的行为不同于 Unity Catalog。 所需的权限取决于你是否使用表访问控制。 请参阅 Hive 元存储中的架构Hive 元存储特权和安全对象(旧版)

开始之前

若要在 Unity Catalog 中使用架构,请执行以下操作:

  • 你必须具有链接到在其中执行架构创建的工作区的 Unity Catalog 元存储。
  • 用于运行笔记本以管理架构的群集必须使用与 Unity Catalog 兼容的访问模式。 请参阅访问模式。 SQL 仓库始终支持 Unity Catalog。
  • 在 Unity Catalog 中更改、查看和删除架构所需的权限列在以下各部分中。

查找和查看架构

在 Unity Catalog 中,用户可以查看他们对其拥有 USE SCHEMA 权限的所有架构,以及架构的父目录的 USE CATALOG 权限。 要访问或列出架构中的表或视图,用户还必须对该表或视图具有 SELECT 权限。

目录资源管理器

  1. 登录链接到 Unity Catalog 元存储的工作区。
  2. 单击 目录图标目录”。
  3. 在左侧的目录窗格中,单击包含架构的目录(如果位于 Hive 元存储中,则为 hive_metastore)。

或者,可以使用“目录”窗格中的键入搜索字段,搜索架构。

SQL

在笔记本或 SQL 查询编辑器中运行 SHOW SCHEMAS 以列出目录中的所有架构或与正则表达式匹配的目录。 运行 DESCRIBE SCHEMA 以获取有关架构的详细信息。 请参阅 SHOW SCHEMASDESCRIBE SCHEMA

更新架构

若要更改 Unity Catalog 目录中的架构,可以使用目录资源管理器或 SQL 命令。

所需权限:更新 Unity Catalog 中的架构所需的权限取决于更新:

  • 若要更改所有者,你必须是所有者。
  • 若要重命名架构,你必须是所有者。
  • 若要添加或更新注释或标记,你必须是所有者或拥有架构的 USE SCHEMAMODIFY 和父目录的 USE CATALOG
  • 若要添加表,你必须是架构所有者,或者拥有架构的 USE SCHEMACREATE TABLE 与父目录的 USE CATALOG
  • 若要添加卷,你必须是架构所有者或拥有架构的 USE SCHEMACREATE VOLUME 和父目录的 USE CATALOG
  • 若要授予和撤销对架构的权限,你必须是架构所有者、父目录的所有者或元存储管理员。

目录资源管理器

  1. 登录链接到 Unity Catalog 元存储的工作区。

  2. 单击 目录图标目录”。

  3. 在左侧目录窗格中,单击包含架构的目录,然后单击架构以打开“架构详细信息”页。

    或者,可以使用“目录”窗格中的键入搜索字段,搜索架构。

  4. 使用“架构详细信息”页面上的以下页面元素来更新架构:

SQL

  • 若要更改所有者、添加或更新标记、设置架构属性和管理架构中表的预测优化,请在笔记本或 SQL 查询编辑器中运行 ALTER SCHEMA 命令。 请参阅 ALTER SCHEMA
  • 若要授予或撤销权限,请使用 GRANTREVOKE 命令。 请参阅 GRANTREVOKE
  • 若要将表、卷和其他数据和 AI 资产添加到架构,请参阅创建资产的文档(例如 什么是表和视图?管理 Unity 目录中的模型生命周期)。
  • 若要使用 SQL 重命名架构,必须创建一个新架构,并将所有资产移动到该新架构中。

删除架构

若要删除 Unity Catalog 目录中的架构,可以使用目录资源管理器或 SQL 命令。

需要的权限:若要删除 Unity Catalog 中的架构,你必须是其所有者。

目录资源管理器

必须先删除架构中的所有表,然后才能将其删除。

  1. 登录到链接到元存储的工作区。
  2. 单击 目录图标目录”。
  3. 在“目录”窗格的左侧,单击要删除的架构
  4. 在“详细信息”窗格中,单击右上角的烤肉串菜单 Kebab 菜单,然后选择“删除”。
  5. 在“删除架构”对话框中,单击“删除”

SQL

在笔记本或 SQL 查询编辑器中运行以下 SQL 命令。 括号中的项是可选的。 请替换 <schema-name> 占位符。

有关参数说明,请参阅 DROP SCHEMA

如果使用不带 CASCADE 选项的 DROP SCHEMA,则必须先删除架构中的所有表,然后才能将其删除。

DROP SCHEMA [ IF EXISTS ] <schema-name> [ RESTRICT | CASCADE ]

例如,删除名为 inventory_schema 的架构及其表:

DROP SCHEMA inventory_schema CASCADE

后续步骤

若要了解如何将表和卷添加到架构,请参阅什么是表和视图?以及什么是 Unity 目录卷?