建立 Unity 目錄中繼存放區
本文說明如何建立 Unity 目錄中繼存放區,並將其連結至工作區。
重要
針對自動為 Unity 目錄啟用的工作區,本文中的指示是不必要的。 Databricks 於 2023 年 11 月 9 日自動為 Unity Catalog 啟用了新工作區,並逐步跨帳戶推出。 只有當您有工作區且尚未在工作區區域中有中繼存放區時,您才必須遵循本文中的指示。 若要判斷中繼存放區是否已存在於您的區域中,請參閱 Unity 目錄的自動啟用。
中繼存放區是 Unity 目錄中數據的最上層容器。 Unity 目錄中繼存放區會註冊安全性實體物件的元數據(例如數據表、磁碟區、外部位置及共用),以及管理其存取權的許可權。 每個中繼存放區都會公開三層命名空間 (catalog
..schema
table
),以便組織數據。 針對組織運作的每個區域,您必須有一個中繼存放區。 若要使用 Unity 目錄,用戶必須位於附加至其區域中中繼存放區的工作區上。
若要建立中繼存放區,請執行下列動作:
在 Azure 帳戶中,選擇性地為受控數據表和磁碟區的中繼存放區層級記憶體建立記憶體位置。
如需協助您決定是否需要中繼存放區層級記憶體的資訊,請參閱 (選擇性)建立中繼存放區層級記憶體 ,而 數據會在記憶體中實際分隔。
在您的 Azure 帳戶中,建立可 存取該記憶體位置的 Azure 受控識別 或服務主體。
在 Azure Databricks 中,建立中繼存放區、附加記憶體位置,並將工作區指派給中繼存放區。
注意
除了本文所述的方法之外,您也可以使用 Databricks Terraform 提供者來建立中繼存放區,特別是 databricks_metastore 資源。 若要讓 Unity 目錄存取中繼存放區,請使用 databricks_metastore_data_access。 若要將工作區連結至中繼存放區,請使用 databricks_metastore_assignment。
開始之前
開始之前,您應該先熟悉基本的 Unity 目錄概念,包括中繼存放區和受控記憶體。 請參閱什麼是 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 方案上。
如果您想要設定中繼存放區層級的根記憶體,您必須具有在 Azure 租使用者中建立下列項目的許可權:
- 要與 Azure Data Lake Storage Gen2 搭配使用的記憶體帳戶。 請參閱建立儲存體帳戶以與 Azure Data Lake Storage Gen2 搭配使用。
- 用來保存系統指派受控識別的新資源。 這需要您是租使用者中任何訂用帳戶中資源群組的參與者或擁有者。
步驟 1 (選擇性):建立中繼存放區層級受控記憶體的記憶體容器
在此步驟中,您可以選擇性地建立記憶體帳戶和容器,以在中繼存放區層級儲存受控數據表和磁碟區數據。 若要判斷您是否需要中繼存放區層級記憶體,請參閱 (選擇性) 建立中繼存放區層級記憶體。
建立 Azure Data Lake Storage Gen2 的記憶體帳戶。
此記憶體帳戶將包含 Unity 目錄受控數據表和磁碟區。 這必須是與 Azure Databricks 工作區位於相同區域中的 Azure Data Lake Storage Gen2 帳戶。 請參閱建立儲存體帳戶以與 Azure Data Lake Storage Gen2 搭配使用。
建立記憶體容器,以在中繼存放區層級保存受控數據表和磁碟區數據。
每個區域只能建立一個中繼存放區。 您必須針對中繼存放區和記憶體容器使用相同的區域。
此中繼存放區層級的儲存位置可以在目錄和架構層級上覆寫。 請參閱 在 Unity 目錄中指定受控儲存位置。
記下容器的 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 Storage Gen2 帳戶。 如果您想要使用服務主體,請參閱使用服務主體建立 Unity 目錄受控記憶體(舊版)。
步驟 3:建立中繼存放區並附加工作區
每個 Azure Databricks 區域都需要自己的 Unity 目錄中繼存放區。
您可以為組織運作的每個區域建立中繼存放區。 您可以將每個區域中繼存放區連結至該區域中任意數目的工作區。 每個連結的工作區都有中繼存放區中數據的相同檢視,而且可以在工作區之間管理數據訪問控制。 您可以使用 Delta Sharing 來存取其他中繼存放區中的數據。
如果您選擇建立中繼存放區層級記憶體,中繼存放區會使用您在先前步驟中建立的記憶體容器和 Azure 受控識別。
若要建立中繼存放區:
如果您選擇建立中繼存放區層級記憶體,請確定您具有記憶體容器的路徑,以及您在上一個工作中建立的 Azure Databricks 存取連接器資源識別符。
以帳戶管理員身分登入您的工作區。
按兩下 Azure Databricks 工作區頂端列中的使用者名稱,然後選取 [ 管理帳戶]。
登入 Azure Databricks 帳戶控制台。
按下 [目錄]。
按兩下 [ 建立中繼存放區]。
輸入下列內容:
中繼存放區的名稱 。
將部署中繼存放區的區域 。
這必須與您想要用來存取數據的工作區位於相同的區域中。 如果您選擇建立中繼存放區層級記憶體的記憶體容器,該區域也必須相同。
(選擇性)ADLS Gen 2 路徑:輸入要作為中繼存放區根記憶體的記憶體容器路徑。
會自動新增前置
abfss://
詞。(選擇性)存取連接器識別碼:以下列格式輸入 Azure Databricks 存取連接器的資源識別碼:
/subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
按一下 [建立]。
出現提示時,選取要連結至中繼存放區的工作區。
如需詳細資訊,請參閱 啟用 Unity 目錄的工作區。
將中繼存放區管理員角色轉移至群組。
建立中繼存放區的使用者是其擁有者,也稱為中繼存放區系統管理員。中繼存放區管理員可以在中繼存放區中建立最上層物件,例如目錄,並可管理數據表和其他物件的存取權。 Databricks 建議您將中繼存放區管理員角色重新指派給群組。 請參閱 指派中繼存放區管理員。
啟用 Azure Databricks 管理上傳至受控磁碟區。
Azure Databricks 使用跨原始來源資源分享 (CORS) 將數據上傳至 Unity 目錄中的受控磁碟區 。 請參閱 設定 CORS 的 Unity 目錄記憶體帳戶。