

# 在 Athena 控制台中创建 CTAS 查询
<a name="ctas-console"></a>

在 Athena 控制台中，您可以通过另一个查询创建 CTAS 查询。<a name="ctas-create-from-query"></a>

**通过另一个查询创建 CTAS 查询**

1. 在 Athena 控制台查询编辑器中运行查询。

1. 在查询编辑器底部，选择 **Create**（创建）选项，然后选择 **Table from query**（根据查询创建表）。

1. 在 **Create table as select**（根据选择创建表）表单中，填写字段，如下所示：

   1. 对于 **Table name**（表名称），指定新表的名称。仅使用小写和下划线，例如 `my_select_query_parquet`。

   1. 对于 **Database configuration**（数据库配置），使用选项选择一个现有的数据库或创建一个数据库。

   1. （可选）在 **Result configuration**（结果配置）中，对于 **Location of CTAS query results**（CTAS 查询结果的位置），如果您的工作组查询结果位置设置未覆盖此选项，请执行以下操作之一：
      + 在搜索框中输入一个现有 S3 位置的路径，或选择 **Browse S3**（浏览 S3）以从列表中选择一个位置。
      + 选择 **View**（查看）以打开 Amazon S3 控制台的 **Buckets** （存储桶）页面，您可以在其中查看有关现有存储桶的更多信息并进行选择，或者使用自己的设置创建一个存储桶。

      您需要在 Amazon S3 中指定一个将用于输出数据的空位置。如果指定位置中已存在数据，则查询会失败并出现错误。

      如果工作组的查询结果位置设置覆盖了此位置设置，则 Athena 会在位置 `s3://amzn-s3-demo-bucket/tables/query_id/` 中创建您的表。

   1. 对于 **Data format**（数据格式），指定您的数据将采用的格式。
      + **表类型** – Athena 中的默认表类型是 Apache Hive。
      + **文件格式** – 可选择 CSV、TSV、JSON、Parquet 或 ORC 等选项。有关 Parquet 和 ORC 格式的信息，请参阅 [使用列式存储格式](columnar-storage.md)。
      + **写入压缩** –（可选）选择一个压缩格式。Athena 支持多种用于读取和写入数据的压缩格式，例如从使用多种压缩格式的表中进行读取。例如，当某些 Parquet 文件使用 Snappy 压缩而其他 Parquet 文件使用 GZIP 压缩时，Athena 可以成功读取使用 Parquet 文件格式的表中的数据。同样的原则适用于 ORC、文本文件和 JSON 存储格式。有关更多信息，请参阅 [在 Athena 中使用压缩](compression-formats.md)。
      + **分区** –（可选）选择要分区的列。通过对数据进行分区，您可以限制每个查询扫描的数据量，从而提高性能并降低成本。您可按任何键对数据进行分区。有关更多信息，请参阅 [对您的数据进行分区](partitions.md)。
      + **桶** –（可选）选择要分桶的列。分桶是一种在单个分区内基于特定列将数据进行分组的技术。这些列被称为 *桶键*。通过将相关数据分组到单个桶（分区内的一个文件）中，您可以显著减少 Athena 扫描的数据量，从而提高查询性能并降低成本。有关更多信息，请参阅 [使用分区和分桶](ctas-partitioning-and-bucketing.md)。

   1. 对于 **Preview table query**（预览表查询），检查您的查询。有关查询语法，请参阅 [CREATE TABLE AS](create-table-as.md)。

   1. 选择**创建表**。

Athena 控制台有 SQL 模板，您也可以使用该模板来创建 CTAS 查询。<a name="ctas-create-new"></a>

**使用 SQL 模板创建 CTAS 查询**

使用 `CREATE TABLE AS SELECT` 模板在查询编辑器中创建 CTAS 查询。

1. 在 Athena 控制台中，选择 **Tables and views**（表和视图）旁边的 **Create table**（创建表），然后选择 **CREATE TABLE AS SELECT**。这会使用具有占位符值的 CTAS 查询填充查询编辑器。

1. 在查询编辑器中，根据需要编辑查询。有关查询语法，请参阅 [CREATE TABLE AS](create-table-as.md)。

1. 选择**运行**。

有关示例，请参阅 [CTAS 查询的示例](ctas-examples.md)。

