Amazon S3 でテーブルの場所を指定する - Amazon Athena

Amazon S3 でテーブルの場所を指定する

Athena で CREATE TABLE クエリを実行するとき、Athena はテーブルを Athena がメタデータを保存する AWS Glue データカタログに登録します。

Amazon S3 内のデータへのパスを指定するには、次の例のように、CREATE TABLE ステートメントで LOCATION プロパティを使用します。

CREATE EXTERNAL TABLE `test_table`( ... ) ROW FORMAT ... STORED AS INPUTFORMAT ... OUTPUTFORMAT ... LOCATION s3://amzn-s3-demo-bucket/folder/
  • バケットの命名についての詳細は、「Amazon Simple Storage Service ユーザーガイド」の「バケットの制約と制限」を参照してください。

  • Amazon S3 でのフォルダの使用についての詳細は、「Amazon Simple Storage Service ユーザーガイド」の「Using Folders」(フォルダの使用) を参照してください。

Amazon S3 の LOCATION は、テーブルを表すすべてのファイルを指定します。

重要

Athena が、指定した Amazon S3 フォルダに保存されているすべてのデータを読み込みます。Athena に読み込ませたくないデータがある場合は、そのデータを Athena に読み込ませたいデータと同じ Amazon S3 フォルダに保存しないでください。

CREATE TABLE ステートメントで LOCATION を指定する場合は、次のガイドラインを使用します。

  • 末尾にスラッシュを使用します。

  • Amazon S3 フォルダまたは Amazon S3 アクセスポイントエイリアスへのパスを使用できます。Amazon S3 アクセスポイントエイリアスの詳細については、「Amazon S3 ユーザーガイド」の「Using a bucket-style alias for your access point」を参照してください。

を使用します

s3://amzn-s3-demo-bucket/folder/
s3://amzn-s3-demo-bucket-metadata-s3alias/folder/

以下の項目をデータの LOCATION の指定に使用しないでください。

  • ファイルの場所を指定するために、ファイル名、アンダースコア、ワイルドカード、または glob パターンを使用しないでください。

  • s3.amazon.com などの完全な HTTP 表記を Amazon S3 バケットのパスに追加しないでください。

  • パスに // のような空のフォルダを使用しないでください (例: S3://amzn-s3-demo-bucket/folder//folder/)。

  • 次のようなパスを使用しないでください:

    s3://amzn-s3-demo-bucket s3://amzn-s3-demo-bucket/* s3://amzn-s3-demo-bucket/mySpecialFile.dat s3://amzn-s3-demo-bucket/prefix/filename.csv s3://amzn-s3-demo-bucket.s3.amazon.com S3://amzn-s3-demo-bucket/prefix//prefix/ arn:aws:s3:::amzn-s3-demo-bucket/prefix s3://arn:aws:s3:<region>:<account_id>:accesspoint/<accesspointname> https://<accesspointname>-<number>.s3-accesspoint.<region>.amazonaws.com