托管卷与外部卷

本文讨论托管卷与外部卷之间的差异,以及可能选择使用外部卷的原因。 Databricks 建议将托管卷作为存储和管理对非表格数据的访问权限的最简单解决方案。

有关使用 Unity 目录配置云对象存储访问权限的更多指南,请参阅 使用 Unity 目录连接到云对象存储和服务。

托管卷和外部卷之间的行为差异

使用 Azure Databricks 工具、UI 和 API 时,托管卷和外部卷提供几乎相同的体验。 下面是这些卷类型之间的差异。

托管卷提供完全托管的存储体验。 这表示:

  • 与托管卷中的文件的所有交互都必须通过 Unity Catalog。
  • 目录命名和数据布局由 Unity Catalog 管理。 目录名称包括哈希,以避免基础云对象存储帐户发生冲突。
  • 删除托管卷时,Azure Databricks 在 30 天内删除基础数据。

外部卷将数据管理引入云对象存储。 这表示:

  • 可以使用 Azure Databricks 或外部系统中的云 URI 与外部卷中的文件进行交互。
  • 在外部卷内创建的所有目录或上传的文件都与创建时指定的 LOCATION 相关。
  • 删除外部卷时,将从 Unity Catalog 中删除该卷,但基础数据在外部位置保持不变。

为什么使用外部卷?

外部卷允许将 Unity Catalog 数据治理添加到现有云对象存储目录。 外部卷的一些用例包括:

  • 在不迁移的情况下向数据文件添加治理。
  • 管理必须由 Azure Databricks 引入或访问的其他系统生成的文件。
  • 管理 Azure Databricks 生成的数据,这些数据必须由其他系统直接从云对象存储进行访问。

Databricks 建议使用外部卷来存储除 Azure Databricks 以外的外部系统读取或写入的非表格数据文件。 Unity Catalog 不管理从外部系统直接针对云对象存储执行的读写操作,因此必须在云帐户中配置其他策略和凭据,以确保在 Azure Databricks 外部遵守数据治理策略。