使用 SerDe - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 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对应于单独的语句(如FIELDS TERMINATED BY) 中的ROW FORMAT DELIMITED示例。

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