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 は、マテリアライズドビューでのオペレーション (
ALTER、CREATE MATERIALIZED VIEW、REFRESH MATERIALIZED VIEW、DROP、INSERT、UPDATE、MERGE、DELETE、OPTIMIZE、VACUUM) をサポートしません。マテリアライズドビューを作成するには、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クエリ - 標準 SQLSELECTステートメントを使用してマテリアライズドビューからデータを読み取る -
DESCRIBE- マテリアライズドビューのスキーマとメタデータを表示する -
SHOW TABLES- データベース内の他のテーブルとともにマテリアライズドビューを一覧表示する -
JOINオペレーション - マテリアライズドビューを他のテーブルまたはビューに結合する -
フィルタリングと集計 -
WHERE句、GROUP BY、集計関数を適用する