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