

# Athena を使用した Amazon S3 テーブルのクエリ
<a name="s3-tables-integrating-athena"></a>

Amazon Athena はインタラクティブなクエリサービスで、Amazon S3 内のデータを標準 SQL を使用して直接分析できます。詳細については、「*Amazon Athena ユーザーガイド*」の「[Amazon Athena とは](https://docs.aws.amazon.com//athena/latest/ug/what-is.html)」を参照してください。

テーブルバケットを AWS 分析サービスと統合した後、Athena で S3 テーブルに対してデータ定義言語 (DDL)、データ操作言語 (DML)、データクエリ言語 (DQL) クエリを実行できます。テーブルバケット内のテーブルに対するクエリの実行方法の詳細については、「*Amazon Athena ユーザーガイド*」の「[S3 テーブルバケットカタログを登録する](https://docs.aws.amazon.com//athena/latest/ug/gdc-register-s3-table-bucket-cat.html)」を参照してください。

Amazon S3 コンソールから Athena でクエリを実行することもできます。

**重要**  
テーブルを作成するときは、テーブル名とテーブル定義にすべて小文字を使用してください。例えば、列名がすべて小文字であることを確認します。テーブル名またはテーブル定義に大文字が含まれている場合、テーブルは AWS Lake Formation または AWS Glue Data Catalog ではサポートされていません。この場合、テーブルバケットが AWS 分析サービスと統合されていても、テーブルは Amazon Athena などの AWS 分析サービスに表示されません。  
テーブル定義に大文字が含まれている場合、Athena で `SELECT` クエリを実行すると、次のエラーメッセージが表示されます。「GENERIC\_INTERNAL\_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names.」

## S3 コンソールと Amazon Athena の使用
<a name="query-table-console"></a>

以下の手順では、Amazon S3 コンソールを使用して Athena クエリエディタにアクセスし、Amazon Athena でテーブルに対してクエリを実行できるようにします。

**注記**  
以下の手順を実行する前に、このリージョンでテーブルバケットを AWS 分析サービスと統合していることを確認してください。詳細については、「[Amazon S3 Tables と AWS 分析サービスの統合](s3-tables-integrating-aws.md)」を参照してください。

**テーブルに対してクエリを実行するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[テーブルバケット]** を選択します。

1. **[テーブルバケット]** ページで、クエリを実行するテーブルを含むバケットを選択します。

1. バケットの詳細ページで、クエリを実行するテーブルの名前の横にあるオプションボタンを選択します。

1. **[Athena でテーブルに対してクエリを実行]** を選択します。

1. Amazon Athena コンソールが開き、サンプル `SELECT` クエリがロードされた状態で Athena クエリエディタが表示されます。必要に応じて、このクエリをユースケースに合わせて変更します。

   クエリエディタで、**[カタログ]** フィールドに **s3tablescatalog/** に続いてテーブルバケットの名前を入力します。例えば、**s3tablescatalog/{{amzn-s3-demo-bucket}}** のようになります。**[データベース]** フィールドに、テーブルが保存されている名前空間を入力します。
**注記**  
**[カタログ]** および **[データベース]** フィールドにこれらの値が表示されない場合は、このリージョンでテーブルバケットを AWS 分析サービスと統合していることを確認してください。詳細については、「[Amazon S3 Tables と AWS 分析サービスの統合](s3-tables-integrating-aws.md)」を参照してください。

1. クエリを実行するには、**[Run]** (実行) を選択します。
**注記**  
Athena でクエリを実行しようとしたときに、クエリを実行するためのアクセス許可が不足しており、プリンシパルは指定されたリソースに対する権限を持っていないという内容のエラーが表示される場合は、テーブルに対する必要な Lake Formation 許可が付与されている必要があります。詳細については、「[テーブルまたはデータベースに対する Lake Formation アクセス許可の付与](grant-permissions-tables.md#grant-lf-table)」を参照してください。
クエリを実行しようとしたときに、Iceberg はリクエストされたリソースにアクセスできないという内容のエラーが表示される場合は、AWS Lake Formation コンソールに移動し、作成したテーブルバケットカタログとデータベース (名前空間) に対するアクセス許可が自分に付与されていることを確認してください。これらのアクセス許可を付与するときは、テーブルを指定しないでください。詳細については、「[テーブルまたはデータベースに対する Lake Formation アクセス許可の付与](grant-permissions-tables.md#grant-lf-table)」を参照してください。
Athena で `SELECT` クエリを実行するときに次のエラーメッセージが表示される場合、このメッセージはテーブル名またはテーブル定義の列名に大文字が含まれていることが原因です。「GENERIC\_INTERNAL\_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names.」 テーブル名と列名がすべて小文字であることを確認します。