

# 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)

  [ETL およびデータ分析での CTAS および INSERT INTO を使用する](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)