卷是支持对非表格数据集进行治理的 Unity Catalog 对象。 卷表示云对象存储位置的存储逻辑卷。 卷提供用于访问、存储、管理和组织文件的功能。
虽然表提供对表格数据集的治理,但卷增加了对非表格数据集的治理。 可以使用卷来存储和访问任何格式的文件,包括结构化、半结构化和非结构化数据。
卷的用例
Databricks 建议使用卷来控制对所有非表格数据的访问。 与表一样,卷可以是托管卷或外部卷。
卷的用例包括:
- 为外部系统生成的原始数据注册登陆区域,以支持其在 ETL 管道和其他数据工程活动的早期阶段的处理。
- 注册用于引入的暂存位置,例如使用自动加载程序、
COPY INTO
或 CTAS (CREATE TABLE AS
) 语句。 - 为数据科学家、数据分析师和机器学习工程师提供文件存储位置,以用作其探索数据分析和其他数据科学任务的一部分。
- 使 Azure Databricks 用户可以访问由其他系统生成和存储在云存储中的任意文件,例如,由监视系统或 IoT 设备捕获的大量非结构化数据(例如图像、音频、视频和 PDF 文件)的集合,或从本地依赖项管理系统或 CI/CD 管道导出的库文件(JAR 和 Python wheel文件)。
- 存储操作数据,例如日志文件或检查点文件。
重要
不能将卷中的文件注册为 Unity Catalog 中的表。 卷仅用于基于路径的数据访问。 如果要在 Unity Catalog 中处理表格数据,请使用表。
什么是托管卷?
托管卷是在包含架构的托管存储位置中创建的 Unity Catalog 控制的存储卷。 请参阅在 Unity Catalog 中指定托管存储位置。
托管卷允许创建受管理存储以处理文件,而无需外部位置和存储凭据的开销。 创建托管卷时无需指定位置,并且托管卷中数据的所有文件访问都通过 Unity Catalog 管理的路径进行。
什么是外部卷?
外部卷是使用 Unity Catalog 控制的存储凭据针对外部位置中的目录注册的 Unity Catalog 控制的存储卷。
Unity Catalog 不管理外部卷中文件的生命周期和布局。 当您卸载外部存储卷时,Unity Catalog 不会删除其基础数据。
使用哪个路径访问卷中的文件?
卷位于 Unity Catalog 三级命名空间的第三级别 (catalog.schema.volume
):
无论使用 Apache Spark、SQL、Python 还是其他语言和库,访问卷的路径都是相同的。 这与绑定到 Azure Databricks 工作区的对象存储中的文件的旧访问模式不同。
访问卷中的文件的路径使用以下格式:
/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
使用 Apache Spark 时,Azure Databricks 还支持可选 dbfs:/
方案,因此以下路径也有效:
dbfs:/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
路径中的序列 /<catalog>/<schema>/<volume>
对应于与文件关联的三个 Unity Catalog 对象名称。 这些路径元素是只读的,用户不能直接写入,这意味着无法使用文件系统操作创建或删除这些目录。 它们会自动进行管理,并与相应的 Unity Catalog 实体保持同步。
注意
还可以使用云存储 URI 访问外部卷中的数据。
卷的保留路径
卷引入了以下用于访问卷的保留路径:
dbfs:/Volumes
/Volumes
注意
路径也保留用于 Apache Spark API 和 dbutils
(包括 /volumes
、/Volume
、/volume
)中这些路径的潜在拼写错误,无论它们前面是否为 dbfs:/
。
/dbfs/Volumes
路径也是保留的,但不能用于访问卷。
仅在 Databricks Runtime 13.3 LTS 及更高版本上支持卷。 在 Databricks Runtime 12.2 LTS 及更低版本中,对 /Volumes
路径的操作可能会成功,但它们只能将数据写入附加到计算集群的瞬态存储磁盘,而不是按预期将数据保存到 Unity Catalog 卷。
重要
如果预先存在的数据存储在 DBFS 根上的保留路径中,则可以提交支持票证以获取对此数据的临时访问权限,以将其移动到另一个位置。
计算要求
使用卷时,必须使用 SQL 仓库或运行 Databricks Runtime 13.3 LTS 或更高版本的群集,除非使用的是 Azure Databricks UI,例如目录资源管理器。
限制
必须使用已启用 Unity Catalog 的计算来与 Unity Catalog 卷进行交互。 卷并非支持所有工作负载。
下表概述了基于 Databricks Runtime 版本的 Unity Catalog 容量限制。
Databricks Runtime 版本 | 限制 |
---|---|
所有支持的 Databricks Runtime 版本 |
|
14.3 LTS 及更高版本 |
|
14.2 及更低版本 |
|
后续步骤
以下文章详细介绍了如何使用卷: