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 で Apache Spark を使用して Glue Data Catalog マテリアライズドビューを作成すると、ビュー定義とメタデータが AWS Glue Data Catalog に保存されます。事前計算された結果は、Apache Iceberg テーブルとして Amazon S3 に保存されます。通常の Iceberg テーブルをクエリする場合と同様に、標準の SQL SELECT ステートメントを使用して Athena からこれらのマテリアライズドビューをクエリできます。

前提条件

Athena でマテリアライズドビューをクエリする前に、以下を確認してください。

  • マテリアライズドビューは AWS Glue データカタログに存在しており、Apache Spark (Amazon EMR リリース 7.12.0 以降、または AWS Glue バージョン 5.1 以降) を使用して作成されている

  • Athena でマテリアライズドビューをクエリするために必要な AWS Lake Formation 許可:

    • マテリアライズドビューにおける SELECT 許可

    • マテリアライズドビューにおける DESCRIBE 許可

    • マテリアライズドビューのデータが保存されており基盤となっている Amazon S3 の場所へのアクセス許可

  • マテリアライズドビューの基本的なデータは、Amazon S3 Table バケットまたは Amazon S3 汎用バケットに保存される

  • マテリアライズドビューを含む AWS Glue Data Catalog データベースへのアクセス許可がある

  • Amazon S3 Tables バケットに保存されているマテリアライズドビューの場合、S3 Tables カタログにアクセスするために必要な許可が自身の IAM ロールにある

考慮事項と制限事項

  • 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、集計関数を適用する