本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
查詢 AWS GlueData Catalog 具體化視觀表
Athena 可讓您查詢 AWS GlueData Catalog 具體化視觀表。Glue Data Catalog 具體化視觀表會將 SQL 查詢的預先計算結果儲存為 Apache Iceberg 資料表。
當您在 Amazon EMR 或 中使用 Apache Spark 建立 Glue Data Catalog 具體化視觀表時AWS Glue,視觀表定義和中繼資料會存放在 AWS GlueData Catalog 中。預先計算的結果會儲存為 Amazon S3 中的 Apache Iceberg 資料表。您可以使用標準 SQL SELECT陳述式從 Athena 查詢這些具體化視觀表,就像查詢一般 Iceberg 資料表一樣。
先決條件
在 Athena 中查詢具體化視觀表之前,請確定下列事項:
-
具體化視觀表存在於AWS Glue資料目錄中,並使用 Apache Spark (Amazon EMR 7.12.0 版或更新版本,或 5.1 AWS Glue版或更新版本) 建立
-
若要在 Athena 中查詢具體化視觀表,您需要下列AWS Lake Formation許可:
-
SELECT具體化檢視的 許可 -
DESCRIBE具體化檢視的 許可 -
存取存放具體化檢視資料的基礎 Amazon S3 位置
-
-
具體化視觀表的基礎資料存放在 Amazon S3 Table 儲存貯體或 Amazon S3 一般用途儲存貯體中
-
您可以存取包含具體化檢視的 AWS GlueData Catalog 資料庫
-
對於存放在 Amazon S3 Tables 儲存貯體中的具體化視觀表,請確保您的 IAM 角色具有存取 S3 Tables 目錄的必要許可。
考量和限制
-
Athena 不會阻止具體化視觀表的下列寫入操作:
INSERT INTO、UPDATE、DELETE、MERGE -
Athena 不支援具體化視觀表的下列操作:
CREATE MATERIALIZED VIEW、REFRESH MATERIALIZED VIEW、ALTER MATERIALIZED VIEW、DROP MATERIALIZED VIEW。若要建立具體化視觀表,請在 Amazon EMR 或 中使用 Apache SparkAWS Glue。重新整理操作必須透過 AWS GlueData Catalog API 或 Apache Spark 執行。使用 Apache Spark 修改具體化視觀表。 -
DROP TABLE請改用語法,因為 Athena 將具體化視觀表視為 Iceberg 資料表。
注意
Athena 不會區分具體化視觀表和一般 Iceberg 資料表,因此不會封鎖寫入操作。
查詢具體化視觀表
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、 和彙總函數