【问题标题】:AWS S3 data format in files for AWS Athena queries用于 AWS Athena 查询的文件中的 AWS S3 数据格式
【发布时间】:2017-06-11 07:04:17
【问题描述】:
我想将 http 请求负载存储在 AWS S3 中,并使用 AWS Athena 对这些数据进行查询。文件中的数据格式是什么,在这种情况下建议存储在S3中?
选项包括:JSON、CSV、TSV、文本文件、Apache ORC、Apache Parquet、压缩数据。
目前我考虑这三个方面:序列化/反序列化的时间、查询速度、空间。
欢迎任何可能有用的链接!谢谢!
【问题讨论】:
标签:
json
csv
http
parquet
amazon-athena
【解决方案1】:
Athena 目前支持以下文件格式。
- Avro
- CloudTrail
- CSV (OpenCSVSerDe)
- TSV
- 实木复合地板
- 兽人
- JSON
- Apache Web 服务器日志 (RegexSerDe)
- 自定义分隔符
为了使用这些格式,您必须指定一个序列化器-反序列化器类 (SerDe),以便 Athena 知道表的格式。
要提高 Athena 查询性能,重要的因素是对数据进行分区。通过对数据进行分区,您可以限制每个查询扫描的数据量,从而提高性能并降低成本。
欲了解更多信息,请查看Athena partitioning 和支持的file formats。
【解决方案2】:
对于序列化和查询性能以及空间,Apache Parquet 和 ORC 将是最佳选择。它们都是列式数据格式,使用各种编码和压缩技术同时优化大小和查询性能。
ORC 和 Parquet 之间的选择主要取决于您计划使用的工具。虽然 Parquet 是更广泛使用的一种,但某些工具在 ORC 上的性能更好。
使用这些格式有一个限制:它们针对批处理工作负载进行了优化。这意味着您还应该需要批量编写它们。