設定和管理 Unity 目錄

本文說明如何設定和使用 Unity 目錄來管理 Azure Databricks 工作區中的數據。 主要適用於第一次使用 Unity 目錄的工作區系統管理員。

在本文中結束時,您將擁有:

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

您也可以檢閱其他簡介文章:

注意

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

Unity 目錄啟用概觀

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

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

自動啟用 Unity 目錄

Databricks 於 2023 年 11 月 9 日自動啟用 Unity 目錄的新工作區,並逐步跨帳戶進行推出。 已啟用的工作區會自動具有下列屬性:

  • 自動布建的 Unity 目錄中繼存放區(除非工作區區域已經存在 Unity 目錄中繼存放區)。

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

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

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

  • 最初 布建的工作區目錄會以您的工作區命名。

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

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

如果我的工作區未自動啟用 Unity 目錄,該怎麼辦?

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

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

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

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

有些新的工作區具有 工作區目錄,其最初布建時會以您的工作區命名。 若要判斷您的工作區是否有,請按下 目錄圖示提要欄位中的 [目錄] 以開啟 [目錄 總管],然後搜尋使用工作區名稱做為目錄名稱的目錄。

注意

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

開始之前

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

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

  • 進階版 方案中Azure Databricks 工作區。

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

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

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

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

      判斷工作區區域是否有中繼存放區的指示,以及建立中繼存放區的指示,請遵循本文中的指示。

    請參閱 Unity 目錄中 管理員 許可權和 Unity 目錄的自動啟用。

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

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

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

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

  1. 身為 Azure Databricks 帳戶管理員,登入帳戶主控台。
  2. 按兩下 [ 工作區圖示工作區]。
  3. 尋找您的工作區,並檢查 中繼存放區 數據行。 如果中繼存放區名稱存在,您的工作區會附加至 Unity 目錄中繼存放區,因此會針對 Unity 目錄啟用。

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

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

SELECT CURRENT_METASTORE();

如果查詢傳回如下的中繼存放區標識符,則您的工作區會附加至 Unity 目錄中繼存放區,因此會針對 Unity 目錄啟用。

目前的中繼存放區輸出

如果您的工作區未針對 Unity 目錄啟用,請執行後續步驟

如果您的工作區未針對 Unity 目錄啟用(附加至中繼存放區),下一個步驟取決於您是否已為工作區區域定義 Unity 目錄中繼存放區:

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

當您的工作區已啟用 Unity 目錄時,請移至下一個步驟。

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

建立工作區的用戶會自動新增為具有工作區管理員角色的工作區使用者(也就是工作區本機群組中的 admins 使用者)。 身為工作區系統管理員,您可以將使用者新增並邀請至工作區、將工作區管理員角色指派給其他使用者,以及建立服務主體和群組。

帳戶管理員也能夠將用戶、服務主體和群組新增至您的工作區。 他們可以授與帳戶管理員和中繼存放區管理員角色。

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

藉由設定從 Microsoft Entra ID (先前稱為 Azure Active Directory) 布建,即可方便管理使用者對 Azure Databricks 的存取權。 如需完整的指示,請參閱 從 Microsoft Entra ID 同步使用者和群組。

步驟 3:建立叢集或 SQL 倉儲,讓用戶可用來執行查詢並建立物件

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

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

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

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

默認用戶許可權

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

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

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

  • 如果您的工作區已手動啟用 Unity 目錄,則會自動 main 布建目錄。

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

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

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

默認系統管理員許可權

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

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

如需在自動啟用的 Unity 目錄工作區中授與工作區系統管理員的其他物件許可權清單,請參閱 自動啟用 Unity 目錄的工作區管理員許可權。

授與許可權

若要存取上一節所列的物件,特殊許可權用戶必須授與該存取權。

例如,若要授與群組在 中 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 目錄自動啟用,則預設不會有中繼存放區層級記憶體。 帳戶管理員可以選擇設定中繼存放區層級記憶體。 請參閱 受控記憶體將受控記憶體新增至現有的中繼存放區

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

    • 記憶體認證
    • 參考 該記憶體認證的外部位置

    如需這些對象的簡介和建立這些物件的指示,請參閱使用 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 目錄啟用之前已在服務中,它可能會有 Hive 中繼存放區,其中包含您想要繼續使用的數據。 Databricks 建議您將 Hive 中繼存放區所管理的數據表移轉至 Unity 目錄中繼存放區。

請參閱將數據表和檢視升級至 Unity 目錄,並使用 UCX 公用程式將您的工作區升級至 Unity 目錄

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

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

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

檢視您為 Unity 目錄開啟工作區的時機而定,預設目錄可能已經是 hive_metastore

(選擇性)建立中繼存放區層級記憶體

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

如果您想要中繼存放區層級記憶體,您也必須指派中繼存放區管理員。請參閱 (選擇性) 指派中繼存放區管理員角色

只有在下列為 true 時,才需要中繼存放區層級記憶體

如需受控儲存位置階層的詳細資訊,請參閱 數據在記憶體中實際分隔。

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

注意

在 2023 年 11 月 9 日之前為 Unity 目錄啟用的大部分工作區都有中繼存放區層級的記憶體根目錄。

下一步