指定 Amazon S3 中的表位置
在 Athena 中运行 CREATE TABLE
查询时,Athena 将您的表注册到 AWS Glue Data Catalog 中,这是 Athena 存储元数据的地方。
要在 Amazon S3 中指定数据的路径,请使用 CREATE TABLE
语句中的 LOCATION
属性,如以下示例中所示:
CREATE EXTERNAL TABLE `test_table`(
...
)
ROW FORMAT ...
STORED AS INPUTFORMAT ...
OUTPUTFORMAT ...
LOCATION s3://amzn-s3-demo-bucket/folder
/
Amazon S3 中的 LOCATION
指定表示您的表的所有文件。
重要
Athena 会读取存储在您指定的 Amazon S3 文件夹中的全部数据。如果您有不希望 Athena 读取的数据,请不要在与您希望 Athena 读取的数据所在的相同 Amazon S3 文件夹中存储这些数据。
在 CREATE TABLE
语句中指定 LOCATION
时,请使用以下准则:
-
使用尾部斜杠。
-
您可以使用 Amazon S3 文件夹或 Amazon S3 访问点别名的路径。有关 Amazon S3 访问点别名的信息,请参阅《Amazon S3 用户指南》中的为您的访问点使用存储桶式别名。
使用:
s3://amzn-s3-demo-bucket/folder
/
s3://amzn-s3-demo-bucket-metadata
-s3alias/folder
/
请勿使用以下任何项目来指定数据的 LOCATION
。
-
请勿使用文件名、下划线、通配符或 glob 模式来指定文件位置。
-
请勿将完整 HTTP 表示法(例如
s3.amazon.com
)添加到 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