開始
加載和管理數據
處理數據
政府
引用和資源
2023年7月21日更新
給我們反饋
本文介紹了外部位置和存儲憑證並解釋如何創建和使用它們來管理訪問你的數據。
外部位置和存儲憑證允許統一目錄讀取和寫入數據雲租戶代表用戶。使用這些對象:
創建、閱讀和寫作外部表。
覆蓋metastore的默認管理表在目錄或模式級別存儲位置。
創建一個從文件管理或外部表存儲在雲的房客。
插入記錄到表的文件存儲在雲的房客。
直接探索數據文件存儲在雲的房客。
一個外部位置是一個對象,結合了雲存儲路徑和存儲憑證授權訪問雲存儲路徑。每個存儲位置是受統一目錄訪問控製政策,控製哪些用戶和組可以訪問憑據。如果用戶沒有訪問的存儲位置統一目錄,請求失敗和統一目錄不嚐試驗證您的雲代表用戶的租戶。
請注意
盡管這個名字“外部”這個詞,可以使用外部位置不僅為外部表定義存儲位置,而且對管理表。具體來說,它們可以被用來定義存儲位置管理表的目錄和模式層麵,覆蓋metastore根存儲位置。看到創建目錄和創建模式。
磚建議使用外部的位置而不是直接使用存儲憑證。
創建存儲憑證,你一定是一個磚賬戶管理。的帳戶管理創建存儲憑證可以將所有權委托給另一個用戶或組的管理權限。
創建外部位置,你必須是一個metastore管理員或用戶創建外部位置特權。
創建外部位置
以下小節將展示如何創建和管理存儲憑證。
創建一個存儲憑證,你給統一目錄的讀寫能力分配我角色的GCS桶,桶Databricks-generated穀歌雲服務帳戶。
登錄到你的團結Catalog-enabled磚工作區作為用戶帳戶管理角色在磚帳戶。
在側邊欄中,單擊數據。
在屏幕的底部,點擊存儲憑證。
點擊+添加>添加存儲憑證。
在創建一個新的存儲憑證對話框中,輸入一個存儲證書的名字和一個可選的評論。
點擊保存。
磚創建存儲憑證並生成一個穀歌的雲服務帳戶。
在創建存儲憑證對話框中,記下的服務帳戶ID,這是形式的電子郵件地址,並點擊完成。
去穀歌雲控製台和打開你的GCS桶前一步中提供。
在許可選項卡上,單擊+授權訪問和分配服務帳戶以下角色:
存儲遺留桶讀者
存儲對象管理
使用服務帳戶的電子郵件地址作為主要的標識符。
你現在可以創建一個外部位置引用這個存儲憑證。
查看所有存儲的列表metastore憑證,您可以使用數據瀏覽器或SQL命令。
登錄到一個工作區metastore有關。
點擊數據。
運行以下命令在筆記本或磚的SQL編輯器。
顯示存儲憑證;
運行以下命令在一個筆記本上。
顯示(火花。sql(“顯示存儲憑證”))
圖書館(SparkR)顯示(sql(“顯示存儲憑證”))
查看存儲證書的屬性,您可以使用數據瀏覽器或SQL命令。
單擊存儲憑證的名稱查看其屬性。
運行以下命令在筆記本或磚的SQL編輯器。取代<憑據名稱>憑證的名稱。
<憑據名稱>
描述存儲憑證<憑證- - - - - -的名字>;
運行以下命令在一個筆記本上。取代<憑據名稱>憑證的名稱。
顯示(火花。sql(“描述存儲憑證<憑據名稱>”))
圖書館(SparkR)顯示(sql(“描述存儲憑證<憑據名稱>”))
重命名一個存儲憑證,您可以使用數據瀏覽或SQL命令。
點擊存儲憑證的名稱打開編輯對話框。
重命名存儲憑證並保存它。
運行以下命令在筆記本或磚的SQL編輯器。替換占位符的值:
<憑據名稱>:憑證的名稱。
< new-credential-name >證書:一個新名字。
< new-credential-name >
改變存儲憑證<憑證- - - - - -的名字>重命名來<新- - - - - -憑證- - - - - -的名字>;
運行以下命令在一個筆記本上。替換占位符的值:
火花。sql(“改變存儲憑證<憑據名稱> < new-credential-name >重命名”)
圖書館(SparkR)sql(“改變存儲憑證<憑據名稱> < new-credential-name >重命名”)
您可以授予權限直接在存儲憑證,但磚建議你參考的外部位置和授予權限。外部位置結合存儲憑證與一個特定的路徑,隻和授權訪問路徑和它的內容。
你可以管理權限存儲憑證使用數據瀏覽、磚CLI或筆記本或磚SQL查詢的SQL命令。你可以grant和revoke以下權限存儲憑證:
創建表
讀文件
寫文件
在下麵的例子中,替換占位符的值:
<主要>:電子郵件地址的帳戶級別用戶或帳戶的名稱級別組授予許可。
<主要>
< storage-credential-name >:存儲憑證的名稱。
< storage-credential-name >
資助的節目一個存儲憑證,使用一個命令如下。您可以選擇過濾結果隻顯示指定的資金本金。
顯示獎助金(<主要>]在存儲憑證<存儲- - - - - -憑證- - - - - -的名字>;
顯示(火花。sql(“撥款(<校長>)的節目存儲憑證< storage-credential-name >”))
圖書館(SparkR)顯示(sql(“撥款(<校長>)的節目存儲憑證< storage-credential-name >”))
允許創建外部表直接使用存儲憑證:
格蘭特創建外部表在存儲憑證<存儲- - - - - -憑證- - - - - -的名字>來<主要>;
火花。sql(“格蘭特創建外部表存儲憑證< storage-credential-name > <校長>”)
圖書館(SparkR)sql(“格蘭特創建外部表存儲憑證< storage-credential-name > <校長>”)
允許選擇從外部表直接使用存儲憑證:
格蘭特讀文件在存儲憑證<存儲- - - - - -憑證- - - - - -的名字>來<主要>;
火花。sql(“格蘭特讀文件存儲憑證< storage-credential-name > <校長>”)
圖書館(SparkR)sql(“格蘭特讀文件存儲憑證< storage-credential-name > <校長>”)
如果一個組名稱包含一個空間,使用反勾號周圍(不是撇號)。
一個存儲憑證的創造者是最初的主人。改變老板到另一個帳戶級別用戶或組,執行以下操作:
<主要>:一個戶頭級別用戶的電子郵件地址或一個戶頭級別組的名稱。
改變存儲憑證<憑證- - - - - -的名字>老板來<主要>;
火花。sql(“改變存儲憑證<憑據名稱>所有者<校長>”)
圖書館(SparkR)sql(“改變存儲憑證<憑據名稱>所有者<校長>”)
刪除(下降)存儲憑證你一定是它的主人。刪除存儲憑證,您可以使用數據瀏覽或SQL命令。
單擊刪除按鈕。
運行以下命令在筆記本或磚的SQL編輯器。取代<憑據名稱>憑證的名稱。部分的命令在括號中是可選的。默認情況下,如果外部位置使用的憑據,不刪除。取代<憑據名稱>憑證的名稱。
如果存在不返回一個錯誤,如果證書不存在。
如果存在
下降存儲憑證(如果存在]<憑證- - - - - -的名字>;
運行以下命令在一個筆記本上。取代<憑據名稱>憑證的名稱。部分的命令在括號中是可選的。默認情況下,如果外部位置使用的憑據,不刪除。取代<憑據名稱>憑證的名稱。
火花。sql(“減少存儲憑證(如果存在)<憑據名稱>”)
圖書館(SparkR)sql(“減少存儲憑證(如果存在)<憑據名稱>”)
下麵的章節說明如何創建和管理外部的位置。
您可以創建一個外部位置使用數據瀏覽、磚CLI或筆記本或磚SQL查詢的SQL命令。
運行以下SQL命令在筆記本或磚的SQL編輯器。替換占位符的值:
<位置名>:外部位置的名稱。
<位置名>
< bucket-path >:雲租戶的路徑,這個外部位置授予訪問權。
< bucket-path >
< storage-credential-name >:存儲憑證的名稱引用的服務帳戶授權讀取或寫入的GCS桶。
每個雲存儲路徑可以隻有一個外部位置相關聯。如果您嚐試創建第二個外部位置引用相同的路徑,命令失敗。
創建外部位置(如果不存在]<位置- - - - - -的名字>URL“gs: / / < bucket-path >”與([存儲]憑證<存儲- - - - - -憑證- - - - - -的名字>)(評論<評論- - - - - -字符串>];
火花。sql(“創建外部位置(如果不存在)<位置名>””URL gs: / / < bucket-path >””((存儲)憑證< storage-credential-name >)”“[評論<評論>]”)
圖書館(SparkR)sql(粘貼(“創建外部位置(如果不存在)<位置名>”,”URL gs: / / < bucket-path >”,”((存儲)憑證< storage-credential-name >)”,“[評論<評論>]”,9月=”“))
火花。sql(“創建外部位置(如果不存在)<位置名>”+”URL gs: / / < bucket-path >”+”((存儲)憑證< storage-credential-name >)”+“[評論<評論>]”)
看到外部位置的屬性,您可以使用數據瀏覽器或SQL命令。
在屏幕的底部,點擊外部位置。
點擊外部位置的名稱查看它的屬性。
描述外部位置<位置- - - - - -的名字>;
顯示(火花。sql(“描述外部位置<位置名>”))
圖書館(SparkR)顯示(sql(“描述外部位置<位置名>”))
外部位置的所有者可以重命名,改變URI,改變外部存儲憑證的位置。
重命名一個外部位置,請執行以下操作:
<位置名>:位置的名稱。
< new-location-name >位置:一個新名字。
< new-location-name >
改變外部位置<位置- - - - - -的名字>重命名來<新- - - - - -位置- - - - - -的名字>;
火花。sql(“改變外部位置<位置名> < new-location-name >重命名”)
圖書館(SparkR)sql(“改變外部位置<位置名> < new-location-name >重命名”)
改變外部位置的URI指向雲租戶,做到以下幾點:
< url >:新存儲URL位置應該在雲租戶授權訪問。
< url >
改變外部位置location_name集URL“< url >”(力];
火花。sql(“改變外部位置location_name設置URL < URL >[力量]”)
圖書館(SparkR)sql(“改變外部位置location_name設置URL < URL >[力量]”)
的力選擇更改URL即使外部表依賴外部的位置。
力
改變外部位置使用的存儲憑證,做到以下幾點:
<憑據名稱>:存儲證書,授予訪問權限的名稱在雲租戶的URL位置。
改變外部位置<位置- - - - - -的名字>集存儲憑證<憑證- - - - - -的名字>;
火花。sql(“改變外部位置<位置名>設置存儲憑證<憑據名稱>”)
圖書館(SparkR)sql(“改變外部位置<位置名>設置存儲憑證<憑據名稱>”)
您可以grant和revoke以下權限使用外部位置數據瀏覽、磚CLI或筆記本或磚SQL查詢的SQL命令:
<位置名>:外部位置的名稱授權讀取或寫入的GCS桶雲租戶。
給授予在外部位置,使用一個命令如下。您可以選擇過濾結果隻顯示指定的資金本金。
顯示獎助金(<主要>]在外部位置<位置- - - - - -的名字>;
顯示(火花。sql(“顯示授予<校長>外部位置<位置名>”))
圖書館(SparkR)顯示(sql(“顯示授予<校長>外部位置<位置名>”))
允許使用一個外部位置創建一個表:
格蘭特創建外部表在外部位置<位置- - - - - -的名字>來<主要>;
火花。sql(“格蘭特創建外部表外部位置<位置名> <校長>”)
圖書館(SparkR)sql(“格蘭特創建外部表外部位置<位置名> <校長>”)
允許從外部讀取文件位置:
格蘭特讀文件在外部位置<位置- - - - - -的名字>來<主要>;
火花。sql(“格蘭特讀取外部文件位置<位置名> <校長>”)
圖書館(SparkR)sql(“格蘭特讀取外部文件位置<位置名> <校長>”)
外部位置的創造者是最初的主人。改變老板到另一個帳戶級別用戶或組,運行以下命令在筆記本或磚的SQL編輯器或者使用數據瀏覽。替換占位符的值:
<位置名>:憑證的名稱。
改變外部位置<位置- - - - - -的名字>老板來<主要>
刪除(下降)外部位置你一定是它的主人。刪除外部位置,請執行以下操作:
運行以下命令在筆記本或磚的SQL編輯器。物品在括號中是可選的。取代<位置名>與外部位置的名稱。
下降外部位置(如果存在]<位置- - - - - -的名字>;
運行以下命令在一個筆記本上。物品在括號中是可選的。取代<位置名>與外部位置的名稱。
火花。sql(“減少外部位置(如果存在)<位置名>”)
圖書館(SparkR)sql(“減少外部位置(如果存在)<位置名>”)
創建視圖
加載數據使用統一目錄外部位置