本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
建筑物 AWS Glue Data Catalog 视图
在中 AWS Glue Data Catalog,视图是一个虚拟表,其中的内容由引用一个或多个表的SQL查询定义。您可以使用亚马逊 Athena 或 Amazon Redshift 的SQL编辑器创建最多引用 10 个表的数据目录视图。视图的基础参考表可以属于同一个数据库,也可以属于同 AWS 账户一个数据目录中的不同数据库。
您可以引用标准 AWS Glue 表和开放表格式 (OTF) 的表,例如 Apache Hudi
区分数据目录视图与其他视图类型
数据目录视图与 Apache Hive、Apache Spark 和 Amazon Athena 视图不同。数据目录视图是的本机功能 AWS Glue Data Catalog,也是由多方言定义者创建的视图。您可以使用支持的分析服务之一创建数据目录视图,例如 Athena 或 Amazon Redshift Spectrum,也可以使用其他支持的分析服务访问相同的视图。另一方面,Apache Hive、Apache Spark 和 Athena 视图是在每项分析服务(例如 Athena 和 Amazon Redshift)中独立创建的,并且只能在该服务中可见和访问。
什么是定义视图?
定义者视图是一种基于创建该SQL视图的委托人的权限进行操作的视图。definer 角色具有访问引用表的必要权限,它运行定义视图的SQL语句。定义者创建视图并通过精细 AWS Lake Formation的访问控制与其他用户共享。
当用户查询定义者视图时,查询引擎使用定义者角色的权限来访问基础参考表。这种方法使用户无需直接访问源表即可与视图进行交互,从而增强了安全性并简化了数据访问管理。
要设置定义者视图,定义者必须是其数据目录中托管视图的同一个 AWS 账户中的IAM角色。有关定义者角色所需权限的更多信息,请参阅创建视图的先决条件。
多方言视图框架
数据目录支持使用多种结构化查询语言 (SQL) 方言创建视图。SQL是一种用于在关系数据库中存储和处理信息的语言,每个 AWS 分析引擎都使用自己的变体SQL或SQL方言。
您可以使用一种支持的分析查询引擎以一种SQL方言创建数据目录视图。随后,您可以在任何其他支持的分析引擎中使用不同SQL方言的ALTER VIEW
语句更新视图。但是,每种方言都必须引用相同的表、列和数据类型集。
您可以使用GetTable
API、 AWS CLI 和 AWS 控制台访问视图中可用的多种方言。因此,数据目录视图是可见的,可用于跨支持的不同分析引擎进行查询。
通过定义可从多个引擎查询的通用视图架构和元数据对象,数据目录视图使您能够在整个数据湖中使用统一视图。
有关如何解析每种方言架构的更多详细信息,请参见API参考链接。有关不同类型的匹配规则的更多详细信息,请参阅,链接到API文档中的相关部分。
与 Lake Formation 权限集成
您可以使用 AWS Lake Formation 集中管理用户 AWS Glue Data Catalog 视图的权限。您可以使用命名的资源方法或 LF-Tag 授予对数据目录视图的精细权限,并在 AWS 组织和组织单位之间 AWS 账户共享这些权限。您还可以 AWS 区域 使用资源链接共享和访问数据目录视图。这允许用户在不复制数据源和共享基础表的情况下提供数据访问权限。
数据目录视图的CREATE VIEW
DDL语句可以引用标准 AWS Glue 表和开放表格式 (OTF) 的表,例如 Hudi、Delta Lake 和 Iceberg,其基础数据存储在 Lake Formation 注册的 Amazon S3 位置,以及与 Lake Formation 共享的 Amazon Redshift 数据共享中的联合表。只要用于查询视图的引擎支持该格式,表就可以是任何文件格式。您也可以引用运行引擎的内置函数,但可能不允许使用其他特定于引擎的资源。有关更多详细信息,请参阅 数据目录视图注意事项和限制
使用案例
以下是数据目录视图的重要用例:
创建和管理对单个视图架构的权限。这有助于避免对在多个引擎中创建的重复视图的权限存在不一致的风险。
向用户授予对引用多个表的视图的权限,而无需直接授予对基础引用表的权限。
通过在视图上应用 LF 标签并向用户授予基于 LF 标签的权限,使用 LF 标签(其中 LF 标签只能级联到列级别)对表进行行级筛选。
支持用于创建视图的 AWS 分析服务
以下 AWS 分析服务支持创建数据目录视图:
Amazon Redshift
亚马逊 Athena 第 3 版
其他 资源
您可以在本指南中了解有关数据目录的更多信息,也可以使用以下资源:
以下视频演示了如何创建视图并从 Athena 和 Amazon Redshift 中查询视图。