

# 使用 CTAS 和 INSERT INTO 创建 Amazon Ion 表
<a name="ion-serde-using-ctas-and-insert-into-to-create-ion-tables"></a>

您可以使用 `CREATE TABLE AS SELECT`（CTAS）和 `INSERT INTO` 语句将数据从表复制或插入到 Athena 中 Amazon Ion 格式的新表中。

在 CTAS 查询中，在 `format='ION'` 子句中指定 `WITH`，如以下示例所示。

```
CREATE TABLE new_table
WITH (format='ION')
AS SELECT * from existing_table
```

默认情况下，Athena 以 [Ion 二进制格式](https://amzn.github.io/ion-docs/docs/binary.html)序列化 Amazon Ion 结果，但您也可以使用文本格式。若要使用文本格式，请在 CTAS `WITH` 子句中指定 `ion_encoding = 'TEXT'`，如以下示例所示。

```
CREATE TABLE new_table
WITH (format='ION', ion_encoding = 'TEXT')
AS SELECT * from existing_table
```

有关 CTAS `WITH` 子句中 Amazon Ion 特定属性的更多信息，请参阅 [CTAS WITH 子句 Amazon Ion 属性](#ion-serde-ctas-with-clause-properties)。

## CTAS WITH 子句 Amazon Ion 属性
<a name="ion-serde-ctas-with-clause-properties"></a>

在 CTAS 查询中，您可以使用 `WITH` 子句指定 Amazon Ion 格式，并可选择指定要使用的 Amazon Ion 编码和/或写入压缩算法。

**format**  
您可以将 `ION` 关键字指定为 CTAS 查询的 `WITH` 子句中的格式选项。执行此操作时，您创建的表将使用您为 `IonInputFormat` 指定的读取格式，并以您为 `IonOutputFormat` 指定的格式序列化数据。  
以下示例指定 CTAS 查询使用 Amazon Ion 格式。  

```
WITH (format='ION')
```

**ion\$1encoding**  
可选  
默认值：`BINARY`  
值：`BINARY`、`TEXT`  
指定以 Amazon Ion 二进制格式还是 Amazon Ion 文本格式序列化数据。以下示例指定 Amazon Ion 文本格式。  

```
WITH (format='ION', ion_encoding='TEXT')
```

**write\$1compression**  
可选  
默认值：`GZIP`  
值：`GZIP`、`ZSTD`、`BZIP2`、`SNAPPY`、`NONE`  
指定用于压缩输出文件的压缩算法。  
以下示例指定 CTAS 查询使用 [Zstandard](https://facebook.github.io/zstd/) 压缩算法以 Amazon Ion 格式写入其输出。  

```
WITH (format='ION', write_compression = 'ZSTD')       
```
有关在 Athena 中使用压缩的信息，请参阅 [在 Athena 中使用压缩](compression-formats.md)。

有关 Athena 中其他 CTAS 属性的信息，请参阅 [CTAS 表属性](create-table-as.md#ctas-table-properties)。