管理架构

本文介绍如何在 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 中的架构所需的权限取决于更新:

  • 为了更改所有者,你必须是所有者,或者拥有架构的 MANAGEUSE SCHEMA 以及父目录的 USE CATALOG
  • 若要重命名架构,你必须是所有者,或者在架构上拥有 MANAGEUSE SCHEMA,并在父目录上拥有 USE CATALOG
  • 若要添加或更新批注,你必须是所有者,或在架构上拥有USE SCHEMAMANAGE,并且在父目录上拥有USE CATALOG
  • 若要添加或更新标记,你必须是所有者,或对架构具有 USE SCHEMAMODIFY,同时在父目录上具有 USE CATALOG
  • 若要添加表,您必须是架构所有者,或者在架构上拥有 USE SCHEMACREATE TABLE,并在父目录上拥有 USE CATALOG
  • 若要添加卷,您必须是架构所有者,或拥有架构上的USE SCHEMACREATE VOLUME权限,以及父目录上的USE CATALOG权限。
  • 若要授予和撤销对架构的权限,你必须是架构所有者、父目录的所有者或元存储管理员,或拥有架构的 MANAGEUSE SCHEMA 与父目录的 USE CATALOG

目录浏览器

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

  2. 单击 “数据”图标。目录

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

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

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

SQL

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

删除架构

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

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

目录浏览器

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

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

  2. 单击 “数据”图标。目录

  3. 在左侧的“目录”窗格中,单击要删除的架构

  4. 在详细信息窗格中,单击右上角的 烤肉串菜单图标,然后选择删除

  5. 在删除架构对话框中,单击“删除”。

SQL

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

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

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

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

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

DROP SCHEMA inventory_schema CASCADE

后续步骤

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