建立 Unity 目錄中繼存放區

本文說明如何建立 Unity 目錄中繼存放區,並將其連結至工作區。

重要

針對自動為 Unity 目錄啟用的工作區,本文中的指示是不必要的。 Databricks 於 2023 年 11 月 9 日自動啟用 Unity 目錄的新工作區,並逐步跨帳戶進行推出。 只有當您有工作區且尚未在工作區區域中有中繼存放區時,您才必須遵循本文中的指示。 若要判斷中繼存放區是否已存在於您的區域中,請參閱 Unity 目錄的自動啟用。

中繼存放區是 Unity 目錄中數據的最上層容器。 Unity 目錄中繼存放區會註冊安全性實體物件的元數據(例如數據表、磁碟區、外部位置及共用),以及管理其存取權的許可權。 每個中繼存放區都會公開三層命名空間 (catalog..schematable),以便組織數據。 針對組織運作的每個區域,您必須有一個中繼存放區。 若要使用 Unity 目錄,用戶必須位於附加至其區域中中繼存放區的工作區上。

若要建立中繼存放區,請執行下列動作:

  1. 在 Azure 帳戶中,選擇性地為受控數據表和磁碟區的中繼存放區層級記憶體建立記憶體位置。

    如需協助您決定是否需要中繼存放區層級記憶體的資訊,請參閱 (選擇性)建立中繼存放區層級記憶體 ,而 數據會在記憶體中實際分隔。

  2. 在您的 Azure 帳戶中,建立可 存取該記憶體位置的 Azure 受控識別 或服務主體。

  3. 在 Azure Databricks 中,建立中繼存放區、附加記憶體位置,並將工作區指派給中繼存放區。

注意

除了本文所述的方法之外,您也可以使用 Databricks Terraform 提供者來建立中繼存放區,特別是 databricks_metastore 資源。 若要讓 Unity 目錄存取中繼存放區,請使用 databricks_metastore_data_access。 若要將工作區連結至中繼存放區,請使用 databricks_metastore_assignment

開始之前

開始之前,您應該先熟悉基本的 Unity 目錄概念,包括中繼存放區和受控記憶體。 請參閱什麼是 Unity 目錄?

您也應該確認您符合下列所有設定步驟的需求:

  • 您必須是 Azure Databricks 帳戶管理員。

    第一個 Azure Databricks 帳戶管理員必須是 Microsoft Entra ID(先前稱為 Azure Active Directory)Global 管理員 istrator,而他們第一次登入 Azure Databricks 帳戶控制台時。 第一次登入時,該用戶會成為 Azure Databricks 帳戶管理員,且不再需要 Microsoft Entra ID Global 管理員 istrator 角色,才能存取 Azure Databricks 帳戶。 第一個帳戶管理員可以將 Microsoft Entra ID 租使用者中的使用者指派為其他帳戶管理員(誰可以自行指派更多帳戶管理員)。 其他帳戶管理員不需要 Microsoft Entra ID 中的特定角色。

  • 您附加至中繼存放區的工作區必須位於 Azure Databricks 進階版 方案上。

  • 如果您想要設定中繼存放區層級的根記憶體,您必須具有在 Azure 租使用者中建立下列項目的許可權:

步驟 1 (選擇性):建立中繼存放區層級受控記憶體的記憶體容器

在此步驟中,您可以選擇性地建立記憶體帳戶和容器,以在中繼存放區層級儲存受控數據表和磁碟區數據。 若要判斷您是否需要中繼存放區層級記憶體,請參閱 (選擇性) 建立中繼存放區層級記憶體

  1. 建立 Azure Data Lake 儲存體 Gen2 的記憶體帳戶。

    此記憶體帳戶將包含 Unity 目錄受控數據表和磁碟區。 這必須是 Azure Data Lake 儲存體 Gen2 帳戶,與 Azure Databricks 工作區位於相同的區域中。 請參閱建立儲存體帳戶以與 Azure Data Lake Storage Gen2 搭配使用

  2. 建立記憶體容器,以在中繼存放區層級保存受控數據表和磁碟區數據。

    每個區域只能建立一個中繼存放區。 您必須針對中繼存放區和記憶體容器使用相同的區域。

    此中繼存放區層級的預設儲存位置可以在目錄和架構層級上覆寫。 請參閱 受控記憶體

    記下容器的 ADLSv2 URI,格式如下:

    abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<metastore-name>
    

    在後續步驟中,將 取代 <storage-container> 為此 URI。

