

# 指定 Amazon S3 中的表位置
<a name="tables-location-format"></a>

在 Athena 中运行 `CREATE TABLE` 查询时，Athena 将您的表注册到 Amazon 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 用户指南**》中的 [存储桶限制和局限](https://docs.amazonaws.cn/AmazonS3/latest/dev/BucketRestrictions.html)。
+ 有关在 Amazon S3 中使用文件夹的信息，请参阅《Amazon Simple Storage Service 用户指南**》中的 [使用文件夹](https://docs.amazonaws.cn/AmazonS3/latest/userguide/using-folders.html)。

Amazon S3 中的 `LOCATION` 指定表示您的表的*所有*文件。

**重要**  
Athena 会读取存储在您指定的 Amazon S3 文件夹中的*全部*数据。如果您有*不*希望 Athena 读取的数据，请不要在与您希望 Athena 读取的数据所在的相同 Amazon S3 文件夹中存储这些数据。

在 `CREATE TABLE` 语句中指定 `LOCATION` 时，请使用以下准则：
+ 使用尾部斜杠。
+ 您可以使用 Amazon S3 文件夹或 Amazon S3 访问点别名的路径。有关 Amazon S3 访问点别名的信息，请参阅《*Amazon S3 用户指南*》中的[为您的访问点使用存储桶式别名](https://docs.amazonaws.cn/AmazonS3/latest/userguide/access-points-alias.html)。

 **使用**:

```
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
  ```