共用方式為


建立 Unity Catalog 中繼存放區

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

重要

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

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

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

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

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

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

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

注意

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

開始之前

開始之前,您應該先熟悉基本的 Unity Catalog 概念,包括 metastores 和管理記憶體。 請參閱 Unity 是什麼 Catalog?

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

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

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

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

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

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

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

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

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

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

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

    您可以在 catalog 和 schema 層級覆寫此中繼存放區層級的儲存位置。 請參閱 在 Unity 中指定受管理的儲存位置 Catalog

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

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

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

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

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

請遵循 在 Unity 中使用 Azure 受控識別中的指示,Catalog 存取記憶體

注意

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

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

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

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

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

若要建立中繼存放區:

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

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

  3. 點擊 Azure Databricks 工作區頂端列中的使用者名稱,然後 select[管理帳戶]

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

  5. 點選 Catalog 圖示Catalog

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

  7. 輸入下列內容:

    • 中繼存放區的名稱

    • 將會部署中繼存放區 區域where。

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

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

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

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

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

  9. 出現提示時,select 工作區連結至中繼存放區。

    如需詳細資訊,請參閱 為 Unity 啟用工作區 Catalog

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

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

  11. 啟用 Azure Databricks 管理上傳至受控 volumes。

    Azure Databricks 使用跨原始來源資源分享(CORS)將數據上傳至 受控 volumes 中的 Unity Catalog。 請參閱 設定適用於 CORS的 Unity Catalog 儲存器帳戶。

下一步