管理 Unity Catalog 元存储

本文介绍如何在 Azure Databricks 帐户中更新、删除和管理 Unity Catalog 元存储的行为。

若要了解 Unity Catalog 元存储及其创建方法,请参阅创建 Unity Catalog 元存储

启用自动分配给新工作区的元存储

若要自动将现有 Unity Catalog 元存储分配给该元存储区域中的新工作区,帐户管理员可以为元存储启用工作区自动分配。 如果未选择此设置,则在与元存储相同的区域中创建工作区的管理员必须手动为 Unity Catalog 启用工作区,并从下拉列表中选择元存储。

在帐户管理员启用此选项之前,应确保了解以下对新工作区的影响:

若要启用自动分配,请执行以下操作:

  1. 以帐户管理员身份登录到 Azure Databricks 帐户控制台。
  2. 单击 “数据”图标。目录
  3. 选择元存储。
  4. 在“配置”选项卡上的“工作区分配”下,选择“自动将 <region> 中的新工作区分配到此元存储”。
  5. 在确认对话框中,单击“启用自动分配”。

将托管存储添加到现有元存储

元存储级托管存储是可选的,对于自动创建的元存储,将不包含该托管存储。 如果希望使用数据隔离模型来为多个工作区集中存储数据,可能需要将元存储级别存储添加到元存储。 如果您是 Azure Databricks 的合作伙伴,并且使用个人暂存位置,那么您需要元存储级别的存储。

还可以参阅在 Unity Catalog 中指定托管存储位置

要求

  • 必须至少有一个工作区附加到 Unity Catalog 元存储。
  • 所需的 Azure Databricks 权限:
    • 若要创建外部位置,你必须是元存储管理员或具有 CREATE EXTERNAL LOCATIONCREATE STORAGE CREDENTIAL 权限的用户。
    • 若要将存储位置添加到元存储定义,你必须是帐户管理员。若要了解如何在帐户中启用帐户管理员角色,请参阅建立第一个帐户管理员
  • 所需的 Azure 租户权限:
    • 创建要用于 Azure Data Lake Storage 的存储帐户的权限。 此存储帐户必须有分层命名空间。 请参阅创建一个存储帐户以与 Azure Data Lake Storage 一起使用
    • 创建用于保存系统分配的托管标识的新资源的权限。 这要求你是租户中任何订阅中的资源组的参与者或所有者。

步骤 1:创建存储位置

按照 步骤 1(可选):为元存储级托管存储创建存储容器步骤 2(可选):创建托管标识以访问托管存储位置 以在 Azure Data Lake Storage 中创建存储容器,以及包含有权访问存储容器的托管标识的 Azure Databricks 访问连接器。

步骤 2:在 Unity Catalog 中创建外部位置

在此步骤中,你将在 Unity Catalog 中创建一个外部位置,该位置引用你刚刚创建的 ADLS Gen 2 路径。

  1. 创建存储凭据。

    存储凭据将表示在步骤 1:创建存储位置中创建的 Azure 托管标识。

    按照 “创建存储凭据”中的说明连接到 Azure Data Lake Storage

  2. 创建一个外部位置,该位置引用在上一步中创建的存储凭据和在步骤 1:创建存储位置中创建的 ADLS Gen 2 存储容器。

    按照创建外部位置以将云存储连接到 Azure Databricks 中的说明操作

  3. 向自己授予对外部位置的 CREATE MANAGED STORAGE 权限。

    1. 单击外部位置名称以打开详细信息窗格。
    2. 在“权限”选项卡上,单击“授权”。
    3. 在“在 <external ___location> 上授予”对话框中,在“主体”字段中选择你自己,然后选择“”。CREATE MANAGED STORAGE
    4. 单击“授予”

步骤 3:将存储位置添加到元存储

创建表示元存储存储桶的外部位置后,可以将其添加到元存储。

  1. 作为帐户管理员,登录到帐户控制台

  2. 单击 “数据”图标。目录

  3. 单击元存储名称。

  4. 确认你是元存储管理员。

    如果你不是,请单击“编辑”,并将你自己分配为元存储管理员。完成此过程后,可以取消分配你自己。

  5. 在“配置”选项卡上,在“ADLS Gen 2 路径”旁边单击“设置”。

  6. 在“设置元存储根”对话框中,输入用于创建外部位置的 ADLS Gen 2 路径,然后单击“更新”。

    设置此路径后,将无法修改它,但可以移除它并根据需要添加新路径。

删除元存储级存储

如果拥有托管表和卷的元存储级存储(也称为元存储根目录),但需要在目录或架构级别强制实施数据存储隔离,则可以移除元存储的元存储级别存储选项。 执行此操作时会发生以下情况:

  • 未指定存储根目录的现有目录将会使用元存储根目录的云存储位置作为其目录级托管存储位置。 换句话说,元存储存储根目录会“向下推送” 到这些目录。 对这些目录中的数据的访问将继续正常运行,而不会中断。
  • 根据元存储的创建方式,Unity Catalog 中可能没有为元存储根定义可保护的外部位置。 在这种情况下,会为其创建新的外部位置和关联的存储凭证。 默认情况下,新的外部位置被命名为 prior_metastore_root_location
  • 用户每次创建目录时,必须提供一个在 Unity Catalog 中注册为外部位置的专用存储位置。

注释

如果您使用 Delta Sharing 来共享笔记本,并且将元存储根目录用作共享笔记本存储,则在删除元存储根目录之前必须执行以下操作:

  1. 把笔记本从共享中移除。
  2. 使用专用存储位置重新添加笔记本。

请参阅将笔记本文件添加到共享

若要删除元存储存储根,请执行以下操作:

  1. 作为帐户管理员,登录到帐户控制台
  2. 单击 “数据”图标。目录
  3. 单击元存储名称。
  4. 在“配置”选项卡上的“ADLS Gen 2 路径”下,单击“移除”按钮。
  5. 在确认对话框中,单击“删除”。

添加元存储管理员

元存储管理员是可选的,但在某些情况下,你可能想要为元存储设置一个管理员。 请参阅分配元存储管理员

删除元存储

如果要关闭 Azure Databricks 帐户,或者有其他原因需要删除对 Unity Catalog 元存储管理的数据的访问权限,则可以删除该元存储。

警告

使用 Azure Databricks 工作区时,由元存储管理的所有对象都将变得不可访问。 此操作不可撤消。

托管表数据和元数据将在 30 天后自动删除。 云存储中的外部表数据不受元存储删除的影响。

删除元存储:

  1. 作为元存储管理员,登录到帐户控制台
  2. 单击 “数据”图标。目录
  3. 单击元存储名称。
  4. 在“配置”选项卡上,单击右上角的三个按钮菜单,然后选择“删除”。
  5. 在确认对话框中,输入元存储的名称,然后单击“删除”。