

# 创建命名空间
<a name="s3-tables-namespace-create"></a>

表命名空间是在 Amazon S3 表存储桶中对表进行分组的逻辑构造。每个表都属于单个命名空间。在表存储桶中创建表之前，必须创建一个命名空间来对表进行分组。可以使用 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、Amazon S3 REST API、AWS SDK 或集成查询引擎创建命名空间。

**命名空间名称**

以下命名规则适用于命名空间：
+ 名称长度必须介于 1 到 255 个字符之间。
+ 名称只能由小写字母、数字和下划线 (`_`) 组成。命名空间名称的开头或结尾不支持使用下划线。
+ 名称必须以字母或数字开头和结尾。
+ 名称不得包含连字符 (`-`) 或句点 (`.`)。
+ 命名空间在表存储桶中必须是唯一的。
+ 命名空间名称不得以保留前缀 `aws` 开头。

有关有效命名空间名称的更多信息，请参阅[表和命名空间的命名规则](s3-tables-buckets-naming.md#naming-rules-table)。

## 使用 S3 控制台和 Amazon Athena
<a name="create-namespace-console"></a>

以下过程通过**使用 Athena 创建表**工作流程在 Amazon S3 控制台中创建命名空间。如果您不想同时使用 Amazon Athena 在命名空间中创建表，则可以在创建命名空间后取消该工作流程。

**创建命名空间**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**表存储桶**。

1. 在**表存储桶**页面上，选择要在其中创建命名空间的存储桶。

1. 在存储桶详细信息页面上，选择**使用 Athena 创建表**。

1. 在**使用 Athena 创建表**对话框中，选择**创建命名空间**，然后选择**创建命名空间**。

1. 在**命名空间名称**字段中输入名称。命名空间名称必须为 1 到 255 个字符，并且在表存储桶中是唯一的。有效字符为 a–z、0–9 和下划线 (`_`)。命名空间名称的开头或结尾不支持使用下划线。

1. 选择**创建命名空间**。

1. 如果您还想创建表，请选择**使用 Athena 创建表**。有关使用 Athena 创建表的更多信息，请参阅[使用 S3 控制台和 Amazon Athena](s3-tables-create.md#create-table-console)。如果您不想立即创建表，请选择**取消**。

## 使用 AWS CLI
<a name="create-table-namespace-CLI"></a>

此示例说明如何使用 AWS CLI 创建表命名空间。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3tables create-namespace \
    --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1 \ 
    --namespace example_namespace
```

## 使用查询引擎
<a name="create-table-namespace-engine"></a>

您可以在连接到 Amazon S3 表存储桶的 Apache Spark 会话中创建命名空间。

此示例向您展示如何在与 S3 表类数据存储服务集成的查询引擎中使用 `CREATE` 语句来创建表。要使用此示例，请将*用户输入占位符* 替换为您自己的信息。

```
spark.sql("CREATE NAMESPACE IF NOT EXISTS s3tablesbucket.my_namespace")
```