开始
加载和管理数据
处理数据
政府
引用和资源
2023年8月2日更新
给我们反馈
本文介绍了外部位置和存储凭证并解释如何创建和使用它们来管理访问你的数据。
外部位置和存储凭证允许统一目录读取和写入数据云租户代表用户。使用这些对象:
创建、阅读和写作外部表。
覆盖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(“减少外部位置(如果存在)<位置名>”)
创建视图
加载数据使用统一目录外部位置