共用方式為


設定和管理 Unity 目錄

本文說明如何設定和使用 Unity 目錄來管理 Azure Databricks 工作區中的數據。 主要適用於第一次使用 Unity 目錄的工作區系統管理員。 若要使用 Databricks Terraform 提供者設定 Unity 目錄,請參閱 使用 Terraform將 Unity 目錄設定自動化。

本文結束時,您將擁有:

  • 已啟用 Unity 目錄的工作區。
  • 可存取 Unity 目錄的計算資源。
  • 有權存取和建立 Unity 目錄中對象的使用者。

您可能還想要檢閱其他介紹文章:

注意

如果您想要將現有的非Unity-Catalog 工作區升級至 Unity 目錄,您可以使用 UCX,這是一個 Databricks Labs 專案,提供一組工作流程和公用程式,以便將身分識別、許可權和數據表升級至 Unity 目錄。 請參閱使用 UCX 公用程式將工作區升級至 Unity Catalog

Unity Catalog 啟用概況

若要使用 Unity 目錄,您的 Azure Databricks 工作區必須針對 Unity 目錄啟用,這表示工作區會附加至 Unity 目錄中繼存放區,這是 Unity 目錄元數據的最上層容器。

系統管理員設定 Unity 目錄的方式取決於工作區是針對 Unity 目錄自動啟用,還是需要手動啟用。

Unity Catalog 的自動啟用

Databricks 於 2023 年 11 月 9 日開始自動啟用 Unity Catalog 的新工作區,並逐步在各個帳戶中推出。 自動啟用的工作區具有下列屬性:

  • 自動配置的 Unity Catalog 中繼存放區(除非工作區區域已存在 Unity Catalog 中繼存放區,且中繼存放區 啟用自動工作區指派)。

  • 工作區系統管理員的默認許可權,例如建立目錄或外部資料庫連線的能力。

  • 沒有中繼存放區管理員(除非使用現有的 Unity 目錄中繼存放區,而且已指派中繼存放區管理員)。

  • 受控數據表和受控磁碟區沒有中繼存放區層級記憶體(除非使用具有中繼存放區層級記憶體的現有 Unity 目錄中繼存放區)。

  • 工作區目錄,最初建置時會以工作區命名。

    工作區中的所有使用者都可以在此目錄中的 default 架構中建立資產。 根據預設,此目錄 系結 至您的工作區,這表示只能透過工作區存取。 在建立工作區時,工作區目錄的自動布建會逐漸跨帳戶推出。

這些預設組態適用於大部分的工作區,但所有設定都可以由工作區管理員或帳戶管理員修改。例如,帳戶管理員可以指派中繼存放區管理員並建立中繼存放區層級記憶體,而工作區系統管理員可以修改工作區目錄名稱和存取權。

如果我的工作區沒有自動啟用 Unity Catalog,我該怎麼辦?

如果未自動為 Unity Catalog 啟用您的工作區,帳戶管理員或中繼存放區管理員必須手動將工作區連結至相同區域中的 Unity Catalog 中繼存放區。 如果 Unity 目錄中繼存放區不存在於區域中,帳戶管理員必須建立一個中繼存放區。 如需指示,請參閱 建立 Unity 目錄中繼存放區

如何知道我的工作區是否已啟用 Unity 目錄?

若要確認您的工作區是否已啟用 Unity 目錄,請要求 Azure Databricks 帳戶管理員或工作區管理員為您檢查。 另請參閱 步驟 1:確認您的工作區已啟用 Unity 目錄

如何知道我的工作區是否包含 工作區目錄

某些新工作區具有 工作區目錄,在最初佈建時,該目錄會以您的工作區名稱命名。 若要判斷您的工作區是否有,請在側邊欄中點選 目錄圖示目錄,以開啟目錄總管,然後搜尋使用您的工作區名稱作為目錄名稱的目錄。

注意

工作區目錄就像 Unity 目錄中的任何其他目錄:工作區管理員可以變更其名稱、變更其擁有權,甚至刪除它。 但是,在建立工作區後,它會立即使用工作區名稱

開始之前

開始本文所述的工作之前,您應該先熟悉基本的 Unity 目錄概念,包括中繼存放區、系統管理員角色和受控記憶體。 請參閱 什麼是 Unity 目錄?

