

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

# 使用 SerDe 來建立資料表
<a name="serde-create-a-table"></a>

若要在 Athena 中建立資料表時使用 SerDe，請使用下列其中一種方法：
+ 指定 `ROW FORMAT DELIMITED`，然後使用 DDL 陳述式來指定欄位分隔符號，如以下範例所示。在您指定時 `ROW FORMAT DELIMITED` 時，Athena 會預設使用 LazySimpleSerDe。

  ```
  ROW FORMAT DELIMITED 
  FIELDS TERMINATED BY ','
  ESCAPED BY '\\'
  COLLECTION ITEMS TERMINATED BY '|'
  MAP KEYS TERMINATED BY ':'
  ```

  如需 `ROW FORMAT DELIMITED` 的範例，請參閱以下主題：

  [適用於 CSV、TSV 和自訂分隔檔案的 Lazy Simple SerDe](lazy-simple-serde.md)

  [查詢 Amazon CloudFront 日誌](cloudfront-logs.md)

  [查詢 Amazon EMR 日誌](emr-logs.md)

  [查詢 Amazon VPC 流程日誌](vpc-flow-logs.md)

  [使用 CTAS 和 INSERT INTO 以進行 ETL 和資料分析](ctas-insert-into-etl.md)
+ 使用 `ROW FORMAT SERDE` 來明確指定 Athena 在資料表中讀取和寫入資料時應使用的 SerDe 類型。以下範例會指定 LazySimpleSerDe。若要指定分隔符號，請使用 `WITH SERDEPROPERTIES`。由 `WITH SERDEPROPERTIES` 指定的屬性會對應至 `ROW FORMAT DELIMITED` 範例中的單獨陳述式 (例如 `FIELDS TERMINATED BY`)。

  ```
  ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
  WITH SERDEPROPERTIES (
  'serialization.format' = ',',
  'field.delim' = ',',
  'collection.delim' = '|',
  'mapkey.delim' = ':',
  'escape.delim' = '\\'
  )
  ```

  如需 `ROW FORMAT SERDE` 的範例，請參閱以下主題：

  [Avro SerDe](avro-serde.md)

  [Grok SerDe](grok-serde.md)

  [JSON SerDe 程式庫](json-serde.md)

  [用於處理 CSV 的 Open CSV SerDe](csv-serde.md)

  [Regex SerDe](regex-serde.md)