

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Athena SQL を使用した Iceberg テーブルの操作
<a name="iceberg-athena"></a>

Amazon Athena は Apache Iceberg の組み込みサポートを提供し、追加のステップや設定は必要ありません。このセクションでは、サポートされている機能の詳細と、Athena を使用して Iceberg テーブルを操作するための大まかなガイダンスについて説明します。

## バージョンと機能の互換性
<a name="athena-version"></a>

### Iceberg テーブル仕様のサポート
<a name="athena-table-spec"></a>

Apache Iceberg テーブル仕様は、Iceberg テーブルの動作を指定します。Athena はテーブル形式バージョン 2 をサポートしているため、コンソール、CLI、または SDK で作成した Iceberg テーブルは、本質的にそのバージョンを使用します。

Amazon EMR の Apache Spark や などの別のエンジンで作成された Iceberg テーブルを使用する場合は AWS Glue、テーブル[プロパティを使用してテーブル](https://iceberg.apache.org/docs/latest/configuration/#reserved-table-properties)形式バージョンを設定してください。参考として、このガイドの前半の[「Iceberg テーブルの作成と書き込み](iceberg-spark.md#spark-create-data)」セクションを参照してください。

### Iceberg 機能のサポート
<a name="athena-feature"></a>

Athena を使用して Iceberg テーブルの読み取りと書き込みを行うことができます。`UPDATE`、、および `DELETE FROM`ステートメントを使用してデータを変更する`MERGE INTO`と、Athena はmerge-on-readモードのみをサポートします。このプロパティは変更できません。copy-on-write でデータを更新または削除するには、Amazon EMR の Apache Spark や などの他のエンジンを使用する必要があります AWS Glue。次の表は、Athena での Iceberg 機能のサポートをまとめたものです。


<table>
<thead>
  <tr><th colspan="2"></th><th colspan="2">DDL サポート</th><th colspan="2">DML サポート</th><th>AWS Lake Formation セキュリティ用 (オプション)</th></tr>
</thead>
<tbody>
  <tr><td></td><td>テーブル形式</td><td>テーブルの作成</td><td>スキーマ進化</td><td>データの読み込み</td><td>データの書き込み</td><td>行/列のアクセスコントロール</td></tr>
  <tr><td rowspan="2">Amazon Athena</td><td rowspan="2">バージョン 2</td><td rowspan="2">✓</td><td rowspan="2">✓</td><td rowspan="2">✓</td><td>X  Copy-on-write</td><td>✓</td></tr>
  <tr><td>  Merge-on-read</td><td>✓</td></tr>
</tbody>
</table>


**注記**  
Athena は増分クエリをサポートしていません。
Athena では、CoW がサポートされていないため、テーブルプロパティの書き込み時コピー (CoW) 設定に関係なく、更新、削除、マージオペレーションは常にデフォルトで読み取り時マージ (MoR) CoW になります。

## Iceberg テーブルの操作
<a name="athena-tables"></a>

Athena で Iceberg を使用するためのクイックスタートについては、このガイドの前半の「[Athena SQL での Iceberg テーブルの開始](getting-started.md)方法」セクションを参照してください。

次の表に、制限と推奨事項を示します。


| **シナリオ** | **制限** | **レコメンデーション** | 
| --- |--- |--- |
| テーブル DDL 生成 | 他のエンジンで作成された Iceberg テーブルには、Athena で公開されていないプロパティを含めることができます。これらのテーブルでは、DDL を生成できません。 | テーブルを作成したエンジンで同等のステートメント (Spark の `SHOW CREATE TABLE`ステートメントなど) を使用します。 | 
| Iceberg テーブルに書き込まれるオブジェクトのランダム Amazon S3 プレフィックス | デフォルトでは、Athena で作成された Iceberg テーブルでは、 `write.object-storage.enabled`プロパティが有効になっています。 | この動作を無効にして Iceberg テーブルプロパティを完全に制御するには、Amazon EMR の Spark や などの別のエンジンで Iceberg テーブルを作成します AWS Glue。 | 
| 増分クエリ | Athena では現在サポートされていません。 | 増分クエリを使用して増分データ取り込みパイプラインを有効にするには、Amazon EMR または で Spark を使用します AWS Glue。 | 