外部位置

适用于:检查标记是的砖的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”错误