View a markdown version of this page

查询 Amazon Glue Data Catalog 实体化视图 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

查询 Amazon Glue Data Catalog 实体化视图

Athena 可以查询 Amazon Glue Data Catalog 实体化视图。Glue Data Catalog 实体化视图将预先计算的 SQL 查询结果存储为 Apache Iceberg 表。

使用 Amazon EMR 或 Amazon Glue Glue 中的 Apache Spark 创建实体化视图时,视图定义和元数据存储在 Amazon Glue Data Catalog 中。预先计算的结果以 Apache Iceberg 表的形式存储在 Amazon S3 中。您可以使用标准 SQL SELECT 语句从 Athena 查询这些实体化视图,就像查询常规 Iceberg 表一样。

先决条件

在 Athena 中查询实体化视图之前,请确保满足以下条件:

  • 实体化视图位于 Amazon Glue Data Catalog 中,是使用 Apache Spark 创建的(Amazon EMR 版本 7.12.0 或更高版本,或 Amazon Glue 版本 5.1 或更高版本)

  • 要在 Athena 中查询实体化视图,您需要以下 Amazon Lake Formation 权限:

    • 对实体化视图的 SELECT 权限

    • 对实体化视图的 DESCRIBE 权限

    • 存储实体化视图数据的底层 Amazon S3 位置的访问权限

  • 实体化视图的底层数据存储在 Amazon S3 表类数据存储服务存储桶或 Amazon S3 通用存储桶中

  • 您可以访问包含实体化视图的 Amazon Glue Data Catalog 数据库

  • 对于存储在 Amazon S3 表类数据存储服务存储桶中的实体化视图,请确保您的 IAM 角色具有访问 S3 表类数据存储服务目录所需的权限。

注意事项和限制

  • Athena 不支持对实体化视图的以下操作:ALTERCREATE MATERIALIZED VIEWREFRESH MATERIALIZED VIEWDROPINSERTUPDATEMERGEDELETEOPTIMIZEVACUUM。要创建实体化视图,请在 Amazon EMR 或 Amazon Glue 中使用 Apache Spark。刷新操作必须通过 Amazon Glue Data Catalog API 或 Apache Spark 执行。使用 Apache Spark 修改实体化视图。

查询实体化视图

Athena 将实体化视图视为用于读取操作的标准 Iceberg 表,允许您访问预先计算的数据,而无需进行特殊语法或配置更改。

要在 Athena 中查询实体化视图,请使用标准 SELECT 语句:

SELECT * FROM my_database.sales_summary_mv;

您可以像使用常规表一样应用筛选器、聚合和联接:

SELECT region, SUM(total_sales) as sales_total FROM my_database.sales_summary_mv WHERE year = 2025 GROUP BY region ORDER BY sales_total DESC;

支持的操作

Athena 支持对实体化视图的以下操作:

  • SELECT 查询:使用标准 SQL SELECT 语句从实体化视图中读取数据

  • DESCRIBE:查看实体化视图的架构和元数据

  • SHOW TABLES:列出实体化视图以及数据库中的其他表

  • JOIN 操作:将实体化视图与其他表或视图联接

  • 筛选和聚合:应用 WHERE 子句、GROUP BY 和聚合函数