创建和管理卷

本文包含用于创建、管理和删除 Unity Catalog 卷的语法示例。

创建卷

使用 SQL、目录资源管理器或其他工具创建卷时,默认会创建托管卷。 若要创建外部卷,可将卷与外部位置相关联。

以下说明包括用于创建托管卷,以及用于可选地指定云对象存储位置以创建外部卷的示例语法。

目录资源管理器

在目录资源管理器中创建卷:

  1. 在 Azure Databricks 工作区中,单击““目录”图标 目录”
  2. 搜索或浏览要向其添加卷的架构并将其选中。
  3. 单击“创建卷”按钮。 (必须具有足够的特权。)
  4. 输入卷的名称。
  5. 如果要创建外部卷,请执行以下操作:
    1. 选择要在其中创建卷的外部位置。
    2. 编辑路径以反映要在其中创建卷的子目录。
  6. 添加注释(可选)。
  7. 单击“创建”。

SQL

若要创建托管卷,请使用以下语法:

CREATE VOLUME <catalog>.<schema>.<volume-name>;

若要创建外部卷,请添加 LOCATION 子句,如以下示例所示:

CREATE EXTERNAL VOLUME <catalog>.<schema>.<external-volume-name>
LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.chinacloudapi.cn/<path>/<directory>';

注意

定义卷时,对卷路径下数据的云 URI 访问受卷权限约束。

请参阅 CREATE VOLUME

所需的权限

必须具有以下权限才能创建卷:

资源 所需的权限
架构 USE SCHEMA, CREATE VOLUME
目录 USE CATALOG

默认情况下,在与包含架构关联的托管存储位置中创建托管卷。 请参阅在 Unity Catalog 中指定托管存储位置

若要创建外部卷,还必须对管理 LOCATION 子句中指定的云对象存储的外部位置具有 CREATE EXTERNAL VOLUME 特权。 请参阅使用 Unity Catalog 连接到云对象存储

删除卷

目录资源管理器

在目录资源管理器中删除卷:

  1. 在 Azure Databricks 工作区中,单击““目录”图标 目录”
  2. 搜索或浏览要删除的卷并将其选中。
  3. 单击卷名称右侧的 串形菜单,然后选择“删除”
  4. 在出现的对话框中单击“删除”进行确认

SQL

使用以下语法删除卷:

DROP VOLUME IF EXISTS <volume-name>;

请参阅 DROP VOLUME

注意

删除托管卷会将包含的文件标记为删除,而删除外部卷则不会。 请参阅托管卷与外部卷之间的行为差异

所需的权限

只有具有所有者权限的用户才能删除卷。 请参阅卷所有权

对卷重命名

目录资源管理器

在目录资源管理器中对卷重命名:

  1. 在 Azure Databricks 工作区中,单击““目录”图标 目录”
  2. 搜索或浏览要进行重命名的卷并将其选中。
  3. 单击卷名右侧的 串形菜单,然后选择“重命名”
  4. 输入卷的名称。
  5. 单击“ 保存”。

SQL

使用以下语法对卷重命名:

ALTER VOLUME <volume-name> RENAME TO <new-volume-name>

请参阅 ALTER VOLUME

所需的权限

只有具有所有者特权的用户才能对卷重命名。 请参阅卷所有权

更改对卷的权限

目录资源管理器

若要在目录资源管理器中更改卷的权限,首先导航到权限 UI:

  1. 在 Azure Databricks 工作区中,单击““目录”图标 目录”
  2. 搜索或浏览要更改其权限的卷并将其选中。
  3. 单击“权限”选项卡。卷上已授予和继承的特权随即显示。

若要授予新特权,请执行以下操作:

  1. 单击“授予”
  2. 键入以搜索主体。 选择要授予特权的主体。 可选择多个主体。
  3. 选择希望授予的特权。
  4. 单击“授予”

注意

如果主体没有对父资源的 USE CATALOGUSE SCHEMA 特权,则一条警告出现,指出需要其他特权。 如果对父资源具有足够的权限来授予这些特权,则一个复选框显示以同时授予这些特权。

若要撤销特权,请执行以下操作:

  1. 选择一个或多个授权。
  2. 单击“撤销”。
  3. 在出现的对话框中单击“撤销”进行确认

SQL

使用 GRANTREVOKE 更改对卷的权限。

例如,以下语法授予对卷的 READ FILES

GRANT READ FILES ON VOLUME <volume-name> TO <principal>

以下语法用于撤销对卷的 WRITE FILES

REVOKE WRITE FILES ON VOLUME <volume-name> TO <principal>

请参阅在 Unity Catalog 中管理权限

所需的权限

只有具有所有者特权的用户才能更改卷的权限。 请参阅卷所有权

更改卷所有者

目录资源管理器

若要在目录资源管理器中更改卷的所有者,请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击““目录”图标 目录”
  2. 搜索或浏览要更改其所有权的卷并将其选中。
  3. 在“关于此卷”窗格中,单击“所有者”旁边的 编辑图标
  4. 键入以搜索主体并将其选中。
  5. 单击“ 保存”。

SQL

使用以下语法更改卷的所有者:

ALTER VOLUME <volume-name> SET OWNER TO <principal-name>

请参阅 ALTER VOLUME

所需的权限

只有具有所有者特权的用户才能更改卷的所有者。 请参阅卷所有权