查询 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 不支持对实体化视图的以下操作:
ALTER、CREATE MATERIALIZED VIEW、REFRESH MATERIALIZED VIEW、DROP、INSERT、UPDATE、MERGE、DELETE、OPTIMIZE、VACUUM。要创建实体化视图,请在 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查询:使用标准 SQLSELECT语句从实体化视图中读取数据 -
DESCRIBE:查看实体化视图的架构和元数据 -
SHOW TABLES:列出实体化视图以及数据库中的其他表 -
JOIN操作:将实体化视图与其他表或视图联接 -
筛选和聚合:应用
WHERE子句、GROUP BY和聚合函数