您也應確認您符合下列需求:

  • 進階方案上的 Azure Databricks 工作區。

  • 下列角色和權限 (取決於您的工作區狀態):

    • 工作區管理員:如果您的工作區在建立 Unity 目錄時自動啟用,您必須是工作區管理員,才能完成必要的工作。

    • 帳戶管理員:如果您的工作區尚未啟用 Unity Catalog,帳戶管理員必須將工作區附加至中繼資料存放區。

      如果工作區所在的區域中沒有 Unity 目錄中繼存放區,帳戶管理員也必須建立 Unity 目錄中繼存放區。

      有關確定工作區區域是否存在中繼存放區的指示以及如何建立中繼存放區的指示,請遵循本文。

    請參閱 Unity 目錄 中的 系統管理員許可權,以及 自動啟用 Unity 目錄

步驟 1:確認您的工作區已啟用 Unity 目錄

在此步驟中,您會判斷您的工作區是否已針對 Unity 目錄啟用,其中 enablement 定義為將 Unity 目錄中繼存放區附加至工作區。 如果您的工作區未啟用 Unity Catalog,您必須手動為 Unity Catalog 啟用您的工作區。 如果您的工作區未啟用 Unity 目錄 ,請參閱後續步驟。

若要確認,請執行下列其中一項動作。

使用帳戶主控台確認 Unity 目錄啟用

  1. 身為 Azure Databricks 帳戶管理員,登入帳戶主控台。
  2. 按一下 工作區圖示 [工作區]
  3. 找到您的工作區,並檢查 中繼存放區的 列。 如果中繼存放區名稱存在,您的工作區已連接至 Unity Catalog 的中繼存放區,因此已啟用 Unity Catalog。

執行 SQL 查詢以確認 Unity 目錄啟用

在 SQL 查詢編輯器或附加至使用 共用單一使用者 存取模式之叢集的筆記本中執行下列 SQL 查詢。 請參閱存取模式。 不需要系統管理員角色。

SELECT CURRENT_METASTORE();

如果查詢返回如下的中繼存放區 ID,則您的工作區已附加至 Unity Catalog 中繼存放區,並因此啟用 Unity Catalog。

目前中繼存放區輸出

如果您的工作區未啟用 Unity Catalog,後續步驟

如果您的工作區未連結至中繼存放區來啟用 Unity Catalog,下一個步驟將取決於您是否已經為工作區區域定義了 Unity Catalog 的中繼存放區:

  • 如果您的帳戶已為您的工作區區域定義 Unity 目錄中繼存放區,您可以直接將工作區附加至現有的中繼存放區。 移至 開啟 Unity 目錄的工作區
  • 如果您的工作區區域未定義 Unity 目錄中繼存放區,您必須建立中繼存放區,然後附加工作區。 移至 建立 Unity 目錄中繼存放區

當您的工作區已啟用 Unity Catalog 時,請繼續到下一步。

步驟 2:新增使用者並指派工作區管理員角色

建立工作區的使用者將自動新增為具有工作區管理員角色的工作區使用者 (即 admins 工作區本機群組中的使用者)。 作為工作區管理員,您可以向工作區新增和邀請使用者加入工作區,可以向其他使用者作業工作區管理員角色,並且可以建立服務主體和群組。

帳戶管理員還可以將使用者、服務主體和群組新增至您的工作區。 他們可以授予帳戶管理員和數據存儲庫管理員角色。

如需詳細資料,請參閱管理使用者

透過從 Microsoft Entra ID 設定佈建,可以方便地管理使用者對 Azure Databricks 的存取。 如需完整的指示,請參閱 從 Microsoft Entra ID 使用 SCIM 同步 使用者和群組

步驟 3:建立使用者可用於執行查詢和建立物件的叢集或 SQL 倉儲

若要執行 Unity 目錄工作負載,計算資源必須符合特定安全性需求。 不相容的計算資源無法存取 Unity 目錄中的數據或其他物件。 SQL 倉儲一律符合 Unity 目錄需求,但某些叢集存取模式則不符合。 請參閱存取模式

作為工作區管理員,您可以選擇將計算建立限制為管理員,或可讓使用者建立自己的 SQL 倉儲和叢集。 您也可以使用您強制執行的 Unity 目錄相容規格,建立可讓使用者建立自己的叢集的叢集原則。 請參閱計算權限建立和管理計算原則

步驟 4:將許可權授與使用者

若要在 Unity 目錄目錄和架構中建立物件並加以存取,用戶必須具有執行此動作的許可權。 本節描述預設授與某些工作區的用戶和系統管理員許可權,並描述如何授與其他許可權。

預設使用者權限

