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

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

使用 SerDe

SerDe(串行器/解串器)是一种可供 Athena 与各种格式的数据交互的方式。

它是您指定的 SerDe,而不是用于定义表架构的 DDL。换言之,SerDe 可以覆盖您在创建表时在 Athena 中指定的 DDL 配置。

在查询中使用 SerDe

要在 Athena 中创建表时使用 SerDe,请使用以下方法之一:

  • 使用 DDL 语句来描述如何在表中读取和写入数据,不指定 ROW FORMAT,如以下示例所示。这会省略列出实际 SerDe 类型,默认情况下会使用本机 LazySimpleSerDe

通常,如果您不指定 ROW FORMAT,或者指定 ROW FORMAT DELIMITED,Athena 会使用 LazySimpleSerDe

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\' COLLECTION ITEMS TERMINATED BY '|' MAP KEYS TERMINATED BY ':'
  • 显式指定 Athena 在向表中读取和写入数据时应使用的 SerDe 类型。此外,在 SERDEPROPERTIES 中指定其他属性,如以下示例所示。

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