支持的 SerDes 和数据格式 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

支持的 SerDes 和数据格式

Athena 支持采用以下格式创建表和查询数据:CSV、TSV、自定义分隔符和 JSON 格式,Hadoop 相关格式(ORC、Apache Avro 和 Parquet),Logstash 日志、AWS CloudTrail 日志和 Apache WebServer 日志。

注意

本节中列出的格式由 Athena 用于读取数据。有关 Athena 在运行 CTAS 查询时用于写入数据的格式,请参阅从查询结果创建表 (CTAS)

要在 Athena 中采用这些格式创建表和查询数据,请指定一个串行器-解串器类 (SerDe),以便 Athena 知道使用哪种格式以及如何解析数据。

此表列出了 Athena 中支持的数据格式及其对应的 SerDe 库。

SerDe 是一个自定义库,可以告诉 Athena 使用的数据目录如何处理数据。要指定 SerDe 类型,可以在 Athena 中的 CREATE TABLE 语句的 ROW FORMAT 部分中显式列出该类型。在某些情况下,您可以省略 SerDe 名称,因为 Athena 在默认情况下对特定类型的数据格式使用某些 SerDe 类型。

支持的数据格式和 SerDes
数据格式 描述 Athena 中支持的 SerDe 类型

CSV(逗号分隔的值)

对于 CSV 格式的数据,每个行均表示一个数据记录,每个记录包含一个或多个字段,以逗号分隔。

TSV(制表符分隔的值)

对于 TSV 格式的数据,每个行均表示一个数据记录,每个记录包含一个或多个字段,以制表符分隔。

使用 用于 CSV、TSV 和自定义分隔文件的 LazySimpleSerDe 并将分隔符指定为 FIELDS TERMINATED BY '\t'

自定义分隔的

对于采用此格式的数据,每一行表示一个数据记录,记录由自定义的单字符分隔符分隔。

使用 用于 CSV、TSV 和自定义分隔文件的 LazySimpleSerDe 并指定自定义单字符分隔符。

JSON(JavaScript 对象表示法)

对于 JSON 数据,每个行均表示一个数据记录,每个记录包含属性–值对和数组,以逗号分隔。

Apache Avro

用于在 Hadoop 中存储数据的一种格式,它对记录值使用基于 JSON 的架构。

使用 Avro SerDe

ORC(优化的行列式)

一种用于优化 Hive 数据列式存储的格式。

使用 ORC SerDe 和 ZLIB 压缩。

Apache Parquet

一种用于在 Hadoop 中列式存储数据的格式。

使用 Parquet SerDe 和 SNAPPY 压缩。

Logstash 日志

一种用于在 Logstash 中存储日志的格式。

使用 Grok SerDe

Apache WebServer 日志

一种用于在 Apache WebServer 中存储日志的格式。

使用 Grok SerDeRegex SerDe

CloudTrail 日志

一种用于在 CloudTrail 中存储日志的格式。