创建和管理卷

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

创建卷

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

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

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>';

目录资源管理器

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

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

注意

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

请参阅 CREATE VOLUME

所需的权限

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

资源 所需的权限
架构 USE SCHEMACREATE VOLUME
目录 USE CATALOG

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

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

删除卷

使用以下语法删除卷:

DROP VOLUME IF EXISTS <volume-name>;

请参阅 DROP VOLUME

注意

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

所需的权限

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

对卷重命名

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

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

请参阅 ALTER VOLUME

所需的权限

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

更改对卷的权限

使用 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 中管理权限

所需的权限

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

更改卷所有者

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

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

请参阅 ALTER VOLUME

所需的权限

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