步驟 2 (選擇性):建立受控識別以存取受控記憶體位置

在此步驟中,只有在您完成步驟 1 時,才需要執行此步驟,才能建立 Azure Databricks 存取連接器來保存受控識別,並授與記憶體容器的存取權。

請遵循在 Unity 目錄中使用 Azure 受控識別來存取記憶體中的指示。

注意

您可以使用 Azure 受控識別 或服務主體作為可存取中繼存放區記憶體容器的身分識別。 Databricks 強烈建議您維護受控識別,因為它們不需要您維護認證或輪替秘密,而且可讓您連線到受記憶體防火牆保護的 Azure Data Lake 儲存體 Gen2 帳戶。 如果您想要使用服務主體,請參閱使用服務主體建立 Unity 目錄受控記憶體(舊版)。

步驟 3:建立中繼存放區並附加工作區

每個 Azure Databricks 區域都需要自己的 Unity 目錄中繼存放區。

您可以為組織運作的每個區域建立中繼存放區。 您可以將每個區域中繼存放區連結至該區域中任意數目的工作區。 每個連結的工作區都有中繼存放區中數據的相同檢視,而且可以在工作區之間管理數據訪問控制。 您可以使用 Delta Sharing 來存取其他中繼存放區中的數據。

如果您選擇建立中繼存放區層級記憶體,中繼存放區會使用您在先前步驟中建立的記憶體容器和 Azure 受控識別。

若要建立中繼存放區:

  1. 如果您選擇建立中繼存放區層級記憶體,請確定您具有記憶體容器的路徑,以及您在上一個工作中建立的 Azure Databricks 存取連接器資源識別符。

  2. 以帳戶管理員身分登入您的工作區。

  3. 按兩下 Azure Databricks 工作區頂端列中的使用者名稱,然後選取 [ 管理帳戶]。

  4. 登入 Azure Databricks 帳戶控制台。

  5. 按兩下 [目錄圖示目錄]。

  6. 按兩下 [ 建立中繼存放區]。

  7. 輸入下列內容:

    • 中繼存放區的名稱

    • 將部署中繼存放區的區域

      這必須與您想要用來存取數據的工作區位於相同的區域中。 如果您選擇建立中繼存放區層級記憶體的記憶體容器,該區域也必須相同。

    • (選擇性)ADLS Gen 2 路徑:輸入要作為中繼存放區根記憶體的記憶體容器路徑。

      會自動新增前置 abfss:// 詞。

    • (選擇性)Access 連線 or 識別碼:以下列格式輸入 Azure Databricks 存取連接器的資源識別碼:

      /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
      
  8. 按一下 [建立]

  9. 出現提示時,選取要連結至中繼存放區的工作區。

    如需詳細資訊,請參閱 啟用 Unity 目錄的工作區。

  10. 將中繼存放區管理員角色轉移至群組。

    建立中繼存放區的使用者是其擁有者,也稱為中繼存放區系統管理員。中繼存放區管理員可以在中繼存放區中建立最上層物件,例如目錄,並可管理數據表和其他物件的存取權。 Databricks 建議您將中繼存放區管理員角色重新指派給群組。 請參閱 指派中繼存放區管理員

  11. 啟用 Azure Databricks 管理上傳至受控磁碟區。

    Azure Databricks 使用跨原始來源資源分享 (CORS) 將數據上傳至 Unity 目錄中的受控磁碟區 。 請參閱 設定 CORS 的 Unity 目錄記憶體帳戶。

