外部位置

適用於:檢查標記是的磚的SQL檢查標記是的磚運行時

統一目錄和內置的磚蜂巢metastore使用默認管理表的位置。統一目錄引入了幾個新的可獲得的對象權限授予雲中的數據對象存儲。

外部位置

外部的位置是一個可獲得的對象,結合了一個存儲路徑和存儲憑證授權訪問路徑。

外部位置的創造者是最初的主人。外部位置的所有者可以修改外部位置的名字,URI和存儲憑證。

創建一個外部位置後,可以授權訪問帳戶級別校長(用戶和組)。

允許一個用戶或組使用一個外部位置可以訪問任何存儲路徑在位置的路徑沒有直接訪問存儲憑證。

進一步完善的訪問控製可以使用格蘭特外部表封裝單個文件在外部訪問的位置。

外部位置的名稱不合格和metastore中必須是惟一的。

任何外部位置的存儲路徑不能被包含在另一個外部位置的存儲路徑,或在外部表的存儲路徑使用顯式存儲憑證。

警告

如果一個模式(數據庫)注冊在你的工作空間層蜂巢metastore,模式使用級聯選項會導致所有文件被刪除遞歸模式位置,無論表類型(管理或外部)。

如果模式注冊metastore統一目錄,統一的文件目錄管理表遞歸地刪除。然而,文件外部表不刪除。你必須管理這些文件直接使用雲存儲提供商。

因此,為了避免數據意外丟失,您不應該注冊一個模式在一個蜂巢metastore位置與現有數據。你也不應該創建新的外部表在一個位置由蜂巢metastore模式或包含統一目錄管理表。

圖形表示的關係

下圖描述之間的關係:

  • 存儲憑證

  • 外部位置

  • 外部表

  • 存儲路徑

  • 我的實體

  • Azure服務帳戶

外部位置ER圖

例子

——“金融”用戶權限授予創建外部位置的my_aws_storage_cred存儲憑證,然後創建一個外部位置的具體路徑“my_aws_storage_cred”訪問>格蘭特創建外部位置存儲憑證my_aws_storage_cred金融>創建外部位置finance_locURL“s3: / /部門/金融”(憑證my_aws_storage_cred)評論“金融”;——授予讀、寫,並創建表訪問財務位置“金融”用戶>格蘭特文件,文件,創建外部外部位置finance_loc金融;——“金融”可以讀取任何存儲路徑下s3: / /部門/金融,但其他地方>選擇(1)δs3:/ /部門/金融/forecast_delta_table;One hundred.——“s3: / /部門/人力資源/”不是在外部位置“finance_loc”所以“金融”不能讀它>選擇(1)δs3:/ /部門/人力資源/employees_delta_table;錯誤——“金融”可以創建外部表中的特定對象“finance_loc”位置>創建主要默認的sec_filings位置s3: / /部門/金融/ sec_filings ';——不能列表文件在外部表與用戶沒有選擇許可>列表s3: / /部門/金融/ sec_filings '錯誤>列表s3: / /部門/金融/ sec_filings / _delta_log”錯誤