某些工作區在啟動時具有預設使用者 (非管理員) 權限:

  • 如果您的工作區以自動布建 工作區目錄啟動,則所有工作區使用者都可以在工作區目錄的 default 架構中建立物件。

    若要瞭解如何判斷您的工作區是否有工作區目錄,請參閱 如何知道我的工作區是否包含工作區目錄?

  • 如果您的工作區已手動啟用 Unity Catalog,它會自動配置一個 main 目錄。

    工作區使用者具有 USE CATALOG 目錄的 main 許可權,此許可權並不授予在目錄中建立或選取任何物件的能力,但卻是使用目錄中任何物件的必要條件。 建立中繼存放區的用戶預設擁有 main 目錄,而且可以轉移擁有權,並將存取權授與其他使用者。

    如果在建立中繼存放區之後新增中繼存放區記憶體,則不會布建任何 main 目錄。

其他工作區預設不會建立任何目錄,也沒有默認啟用非系統管理員用戶許可權。 工作區管理員必須建立第一個目錄,並授與使用者對其及其對象的訪問許可權。 請跳到 步驟 5:建立新的目錄和架構,再完成本節中的步驟。

預設管理員權限

某些工作區在啟動時具有預設工作區管理員權限:

  • 如果您的工作區已針對 Unity 目錄服務自動啟用:
    • 工作區管理員可以在新目錄中建立新的目錄和物件,並授與他們存取權。
    • 根據預設,沒有中繼存放區管理員。
    • 工作區管理員擁有工作區目錄(如果有的話),並可授與該目錄和該目錄中任何物件的存取權。
  • 如果您的工作區是手動啟用 Unity Catalog 的:
    • 工作區管理員預設沒有特殊的 Unity 目錄許可權。
    • 中繼存放區系統管理員必須存在,而且可以建立任何 Unity Catalog 物件,而且可以取得任何 Unity Catalog 對象的擁有權。

如需了解在自動啟用 Unity Catalog 工作區中授予工作區管理員的其他物件權限清單,請參閱 工作區管理員許可權

授與權限

若要存取先前段落中未列出的其他物件,具有特殊許可權的用戶必須授予存取權。

例如,若要授與群組在 my-catalog中建立新架構的能力,目錄擁有者可以在 SQL 編輯器或筆記本中執行下列命令:

GRANT CREATE SCHEMA ON my-catalog TO `data-consumers`;

如果您的工作區已針對 Unity 目錄自動啟用,工作區管理員就會擁有工作區目錄,並可授與建立新架構的能力:

GRANT CREATE SCHEMA ON <workspace-catalog> TO `data-consumers`;

您也可以使用目錄總管來授與和撤銷許可權。

重要

您無法將許可權授予工作區的本地 usersadmins 群組。 若要授與群組的許可權,它們必須是帳戶層級群組。

如需在 Unity 目錄中管理許可權的詳細資訊,請參閱在 Unity 目錄 中管理許可權

步驟 5:建立新的目錄和架構

若要開始使用 Unity 目錄,您必須至少定義一個目錄。 目錄是 Unity 目錄中數據隔離和組織的主要單位。 所有架構和數據表都存在於目錄中,磁碟區、檢視和模型也一樣。

某些工作區沒有自動配置的目錄。 若要使用 Unity 目錄,工作區管理員必須為這類工作區建立第一個目錄。

其他工作區可以存取預先布建的目錄,用戶可以存取該目錄以開始使用(工作區目錄或 main 目錄,視您的工作區啟用 Unity 目錄的方式而定)。 當您將更多數據和 AI 資產新增至 Azure Databricks 時,您可以建立其他目錄來分組這些資產,以便以邏輯方式輕鬆控管數據。

如需如何使用目錄和架構來組織數據和 AI 資產的建議,請參閱 Unity 目錄最佳做法

