SerDe の使用 - Amazon Athena

SerDe の使用

SerDe (シリアライザー/デシリアライザー) は、Athena がさまざまな形式のデータとやり取りする方法です。

SerDe は、ユーザーが指定するものであり、テーブルスキーマを定義する DDL ではありません。言い換えると、SerDe は、テーブルの作成時に Athena で指定する DDL 設定を上書きできます。

クエリで SerDe を使用する

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 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' = '\\' )