共用方式為


Set 設置並管理 Unity Catalog

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

本文結束時,您將擁有:

  • 該工作區已啟用 Unity Catalog功能。
  • 可存取 Unity Catalog的計算。
  • 有權在 Unity 中存取及建立物件的使用者 Catalog。

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

注意

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

Unity Catalog 的啟用概觀

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

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

自動啟用 Unity Catalog

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

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

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

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

  • 受管理的 tables 和受管理的 volumes 不具備 metastore 層級的儲存空間(除非使用具備 metastore 層級儲存空間的現有 Unity Catalog metastore)。

  • 工作區 catalog,其最初布建時會以您的工作區名稱命名。

    工作區中的所有使用者都可以在此 default的 schemacatalog 中建立資產。 根據預設,此 catalog系結至工作區,這表示它只能透過工作區存取。 在建立工作區時,工作區 catalog 的自動配置將逐步向所有帳戶推出。

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

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

如果您的工作區未自動啟用 Unity Catalog,帳戶管理員或中繼存放區管理員必須手動將工作區附加至相同區域中的 Unity Catalog 中繼存放區。 如果區域中沒有 Unity Catalog 中繼存放區,帳戶管理員必須建立一個。 如需指示,請參閱 建立 Unity Catalog 中繼存放區

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

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

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

有些新工作區有 工作區 catalog。這些空間在最初布建時,會以你的工作區為名。 若要判斷工作區是否有工作區,請按下提要欄位中的 Catalog 圖示Catalog 以開啟 [Catalog 總管],然後搜尋使用工作區名稱作為 catalog 名稱的 catalog。

注意

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

開始之前

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

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

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

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

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

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

      如果在與工作區相同的區域中沒有 Unity Catalog 中繼存放區,帳戶管理員也必須建立 Unity Catalog 中繼存放區。

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

    請參閱 Unity 中的 系統管理員許可權,並 自動啟用 Unity

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

在此步驟中,您會判斷是否已針對 Unity Catalog啟用工作區,where 啟用定義為連結至工作區的 Unity having 中繼存放區 Catalog。 如果您的工作區未為 Unity Catalog啟用,您必須手動為 Unity Catalog 啟用工作區。 如果您的工作區未針對 Unity 啟用,請參閱 後續步驟。

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

使用帳戶主控台確認 Unity Catalog 啟用

  1. 身為 Azure Databricks 帳戶管理員,登入帳戶主控台。
  2. 按一下 工作區圖示 [工作區]
  3. 尋找您的工作空間,並檢查 資料儲存庫column。 如果中繼區名稱存在,您的工作區將會被附加至 Unity Catalog 中繼區,因此會啟用 Unity Catalog。

執行 SQL 查詢以確認 Unity Catalog 啟用

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

SELECT CURRENT_METASTORE();

如果查詢返回的中繼存放區標識符類似以下例子,那麼您的工作區已附加到 Unity Catalog 中繼存放區,並因此啟用 Unity Catalog。

目前中繼存放區輸出

如果您的工作區尚未針對 Unity 啟用,請參考以下後續步驟 Catalog

如果您的工作區未啟用 Unity Catalog(連接到中繼存放區),下一個步驟將取決於您是否已經為工作區所在的區域定義 Unity Catalog 中繼存放區:

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

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

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

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

帳戶管理員還可以將使用者、服務主體和群組新增至您的工作區。 他們可以 grant 帳戶管理員和中繼存放區管理員角色。

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

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

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

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

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

步驟 4:Grant 用戶的許可權

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

預設使用者權限

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

  • 如果您的工作區是在自動布建的 工作區 catalog啟動的,那麼所有工作區使用者都可以在該工作區的 catalogdefault建立物件schema。

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

  • 如果您的工作區已手動啟用 Unity Catalog,那麼它將自動配置 maincatalog。

    工作區使用者具有 USE CATALOGmain的 catalog 許可權,它不會 grant 從 select中的任何物件建立或 catalog 的能力,但這是使用 catalog中任何物件的先決條件。 建立中繼存放區的用戶預設擁有 maincatalog,而且可以轉移擁有權和 grant 其他使用者的存取權。

    在建立中繼存放區後新增中繼存放區記憶體時,不會配置任何 maincatalog。