身為中繼存放區系統管理員、工作區管理員(僅限自動啟用工作區),或是具有 CREATE CATALOG 許可權的其他使用者,您可以在中繼存放區中建立新的目錄。 執行此作業時,您應:

  1. 為新的目錄建立 受控儲存空間

    受控記憶體是 Azure 帳戶中受控數據表和受控磁碟區的專用記憶體位置。 您可以將受控記憶體指派給中繼存放區、目錄和架構。 當使用者建立數據表時,數據會儲存在階層中最低的儲存位置。 例如,如果儲存位置是針對中繼存放區和目錄定義,但不是針對結構,則數據會儲存在為目錄定義的位置中。

    Databricks 建議您在目錄層級指派受控記憶體,因為目錄通常代表數據隔離的邏輯單位。 如果您對多個目錄中的數據共用相同儲存位置感到安心,則可以將其預設為中繼資料庫層級的儲存位置。 如果您的工作區已針對 Unity Catalog 自動啟用,則預設不會有中繼儲存層級。 帳戶管理員可以選擇設定中繼存放區層級儲存體。 請參閱 在 Unity 目錄 中指定受控記憶體位置,將受控記憶體新增至現有的中繼存放區

    將受控記憶體指派給目錄需要您建立:

    • 儲存體認證
    • 參考該儲存體認證的外部位置

    如需這些物件的簡介和建立它們的指示,請參閱 使用 Unity 目錄連線到雲端物件儲存和服務

  2. 如果您想要限制共用相同中繼存放區之其他工作區的存取權,請將新目錄系結至工作區。

    請參閱 限制特定工作區的目錄存取

  3. 授予在目錄上的權限。

如需詳細指示,請參閱 建立目錄

目錄建立範例

下列範例示範如何建立具有受控記憶體的目錄,然後授與目錄的 SELECT 許可權:

CREATE CATALOG IF NOT EXISTS mycatalog
  MANAGED LOCATION 'abfss://mycontainer@<myaccount.dfs.core.windows.net//depts/finance';

GRANT SELECT ON mycatalog TO `finance-team`;

如需更多範例,包括使用目錄總管建立目錄的指示,請參閱 建立目錄

建立結構描述

架構代表比目錄更細微的群組(例如部門或專案)。 目錄中的所有數據表和其他 Unity Catalog 物件都包含在架構中。 作為新目錄的擁有者,您可能會想要在目錄中建立架構。 但是,您可能會想要將建立架構的能力委派給其他使用者,方法是授與他們目錄上的 CREATE SCHEMA 許可權。

如需詳細指示,請參閱建立結構描述

(選用) 指派中繼存放區管理員角色

如果您的工作區已針對 Unity 目錄自動啟用,則預設不會指派中繼存放區管理員角色。 中繼存放區管理員具有工作區管理員所不具有的一些權限。

如果需要執行以下作業,則可能需要指派中繼存放區管理員:

如需有關中繼存放區管理員角色及指派該角色的指示的詳細資訊,請參閱指派中繼存放區管理員

將 Hive 中繼存放區中的數據表升級至 Unity 目錄數據表

如果您的工作區在啟用 Unity Catalog 之前已經在服務中,可能會有一個 Hive 中繼存放區,其中包含您想要繼續使用的資料。 Databricks 建議您將 Hive 中繼存放區所管理的數據表移轉至 Unity 目錄中繼存放區。

請參閱 將 Hive 資料表和檢視升級至 Unity 目錄使用 UCX 公用程式將工作區升級至 Unity 目錄

(選用) 繼續使用 Hive 中繼存放區

如果您的工作區有 Hive 中繼存放區,其中包含您想要繼續使用的數據,而且您選擇不要遵循建議,將 Hive 中繼存放區所管理的數據表升級至 Unity 目錄中繼存放區,您可以繼續處理 Hive 中繼存放區中的數據,以及 Unity 目錄中繼存放區中的數據。

Hive 中繼存放區是以名為 hive_metastore的目錄,在 Unity 目錄介面中表示。 若要繼續處理 Hive 中繼存放區中的數據,而不需要更新查詢以指定 hive_metastore 目錄,您可以將工作區的預設目錄設定為 hive_metastore。 請參閱 管理預設目錄

根據您的工作區啟用 Unity Catalog 的時間,預設目錄可能已經是 hive_metastore

(可選) 建立中繼存放區層級儲存體

雖然 Databricks 建議您為中繼存放區中的每個目錄建立個別的受控儲存位置(而且您可以針對架構執行相同動作),但您可以選擇改為在中繼存放區層級建立受控位置,並將其作為多個目錄和架構的記憶體。

如果需要中繼存放區層級儲存體,您還必須指派中繼存放區管理員。請參閱 (選用) 指派中繼存放區管理員角色

只有在您使用依賴個人預備位置的 Databricks 合作夥伴產品整合時,才 需要中繼存放區層級記憶體

如需有關受控儲存位置階層的詳細資訊,請參閱在儲存體中實體分離資料

若要瞭解如何將中繼存放區層級記憶體新增至沒有的中繼存放區,請參閱 將受控記憶體新增至現有的中繼存放區

注意

在 2023 年 11 月 9 日之前啟用 Unity Catalog 的大多數工作區都有一個元數據存儲層級的存儲根目錄。

下一步