

# AWS Glue Data Catalog マテリアライズドビューをクエリする
<a name="querying-iceberg-gdc-mv"></a>

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 からこれらのマテリアライズドビューをクエリできます。

## 前提条件
<a name="querying-iceberg-gdc-mv-prerequisites"></a>

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 ロールにある

## 考慮事項と制限事項
<a name="querying-iceberg-gdc-mv-considerations"></a>
+ 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 を使用してマテリアライズドビューに変更を加えます。

## マテリアライズドビューのクエリ
<a name="querying-iceberg-gdc-mv-operations"></a>

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;
```

## サポートされているオペレーション
<a name="querying-iceberg-gdc-mv-supported"></a>

Athena は、マテリアライズドビューでの次のオペレーションをサポートしています。
+ `SELECT` クエリ - 標準 SQL `SELECT` ステートメントを使用してマテリアライズドビューからデータを読み取る
+ `DESCRIBE` - マテリアライズドビューのスキーマとメタデータを表示する
+ `SHOW TABLES` - データベース内の他のテーブルとともにマテリアライズドビューを一覧表示する
+ `JOIN` オペレーション - マテリアライズドビューを他のテーブルまたはビューに結合する
+ フィルタリングと集計 - `WHERE` 句、`GROUP BY`、集計関数を適用する