指定 Amazon S3 中的表位置 - Amazon Athena

指定 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 Simple Storage Service 用户指南》中的 存储桶限制和局限

  • 有关在 Amazon S3 中使用文件夹的信息,请参阅《Amazon Simple Storage Service 用户指南》中的 使用文件夹

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