管理 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 Gen2 的存储帐户的权限。 此存储帐户必须有分层命名空间。 请参阅创建用于 Azure Data Lake Storage Gen2 的存储帐户
    • 创建新资源以保存系统分配的托管标识的权限。 此操作要求你是租户内任何订阅中资源组的参与者或所有者。

步骤 1:创建存储位置

按照步骤 1(可选):为元存储级托管存储创建存储容器步骤 2(可选):创建托管标识以访问托管存储位置中的说明,在 Azure Data Lake Storage Gen2 中创建一个存储容器,并创建一个 Azure Databricks 访问连接器来保存有权访问存储容器的托管标识。

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

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

  1. 创建存储凭据。

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

    按照创建存储凭据以连接到 Azure Data Lake Storage Gen2 中的说明操作。

  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. 确认你是Metastore Admin

    如果您不是管理员,请单击编辑并将自己分配为元数据库管理员。完成此过程后,可以取消您的管理员身份。

  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. 在确认对话框中,输入元存储的名称,然后单击“删除”。