Share via


建立外部位置以將雲端記憶體連線到 Azure Databricks

本文說明如何在 Unity 目錄中設定外部位置,以將雲端記憶體連線到 Azure Databricks。

外部位置會將 Unity 目錄記憶體認證與雲端物件記憶體容器產生關聯。 外部位置可用來定義目錄和架構的受控儲存位置,以及定義外部數據表和外部磁碟區的位置。

您可以建立外部位置,以參考 Azure Data Lake 儲存體 Gen2 儲存器容器或 Cloudflare R2 貯體中的記憶體。

您可以使用目錄總管、Databricks CLI、筆記本或 Databricks SQL 查詢中的 SQL 命令,或 Terraform 來建立外部位置。

注意

當您定義磁碟區時,磁碟區路徑下數據的雲端 URI 存取權是由磁碟區的許可權所控管。

開始之前

先決條件

權限需求

  • 您必須擁有 CREATE EXTERNAL LOCATION 中繼存放區和外部位置中所參考記憶體認證的許可權。 中繼存放區管理員預設在 CREATE EXTERNAL LOCATION 中繼存放區上。

使用目錄總管建立外部位置

您可以使用目錄總管手動建立外部位置。

許可權和必要條件: 請參閱 開始之前。

若要建立外部位置:

  1. 登入附加至中繼存放區的工作區。

  2. 在提要欄位中,按兩下 目錄圖示[目錄]。

  3. 按兩下 [ + 新增 ] 按鈕,然後選取 [ 新增外部位置]。

  4. 輸入外部位置名稱

  5. 選擇性地從現有的裝入點複製容器路徑(僅限 Azure Data Lake 儲存體 Gen2 容器)。

  6. 如果您未從現有的裝入點複製,請使用 [URL] 字段來輸入您想要作為外部位置的記憶體容器或 R2 貯體路徑。

    例如,abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>

  7. 選取授與外部位置存取權的記憶體認證。

  8. (選擇性)如果您想要讓使用者具有外部位置的唯讀存取權,請按兩下 [進階選項 ],然後選取 [ 只讀]。 如需詳細資訊,請參閱 將外部位置標示為唯讀

  9. 按一下 [建立]

  10. 授與許可權以使用外部位置。

    若要讓任何人使用外部位置,您必須授與許可權:

    • 若要使用外部位置將受控記憶體位置新增至中繼存放區、目錄或架構,請授與 CREATE MANAGED LOCATION 許可權。
    • 若要建立外部資料表或磁碟區,請授與 CREATE EXTERNAL TABLECREATE EXTERNAL VOLUME

    若要使用目錄總管來授與許可權:

    1. 按兩下外部位置名稱以開啟詳細資料窗格。
    2. 在 [ 許可權] 索引標籤上,按兩下 [ 授與]。
    3. 在 [授與] 對話框上<external location>,選取 [主體] 欄位中的使用者、群組或服務主體,然後選取您要授與的許可權。
    4. 按兩下 [ 授與]。

使用 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>'];

下一步