

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 建筑物 Amazon Glue Data Catalog 视图
<a name="working-with-views"></a>

在中 Amazon Glue Data Catalog，*视图*是一个虚拟表，其中的内容由引用一个或多个表的 SQL 查询定义。您可以使用 EMR Serverless 或 5.0 版本的 Amazon Athena、Amazon Redshift 或 Apache Spark 的 SQL 编辑器创建最多引用 10 个表的数据目录视图。 Amazon Glue 视图的基础参考表可以属于同一个数据库，也可以属于同一 Amazon Web Services 账户数据目录中的不同数据库。

您可以引用标准 Amazon Glue 表和开放表格式 (OTF) 的表，例如 [Apache Hudi](https://hudi.incubator.apache.org/)、Linux Foundation D [elta Lak](https://delta.io/) e 和 [Apache Iceberg](https://iceberg.apache.org/)，底层数据存储在注册的 Amazon S3 位置中。 Amazon Lake Formation此外，您还可以根据与 Lake Formation 共享的 Amazon Redshift 数据共享中的联合表创建视图。

## 将数据目录视图与其它视图类型区分开来
<a name="diff-views"></a>

数据目录视图与 Apache Hive、Apache Spark 和 Amazon Athena 视图不同。数据目录视图是的本机功能 Amazon Glue Data Catalog，也是由多方言定义者创建的视图。您可以使用 Athena 或 Amazon Redshift Spectrum 等支持的分析服务之一创建数据目录视图，并使用其它支持的分析服务访问相同的视图。另一方面，Apache Hive、Apache Spark 和 Athena 视图是在 Athena 和 Amazon Redshift 等每个分析服务中独立创建的，并且仅在该服务中可见和可访问。

## 什么是定义者视图？
<a name="definer-view"></a>

 定义者视图是一种 SQL 视图，根据创建视图的主体的权限进行操作。定义者角色拥有访问所引用表的必要权限，并运行定义视图的 SQL 语句。定义者创建视图并通过精细 Amazon Lake Formation的访问控制与其他用户共享。

当用户查询定义者视图时，查询引擎会使用定义者角色的权限访问底层引用表。这种方法使用户能够与视图交互，而无需直接访问源表，从而增强了安全性并简化了数据访问管理。

要设置定义者视图，定义者 IAM 角色可以与基表位于同一个 Amazon 账户中，也可以使用跨账户定义者角色位于不同的账户中。有关定义者角色所需权限的更多信息，请参阅[创建视图的先决条件](views-prereqs.md)。

## 多方言视图框架
<a name="multi-dialect"></a>

数据目录支持使用多种结构化查询语言（SQL）方言创建视图。SQL 是一种用于在关系数据库中存储和处理信息的语言，每个 Amazon 分析引擎都使用自己的 SQL 变体或 SQL 方言。

您可以使用一种支持的分析查询引擎，采用一种 SQL 方言创建数据目录视图。随后，您可以在任何其它支持的分析引擎中使用不同 SQL 方言的 `ALTER VIEW` 语句更新视图。不过，每种方言都必须引用一组相同的表、列和数据类型。

您可以使用 `GetTable` API Amazon CLI 和 Amazon 控制台访问视图可用的多种方言。因此，数据目录视图是可见的，可在支持的不同分析引擎中进行查询。

通过定义可从多个引擎查询的通用视图架构和元数据对象，数据目录视图使您能够在整个数据湖中使用统一视图。

有关如何为每种方言解析架构的更多详细信息，请参阅 [API 参考链接]()。有关不同类型的匹配规则的更多详细信息，请参阅 [API 文档中相关章节的链接]()。

## 整合 Lake Formation 权限
<a name="lf-view-integ"></a>

您可以使用 Amazon Lake Formation 集中管理用户 Amazon Glue Data Catalog 视图的权限。您可以使用命名的资源方法或 LF-Tag 授予对数据目录视图的精细权限，并在 Amazon 组织和组织单位之间 Amazon Web Services 账户共享这些权限。您还可以 Amazon Web Services 区域 使用资源链接共享和访问数据目录视图。这样，用户就可以在不复制数据来源并共享底层表的情况下提供数据访问权限。

数据目录视图的 `CREATE VIEW` DDL 语句可以引用开放表格式 (OTF) 的标准 Amazon Glue 表和表，例如 Hudi、Delta Lake 和 Iceberg，其基础数据存储在 Lake Formation 注册的 Amazon S3 位置，以及与 Lake Formation 共享的 Amazon Redshift 数据共享中的联合表。表可以是任何文件格式，只要用于查询视图的引擎支持该格式即可。您也可以引用运行引擎的内置函数，但可能不允许引用其它特定于引擎的资源。有关更多详细信息，请参阅 [数据目录视图注意事项和限制](views-notes.md)

## 使用案例
<a name="views-use-cases"></a>

以下是数据目录视图的重要使用案例：
+ 创建和管理对单个视图架构的权限。这有助于避免对在多个引擎中创建的重复视图的权限存在不一致的风险。
+ 向用户授予对引用多个表的视图的权限，而无需直接授予对基础引用表的权限。
+ 通过在视图上应用 LF 标签，并向用户授予基于 LF 标签的权限，使用 LF 标签在表上实现行级筛选（LF 标签只级联到列级别）。

## 支持的视图 Amazon 分析服务
<a name="views-supported-engines"></a>

以下 Amazon 分析服务支持创建数据目录视图：
+ Amazon Redshift
+ Amazon Athena 版本 3
+ Apache Spark on EMR Serverless
+  5.0 Amazon Glue 版本上的 Apache Spark

## 其他资源
<a name="views-addtional-resources"></a>

您可以在本指南中了解有关数据目录的更多信息，也可以使用以下资源：

以下视频演示了如何从 Athena 和 Amazon Redshift 创建视图并进行查询。

**Topics**
+ [将数据目录视图与其它视图类型区分开来](#diff-views)
+ [什么是定义者视图？](#definer-view)
+ [多方言视图框架](#multi-dialect)
+ [整合 Lake Formation 权限](#lf-view-integ)
+ [使用案例](#views-use-cases)
+ [支持的视图 Amazon 分析服务](#views-supported-engines)
+ [其他资源](#views-addtional-resources)
+ [创建视图的先决条件](views-prereqs.md)
+ [使用 DDL 语句创建数据目录视图](create-views.md)
+ [使用创建数据目录视图 Amazon Glue APIs](views-api-usage.md)
+ [授予对数据目录视图的权限](grant-perms-views.md)
+ [实体化视图](materialized-views.md)