将 Azure Databricks 工作区升级到 Unity 目录

本页概述了如何将非 Unity 目录工作区升级到 Unity 目录。 它还提供了从旧版工作区本地 Hive 元存储迁移的说明。

升级步骤概述

若要升级到 Unity Catalog,必须:

  1. 如果尚未这样做,请将标识(用户、组和服务主体)直接配置到你的 Azure Databricks 帐户。 关闭任何工作区级别的身份预配。
  2. 将任何工作区本地组转换为帐户级组。 Unity Catalog 在帐户级别集中进行身份管理。
  3. 将工作区附加到 Unity Catalog 元存储。 如果工作区区域不存在元存储,帐户管理员必须创建一个。
  4. 将 Hive 元存储中管理的表和视图升级到 Unity 目录。
  5. 授予帐户级用户、组或服务主体对升级表的访问权限。
  6. 更新查询和作业以引用新的 Unity Catalog 表,而不是旧的 Hive 元存储表。
  7. 禁用 Hive 元存储。 请参阅 “禁用对 Azure Databricks 工作区使用的 Hive 元存储的访问”。

UCX 是一个 Databricks Labs 项目,它提供了可帮助你将非 Unity-Catalog 工作区升级到 Unity Catalog 的工具。 对于大规模迁移,UCX 是一个不错的选择。 请参阅使用 UCX 实用工具将工作区升级到 Unity Catalog

准备工作

在开始之前,应熟悉基本的 Unity Catalog 概念,包括元存储和托管存储。 请参阅什么是 Unity Catalog?

还应确认已满足以下要求:

  • 对于大多数设置步骤,您必须是 Azure Databricks 帐户管理员。对于有其他权限要求的任何后续任务,它们都列在特定于任务的文档中。

    第一个 Azure Databricks 帐户管理员在首次登录 Azure Databricks 帐户控制台时必须是 Microsoft Entra ID 全局管理员。 首次登录时,该用户将成为 Azure Databricks 帐户管理员,并且不再需要使用 Microsoft Entra ID 全局管理员角色来访问 Azure Databricks 帐户。 第一个帐户管理员可以将 Microsoft Entra ID 租户中的用户分配为其他帐户管理员(他们可以自行分配更多的帐户管理员)。 其他帐户管理员不需要 Microsoft Entra ID 中的特定角色。

  • 附加到元存储的工作区必须位于 Azure Databricks 高级计划中

为帐户预配用户、组和服务主体

Unity Catalog 引用帐户级别的标识。 在将元存储附加到工作区之前,应该执行以下操作:

  • 如果您使用 SCIM 将用户、组和服务主体从 IdP 预配到工作区,请关闭此功能,并改为将预配设置到您的 Azure Databricks 帐户。 请参阅 将用户分配到 Azure DatabricksIdentities

  • 更新已配置为管理用户、组和服务主体的任何自动化(例如 SCIM 预配连接器和 Terraform 自动化),这样他们就可以引用帐户终结点而不是工作区终结点。 请参阅帐户级和工作区级 SCIM 预配

将工作区本地组转换为帐户级组

请参阅将工作区本地组迁移到帐户组

将工作区附加到元存储

如果你的工作区没有启用 Unity Catalog(附加到元存储),则下一步取决于你是否已为你的工作区区域定义了一个 Unity Catalog 元存储:

  • 如果帐户已为工作区区域定义了 Unity Catalog 元存储,则只需将工作区附加到现有元存储。 转到为 Unity Catalog 启用工作区
  • 如果没有为工作区的区域定义的 Unity Catalog 元存储,则必须创建一个元存储,然后附加工作区。 转到创建 Unity Catalog 元存储

将 Hive 元存储中的表升级到 Unity Catalog 表

如果工作区在启用 Unity Catalog 之前已投入使用,则它有一个 Hive 元存储,其中可能包含你想要继续使用的数据。 Databricks 建议将由 Hive 元存储管理的表升级至 Unity Catalog 元存储。

可以通过联合 Hive 元存储逐步升级。 请参阅下一部分。

可以按照将 Azure Databricks 工作区升级到 Unity Catalog 中的说明直接升级表。

(可选)将 Hive 元存储联邦化以保持继续使用。

如果工作区具有包含要继续使用的数据的 Hive 元存储,并且你选择不遵循建议将 Hive 元存储管理的所有表升级到 Unity 目录元存储,则可以通过将 Hive 元存储中的数据联合为 Unity 目录中的外目录来继续处理 Hive 元存储中的数据。 请参阅 Hive 元存储联盟:启用 Unity Catalog 管理在 Hive 元存储中注册的表

授予对升级表或联合表的访问权限

授予帐户级用户、组或服务主体对新表的访问权限。 请参阅在 Unity Catalog 中管理权限

更新查询和作业以处理升级后的表和数据路径

在从工作区本地 Hive 元存储转换到 Unity Catalog 时,可以继续使用引用 Hive 元存储中注册的数据的查询和作业,使用 Hive 元存储联合(推荐)或将旧版 Hive 元存储与 Unity Catalog 一起使用中描述的语法。 但是,最终应更新所有查询和作业,以使用 Unity 目录表和语法。

同样,更新使用基于路径的文件访问的查询和作业,以使用 Unity Catalog

有关详细建议,请参阅 升级旧版工作区到 Unity Catalog 时的更新作业