

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 Amazon Ion 資料表
<a name="ion-serde-using-create-table"></a>

若要在 Athena 中，從以 Amazon Ion 格式存放的資料中建立資料表，您可以在 CREATE TABLE 陳述式中使用下列其中一項技術：
+ 指定 `STORED AS ION`。在這種用法中，您不必明確指定 Amazon Ion Hive SerDe。這種選擇是更為直接的選項。
+ 在 `ROW FORMAT SERDE`、`INPUTFORMAT` 和 `OUTPUTFORMAT` 欄位中指定 Amazon Ion 類別路徑。

您還可以使用 `CREATE TABLE AS SELECT` (CTAS) 陳述式在 Athena 中建立 Amazon Ion 資料表。如需相關資訊，請參閱[使用 CTAS 和 INSERT INTO 來建立 Amazon Ion 資料表](ion-serde-using-ctas-and-insert-into-to-create-ion-tables.md)。

## 指定 STORED AS ION
<a name="ion-serde-specifying-stored-as-ion"></a>

以下 `CREATE TABLE` 陳述式範例在 `LOCATION` 子句前使用 `STORED AS ION`，以基於 Amazon Ion 格式的航班資料建立資料表。`LOCATION` 子句指定了 Ion 格式輸入文件所在的儲存貯體或資料夾。掃描指定位置中的所有檔案。

```
CREATE EXTERNAL TABLE flights_ion (
    yr INT,
    quarter INT,
    month INT,
    dayofmonth INT,
    dayofweek INT,
    flightdate STRING,
    uniquecarrier STRING,
    airlineid INT,
)
STORED AS ION
LOCATION 's3://amzn-s3-demo-bucket/'
```

## 指定 Amazon Ion 類別路徑
<a name="ion-serde-specifying-the-ion-class-paths"></a>

您可以明確指定 `ROW FORMAT SERDE`、`INPUTFORMAT` 和 `OUTPUTFORMAT` 子句的 Ion 類別路徑值，但不要使用 `STORED AS ION` 語法，如下所示。


****  

| 參數 | Ion 類別路徑 | 
| --- | --- | 
| ROW FORMAT SERDE | 'com.amazon.ionhiveserde.IonHiveSerDe' | 
| STORED AS INPUTFORMAT | 'com.amazon.ionhiveserde.formats.IonInputFormat' | 
| OUTPUTFORMAT | 'com.amazon.ionhiveserde.formats.IonOutputFormat' | 

以下 DDL 查詢使用此技術建立與上一個範例相同的外部資料表。

```
CREATE EXTERNAL TABLE flights_ion (
    yr INT,
    quarter INT,
    month INT,
    dayofmonth INT,
    dayofweek INT,
    flightdate STRING,
    uniquecarrier STRING,
    airlineid INT,
)
ROW FORMAT SERDE
 'com.amazon.ionhiveserde.IonHiveSerDe'
STORED AS INPUTFORMAT
 'com.amazon.ionhiveserde.formats.IonInputFormat'
OUTPUTFORMAT
 'com.amazon.ionhiveserde.formats.IonOutputFormat'
LOCATION 's3://amzn-s3-demo-bucket/'
```

有關 Athena 中的 `CREATE TABLE` 陳述式的 SerDe 屬性相關資訊，請參閱[Amazon Ion SerDe 屬性參考](ion-serde-using-ion-serde-properties.md)。