指定 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