使用 Unity Catalog 管理对云存储的访问

本文概述如何使用 Unity Catalog 管理从 Azure Databricks 访问云存储。 本文介绍外部位置存储凭据托管存储的概念。

注意

如果要使用 Unity Catalog 管理对外部服务(而非云存储)的访问,请参阅使用服务凭据管理对外部云服务的访问

外部位置和存储凭据

所有由 Unity Catalog 管理的数据都必须位于云提供商帐户中的云存储中。 Unity Catalog 使用名为 外部位置的安全对象管理对云存储的访问,该对象定义云存储位置的路径以及访问该位置所需的凭据。 这些凭据又在名为 存储凭据的 Unity Catalog 安全对象中定义。 通过授予和撤消对 Unity Catalog 中外部位置安全对象的访问权限,可以控制对云存储位置中数据的访问。 通过授予和撤消对 Unity Catalog 中存储凭据安全对象的访问权限,可以控制创建外部位置对象的能力。

下面是有关这两个安全对象的详细信息:

Unity Catalog 中的外部位置既可用于外部数据资产(如外部表外部卷),也可用于托管数据资产(如托管表托管卷)。 有关 Unity Catalog 中外部数据资产和托管数据资产的差异的详细信息,请参阅什么是表和视图?以及什么是 Unity Catalog 卷?

要了解使用外部位置的最佳做法,请参阅管理外部位置、外部表和外部卷

创建外部表和外部卷时使用外部位置

Unity Catalog 中注册的外部表和外部卷本质上是指向在 Azure Databricks 外部管理的云存储中数据的指针。 在 Unity Catalog 中创建外部表或外部卷时,必须引用已被授予足够权限的外部位置对象中包含的云存储路径。 有关 Unity Catalog 中外部数据资产和托管数据资产的差异的详细信息,请参阅什么是表和视图?以及什么是 Unity Catalog 卷?。 有关权限,请参阅对外部位置授予权限

创建托管存储时使用外部位置

Unity Catalog 完全管理托管表和托管卷。 默认情况下,它们存储在托管存储位置中,可在元存储、目录或架构级别进行定义。 将托管存储位置分配给元存储、目录或架构时,必须引用外部位置对象,且必须具有足够权限才能使用。 请参阅在 Unity Catalog 中指定托管存储位置Unity Catalog 最佳做法

Unity Catalog 中管理对云存储访问的工作流

若要使用 Unity Catalog 管理对云存储的访问,请执行以下操作:

  1. 创建封装 Azure 托管标识的存储凭据对象,该标识提供对云存储路径的访问权限。
  2. 创建引用存储路径和存储凭据对象的外部位置对象。
  3. 创建外部表、外部卷或默认托管存储位置时,引用外部位置中包含的路径。 这可以是在外部位置或子路径中定义的确切路径。

后续步骤