外部位置(磚SQL)

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

外部位置

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

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

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

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

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

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

警告

為了避免數據意外丟失,不注冊一個模式(數據庫)位置與現有數據或創建新的外部表的位置管理的模式。下降的模式將遞歸刪除所有數據文件管理的位置。

圖形表示的關係

下圖描述之間的關係:

  • 存儲憑證

  • 外部位置

  • 外部表

  • 存儲路徑

  • 我的實體

  • Azure服務帳戶

外部位置ER圖

例子

——創建一個外部位置在特定路徑的my_aws_storage_cred訪問>創建外部位置finance_loc URL的s3: / /部門/金融(憑證my_aws_storage_cred)評論“融資”;——授權訪問財政位置>格蘭特READ_FILE WRITE_FILE, CREATE_TABLE外部位置finance_loc融資;——“金融”可以讀取任何存儲路徑下s3: / /部門/財務但無處可> SELECT count(1)從“δ”。“s3: / /部門/金融/預測/ somefile”;100 > SELECT count(1)從“δ”。“s3: / /部門/人力資源/員工;錯誤——“金融”可以創建外部表中的特定對象的finance_loc位置> create table sec_filings位置的s3: / /部門/金融/ sec_filings ';——不能列表文件在外部表沒有權限列表> s3: / /部門/金融/ sec_filings“錯誤列表> s3: / /部門/金融/ sec_filings / _delta_log”錯誤