查詢 AWS GlueData Catalog 具體化視觀表 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

查詢 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 INTOUPDATEDELETEMERGE

  • Athena 不支援具體化視觀表的下列操作:CREATE MATERIALIZED VIEWREFRESH MATERIALIZED VIEWALTER MATERIALIZED VIEWDROP 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 查詢 - 使用標準 SQL SELECT陳述式從具體化視觀表讀取資料

  • DESCRIBE - 檢視具體化視觀表的結構描述和中繼資料

  • SHOW TABLES - 列出具體化視觀表以及資料庫中的其他資料表

  • JOIN 操作 - 將具體化視觀表與其他資料表或視觀表聯結

  • 篩選和彙總 - 套用WHERE子句GROUP BY、 和彙總函數