其他工作區預設不會建立 catalogs,且預設不會啟用非系統管理員用戶許可權。 工作區系統管理員必須為第一個 catalog 和 grant 使用者設置存取權限,以存取工作區及其中的物件。 請跳到 步驟 5:在完成本節中的步驟之前,先建立新的 catalogs 和架構

預設管理員權限

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

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

如需在自動啟用 Unity list 工作區中授與工作區系統管理員的其他物件許可權 Catalog,請參閱在為 Unity 啟用工作區時,工作區管理員許可權,Catalog 自動

Grant 權限

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

例如,為了給 grant 群組在 my-catalog中建立新架構的權限,catalog 擁有者可在 SQL 編輯器或筆記本中運行以下命令:

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

如果您的工作區已啟用 Unity Catalog,工作區系統管理員就會擁有工作區 catalog,而且可以 grant 建立新架構的能力:

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

您也可以使用 grant Explorer 來執行 revoke 和 Catalog 許可權。

重要

您無法 grant 工作區本機 usersadmins 群組的許可權。 若要對群組進行 grant 權限設置,它們必須是帳戶層級的群組。

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

步驟 5:建立新的 catalogs 和架構

若要開始使用 Unity Catalog,您必須至少定義一個 catalog。 Catalogs 是 Unity Catalog中數據隔離和組織的主要單位。 所有架構和 tables 都存在於 catalogs中,如同 volumes、views和模型一樣。

某些工作區沒有自動布建 catalog。 若要使用 Unity Catalog,工作區管理員必須為這類工作區建立第一個 catalog。

其他工作區可以存取預先布建的 catalog,您的使用者可以存取以開始使用 get(取決於您的工作區是如何為 Unity catalog啟用的,是通過工作區 main 還是透過 catalogCatalog)。 當您將更多數據和 AI 資產新增至 Azure Databricks 時,您可以建立額外的 catalogs,以方便邏輯控管數據的方式分組這些資產。

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

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

  1. 為新的 建立 catalog。

    受管儲存體是在您的 Azure 帳戶中,專門用於受管 tables 和受管 volumes的儲存位置。 您可以將受控儲存空間指派給中繼存放區、catalogs和架構。 當使用者建立 table時,數據會儲存在階層中最低的儲存位置。 例如,如果儲存位置是針對中繼存放區以及 catalog 定義,但不是 schema,則數據會儲存在為 catalog定義的位置。

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

    將管理儲存指派給 catalog 需要您建立:

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

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

  2. 如果您想要從共用相同中繼存放區的其他工作區存取 catalog,請將新的 limit 系結至您的工作區。

    請參閱 Limitcatalog 存取特定工作區

  3. Grant 許可權在 catalog上。

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

Catalog 建立範例

下列範例示範如何使用受控記憶體建立 catalog,然後授與 SELECT的 catalog 許可權:

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

GRANT SELECT ON mycatalog TO `finance-team`;

如需更多範例,包括使用 catalogs Explorer 建立 Catalog 的指示,請參閱 建立 catalogs

建立 schema

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

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

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

如果您的工作區被自動啟用為 Unity Catalog,預設情況下不會指派中繼資料存放區管理員角色。 中繼存放區管理員具有工作區管理員所不具有的一些權限。

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

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

將 Hive 中繼存放區中的 tables 升級至 Unity Catalogtables

如果您的工作區在針對 Unity Catalog啟用之前已在服務中,它可能會有 Hive 中繼存放區,其中包含您想要繼續使用的數據。 Databricks 建議您將 Hive 中繼存放區所管理的 tables 移轉至 Unity Catalog 中繼存放區。

請參閱 將 Hive tables 和 views 升級至 Unity Catalog使用 UCX 公用程式將工作區升級至 Unity Catalog

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

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

Unity Catalog 介面將 Hive 中繼存放區呈現為名為 catalog的 hive_metastore。 若要繼續處理 Hive 中繼存放區中的數據,而不需 having 來 update 查詢以指定 hive_metastorecatalog,您可以 set 工作區的預設 catalog 來 hive_metastore。 請參閱 管理預設 catalog

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

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

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

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

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

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

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

注意

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

下一步