下一步

將受控記憶體新增至現有的中繼存放區

中繼存放區層級受控記憶體是選擇性的,而且不會包含自動建立的中繼存放區。 如果您想要將數據隔離模型集中儲存多個工作區的數據隔離模型,您可以將中繼存放區層級記憶體新增至中繼存放區。 如果您想要使用差異共用來共享筆記本,或者如果您是使用個人預備位置的 Azure Databricks 合作夥伴,則需要中繼存放區層級記憶體。

請參閱受控記憶體

需求

  • 您必須至少有一個工作區連結至 Unity 目錄中繼存放區。
  • 需要 Azure Databricks 許可權:
    • 若要建立外部位置,您必須是具有 和 CREATE STORAGE CREDENTIAL 許可權的CREATE EXTERNAL LOCATION中繼存放區管理員或使用者。
    • 若要將記憶體位置新增至中繼存放區定義,您必須是帳戶管理員。如需在您的帳戶中啟用帳戶管理員角色的指示,請參閱 建立您的第一個帳戶管理員
  • 需要 Azure 租使用者許可權:
    • 建立記憶體帳戶以搭配 Azure Data Lake 儲存體 Gen2 使用的許可權。 此記憶體帳戶必須具有階層命名空間。 請參閱建立儲存體帳戶以與 Azure Data Lake Storage Gen2 搭配使用
    • 建立新資源以保存系統指派的受控識別的許可權。 這需要您是租使用者中任何訂用帳戶中資源群組的參與者或擁有者。

步驟 1:建立儲存位置

遵循步驟 1(選擇性):建立中繼存放區層級受控記憶體的記憶體容器和步驟 2(選擇性):建立受控識別以存取受控記憶體位置,以在 Azure Data Lake 儲存體 Gen2 中建立記憶體容器,以及保存可存取記憶體容器的受控識別的 Azure Databricks 存取連接器。

步驟 2:在 Unity 目錄中建立外部位置

在此步驟中,您會在 Unity 目錄中建立外部位置,以參考您剛才建立的 ADLS Gen 2 路徑。

  1. 建立記憶體認證。

    記憶體認證將代表您在步驟 1:建立記憶體位置中所建立的 Azure 受控識別。

    請遵循建立記憶體認證中的指示,以連線到 Azure Data Lake 儲存體 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. 確認您是中繼存放區 管理員

    如果您不是,請按兩下 [ 編輯 ],並將您自己指派為中繼存放區管理員。當您完成此程式時,您可以自行取消指派。

  5. 在 [組態] 索引標籤的 [ADLS Gen 2 路徑] 旁,按兩下 [設定]。

  6. 在 [ 設定中繼存放區根 目錄] 對話框中,輸入您用來建立外部位置的 ADLS Gen 2 路徑,然後按兩下 [ 更新]。

    設定此路徑之後,即無法修改此路徑。

刪除中繼存放區

如果您要關閉 Azure Databricks 帳戶,或有另一個理由刪除 Unity 目錄中繼存放區所管理資料的存取權,您可以刪除中繼存放區。

警告

中繼存放區所管理的所有物件都將無法使用 Azure Databricks 工作區來存取。 此動作無法復原。

受控數據表 數據和元數據將在 30 天后自動刪除。 雲端記憶體中的外部資料表數據不會受到中繼存放區刪除的影響。

若要刪除中繼存放區:

  1. 身為中繼存放區管理員,登入 帳戶主控台
  2. 按兩下 [目錄圖示目錄]。
  3. 按兩下中繼存放區名稱。
  4. 在 [ 組態] 索引標籤上,按下右上方的三個按鈕功能表,然後選取 [ 刪除]。
  5. 在確認對話框中,輸入中繼存放區的名稱,然後按兩下 [ 刪除]。