建立外部位置以將雲端記憶體連線到 Azure Databricks
本文說明如何在 Unity 目錄中設定外部位置,以將雲端記憶體連線到 Azure Databricks。
外部位置會將 Unity 目錄記憶體認證與雲端物件記憶體容器產生關聯。 外部位置可用來定義目錄和架構的受控儲存位置,以及定義外部數據表和外部磁碟區的位置。
您可以建立外部位置,以參考 Azure Data Lake 儲存體 Gen2 儲存器容器或 Cloudflare R2 貯體中的記憶體。
您可以使用目錄總管、Databricks CLI、筆記本或 Databricks SQL 查詢中的 SQL 命令,或 Terraform 來建立外部位置。
注意
當您定義磁碟區時,磁碟區路徑下數據的雲端 URI 存取權是由磁碟區的許可權所控管。
開始之前
先決條件:
您必須先建立 Azure Data Lake 儲存體 Gen2 儲存器容器或 Cloudflare R2 貯體,才能在 Azure Databricks 中建立外部位置物件。
您作為外部位置使用的 Azure Data Lake 儲存體 Gen2 儲存器帳戶必須具有階層式命名空間。
您必須在 Azure Databricks 中定義記憶體認證,才能存取雲端記憶體位置路徑。 請參閱建立記憶體認證以連線到 Azure Data Lake 儲存體 Gen2 和建立記憶體認證以連線到 Cloudflare R2。
權限需求:
- 您必須擁有
CREATE EXTERNAL LOCATION
中繼存放區和外部位置中所參考記憶體認證的許可權。 中繼存放區管理員預設在CREATE EXTERNAL LOCATION
中繼存放區上。
使用目錄總管建立外部位置
您可以使用目錄總管手動建立外部位置。
許可權和必要條件: 請參閱 開始之前。
若要建立外部位置:
登入附加至中繼存放區的工作區。
在提要欄位中,按兩下 [目錄]。
按兩下 [ + 新增 ] 按鈕,然後選取 [ 新增外部位置]。
輸入外部位置名稱。
選擇性地從現有的裝入點複製容器路徑(僅限 Azure Data Lake 儲存體 Gen2 容器)。
如果您未從現有的裝入點複製,請使用 [URL] 字段來輸入您想要作為外部位置的記憶體容器或 R2 貯體路徑。
例如,
abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
或r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
。選取授與外部位置存取權的記憶體認證。
(選擇性)如果您想要讓使用者具有外部位置的唯讀存取權,請按兩下 [進階選項 ],然後選取 [ 只讀]。 如需詳細資訊,請參閱 將外部位置標示為唯讀。
按一下 [建立]。
授與許可權以使用外部位置。
若要讓任何人使用外部位置,您必須授與許可權:
- 若要使用外部位置將受控記憶體位置新增至中繼存放區、目錄或架構,請授與
CREATE MANAGED LOCATION
許可權。 - 若要建立外部資料表或磁碟區,請授與
CREATE EXTERNAL TABLE
或CREATE EXTERNAL VOLUME
。
若要使用目錄總管來授與許可權:
- 按兩下外部位置名稱以開啟詳細資料窗格。
- 在 [ 許可權] 索引標籤上,按兩下 [ 授與]。
- 在 [授與] 對話框上
<external location>
,選取 [主體] 欄位中的使用者、群組或服務主體,然後選取您要授與的許可權。 - 按兩下 [ 授與]。
- 若要使用外部位置將受控記憶體位置新增至中繼存放區、目錄或架構,請授與
使用 SQL 建立外部位置
若要使用 SQL 建立外部位置,請在筆記本或 SQL 查詢編輯器中執行下列命令。 取代佔位元值。
許可權和必要條件: 請參閱 開始之前。
<location-name>
:外部位置的名稱。 如果location_name
包含特殊字元,例如連字元 (-
),它必須以反引號 (` `
) 括住。 請參閱 名稱。<bucket-path>
:此外部位置授與存取權的雲端租用戶路徑。 例如,abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
或r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
。<storage-credential-name>
:授權讀取和寫入記憶體容器或貯體路徑的記憶體認證名稱。 如果記憶體認證名稱包含特殊字元,例如連字元 (-
),則必須以反引號 (` `
) 括住。
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
下一步
- 授與其他使用者使用外部位置的許可權。 請參閱 管理外部位置。
- 使用外部位置定義受控儲存位置。 請參閱 在 Unity 目錄中指定受控儲存位置。
- 使用外部位置定義外部數據表。 請參閱 建立外部數據表。
- 使用外部位置定義外部磁碟區。 請參閱 建立和使用磁碟區。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應