建立目錄
本文說明如何在 Unity 目錄中建立目錄。 目錄包含 架構(資料庫),而架構包含數據表、檢視、資料卷、模型和函式。
若要深入了解目錄,請參閱 什麼是 Azure Databricks 中的目錄?。
需求
若要建立目錄,不論目錄類型為何:
- 您必須是 Azure Databricks 中繼存放區管理員,或具有
CREATE CATALOG
中繼存放區的許可權。 - 您用來執行筆記本以建立目錄的計算資源必須位於 Databricks Runtime 11.3 或更新版本上,且必須使用符合 Unity 目錄規範的存取模式。 請參閱存取模式。 SQL 倉儲一律支援 Unity 目錄。
若要建立 共享目錄的步驟如下:
- 差異共用共享必須已存在於您的工作區中。 請參閱 如何? 讓共享數據可供我的小組使用?。
- 您必須是中繼存放區管理員、擁有
USE PROVIDER
中繼存放區的許可權,或擁有包含共用的提供者物件。
若要建立 標準目錄:
- 如果您指定目錄的受控儲存位置,則必須具有目標外部位置的
CREATE MANAGED STORAGE
許可權。 - 如果沒有資料中繼存放區層級的受控儲存區,則 必須 指定資料目錄的受控儲存位置。
若要建立 外部目錄:
- 您必須是以下其中之一:建立外國目錄所用連接的擁有者,或具備該連接的
CREATE FOREIGN CATALOG
許可權。 - 您必須在 Databricks Runtime 13.1 或更新版本上使用計算。 SQL 倉儲必須是 Pro 或無伺服器。
建立目錄
若要建立目錄,您可以使用目錄總管、SQL 命令、REST API、Databricks CLI 或 Terraform。 當您建立目錄時,會自動建立兩個架構(資料庫):default
和 information_schema
。
目錄瀏覽器
登入連結至中繼存放區的工作區。
點選
目錄。
按一下 [建立目錄] 按鈕。
在 建立新的目錄 對話框中,輸入 目錄名稱,然後選擇您要建立的目錄 類型:
- Standard 目錄:可保護的物件,用於組織由 Unity Catalog 管理的資料和 AI 資產。 除了 Lakehouse 同盟和從 Delta Sharing 共用建立的目錄之外,所有使用案例除外。
- Foreign 目錄:一個可保護的對象,使用 Lakehouse Federation 在外部數據系統中鏡像資料庫。 請參閱 Lakehouse 同盟設定概觀。
- 共用 目錄:一個可安全使用的物件,可以組織資料和其他與您分享作為 Delta Sharing 分享的資產。 從共用資源建立目錄,讓工作區中的使用者可以讀取這些資產。 請參閱 什麼是共用?。
根據目錄類型,指定下列選項:
標準目錄:這是選擇性的,但強烈建議您指定管理的 儲存位置。 您必須擁有
CREATE MANAGED STORAGE
作為受控儲存位置的目標外部位置許可權。 請參閱 在 Unity 目錄中指定受控儲存位置。您可以選擇性地指定已定義外部位置的子路徑。 如果您沒有定義外部位置,您可以按下 [建立新的外部位置] 來建立一個位置。
重要
如果您的工作區沒有中繼存放區層級的儲存位置,您必須在建立目錄時 指定受控記憶體位置。
針對外國目錄:您必須選取 連線,這是 Unity Catalog 中的可保護的物件,指定存取外部資料庫系統的路徑和認證。 請參閱 Lakehouse 同盟設定概觀。
當您選取連線時,請輸入您要鏡像的 資料庫 或其他 Databricks 目錄 的名稱。
需求會根據數據來源而有所不同:
- MySQL 使用兩層命名空間,因此不需要資料庫名稱。
- 若要連線至另一個 Databricks 工作區中的目錄,請輸入 Databricks Catalog 名稱,而不是資料庫名稱。
如果您沒有定義連線,您可以按兩下 [建立新的連線] 來建立一個連線。
針對共享目錄:您必須選取 提供者 和 共享。 選取提供者之後,您可以選擇其中一個提供者的資源。
如果您不確定想要的提供者和共用,您可能會發現使用目錄總管瀏覽器瀏覽或搜尋提供者和共用會更容易。 請查看 查看提供者 和 查看提供者與您分享的內容。
按一下 [建立]。
在 目錄建立後的 對話框中,按一下 [檢視目錄] 以接受目錄的自動配置,或按一下 [設定目錄](推薦),以設定目錄許可權、工作區綁定和元數據。
如果您按下 [檢視目錄]
,則連結至中繼存放區的所有工作區都可以存取目錄,並將 許可權授與所有帳戶使用者。 您可以略過此程式中的其餘步驟,並繼續將架構新增至目錄。 請參閱 建立架構。 您可以隨時返回目錄總管中的目錄詳細數據頁面,以更新擁有者、標籤、批註、工作區系結、許可權和架構。
在 [設定目錄 > 工作區] 頁面上,指定目錄系結的工作區。
根據預設,目錄會與連結至目前中繼存放區的所有工作區共用。 如果目錄包含應限制為特定工作區的數據,請清除 [所有工作區具有存取權] 選項,並使用 [指派給工作區] 按鈕來新增這些工作區。 目前工作區必須包含。
指派工作區之後,您可以選擇性地將預設
讀取 & 寫入 存取層級變更為[只讀 ]:從清單中選取工作區,然後點擊 [管理存取層級]按鈕。 點擊 下一步,以便為您的目錄指派 許可權。
根據預設,所有帳戶使用者都有
BROWSE
許可權,讓他們能夠在不具有數據的讀取許可權的情況下探索目錄元數據。若要將許可權授與使用者、群組或服務主體,請點擊 授與,並遵循 Unity Catalog 許可權和安全性實體物件中的指示。
按兩下 [下一步 ] 以新增選擇性標籤和批註 元數據。
標籤 是索引鍵/值組,可用來組織和分類目錄,以簡化數據資產的搜尋和探索。 值為選擇性值。 請參閱 將標籤套用至 Unity Catalog 的可安全保護的物件。
批註 是一個開放式欄位,通常用來提供描述,以協助使用者探索目錄中的數據資產。 請參閱將註解新增至資料和 AI 資產。
按一下 [檔案] 。
將架構和資料物件新增至目錄。
請參閱 建立架構。
您可以在建立目錄之後,隨時使用目錄總管來更新擁有者、標記、批註、工作區系結和許可權。
SQL
若要建立標準目錄,請在筆記本或 SQL 查詢編輯器中執行下列 SQL 命令。 括弧中的項目是選擇性的。 更換佔位符值:
<catalog-name>
:目錄的名稱。<location-path>
:選擇性但強烈建議使用。 如果您想要將此目錄中的受控數據表儲存在與針對中繼存放區設定的預設根記憶體不同的位置,請提供儲存位置路徑。重要
如果您的工作區沒有中繼資料存放區層級的儲存位置,您必須在建立目錄時指定受管控的儲存位置。
此路徑必須在外部位置設定中定義,而且您必須具有
CREATE MANAGED STORAGE
外部位置設定的許可權。 您可以使用外部位置組態或子路徑中定義的路徑 (換句話說,'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
或'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance/product'
)。<comment>
:選擇性描述或其他批注。
CREATE CATALOG [ IF NOT EXISTS ] <catalog-name>
[ MANAGED LOCATION '<location-path>' ]
[ COMMENT <comment> ];
例如,若要建立名為 example
的目錄:
CREATE CATALOG IF NOT EXISTS example;
若要建立共享目錄,請在筆記本或 SQL 查詢編輯器中執行下列命令。 括弧中的項目是選擇性的。
CREATE CATALOG [IF NOT EXISTS] <catalog-name>
USING SHARE <provider-name>.<share-name>;
[ COMMENT <comment> ];
若要建立外部目錄,請在筆記本或 SQL 查詢編輯器中執行下列命令。 括弧中的項目是選擇性的。 替換佔位符的值:
-
<catalog-name>
:Azure Databricks 中目錄的名稱。 -
<connection-name>
:指定數據源、路徑和存取認證的 連接物件。 -
<database-name>
:您想要在 Azure Databricks 中映射為目錄的資料庫名稱。 MySQL 不需要,其使用兩層命名空間。 針對 Databricks 對 Databricks Lakehouse 同盟,請改用catalog '<external-catalog-name>'
。 -
<external-catalog-name>
: Databricks-to-Databricks:您要鏡像的外部 Databricks 工作區中的目錄名稱。 請參閱 在另一個 Databricks 工作區上執行同盟查詢。
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS [(database '<database-name>') | (catalog '<external-catalog-name>')];
另請參閱 建立外部目錄。
若要限制帳戶中特定工作區的目錄存取權,也稱為工作區目錄系結,請參閱 限制特定工作區的目錄存取。
如需的詳細參數描述,請參閱 CREATE CATALOG。
建立目錄之後,請將許可權指派給目錄。 請參閱 Unity 目錄許可權和安全性實體物件。
其他
Terraform:您可以使用 Databricks Terraform 提供者 和 databricks_catalog來建立目錄。 您可以使用 databricks_catalogs來擷取目錄的相關資訊。
REST API:使用 POST /api/2.1/unity-catalog/catalogs。
Databricks CLI:databricks catalogs create <catalog-name> [options]
如需選項清單,請執行 databricks catalogs create -h
。 API 參考中也會說明選項。 請遵循上述段落中的 API 連結。
建立目錄之後,請將許可權指派給目錄。 請參閱 Unity 目錄許可權和安全物件。