View a markdown version of this page

查询 AWS Glue Data Catalog 实体化视图 - Amazon Athena

查询 AWS Glue Data Catalog 实体化视图

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

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

先决条件

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

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

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

    • 对实体化视图的 SELECT 权限

    • 对实体化视图的 DESCRIBE 权限

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

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

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

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

注意事项和限制

  • Athena 不支持对实体化视图的以下操作:ALTERCREATE MATERIALIZED VIEWREFRESH MATERIALIZED VIEWDROPINSERTUPDATEMERGEDELETEOPTIMIZEVACUUM。要创建实体化视图,请在 Amazon EMR 或 AWS Glue 中使用 Apache Spark。刷新操作必须通过 AWS 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 和聚合函数