首页 > 解决方案 > Amazon S3、Amazon Athena 和 Amazon Athena 与分区的比较

问题描述

我想知道当我们使用不带分区和带分区的 Amazon Athena 时的性能改进。我确信带分区的 Athena 比 Athena 好得多。但是没有分区的 Athena 是否比 Amazon S3 有任何改进?

标签: amazon-web-servicesamazon-s3partitioningamazon-athena

解决方案


分区将数据文件分成不同的目录。如果用于分区的列是查询WHERE子句的一部分,则它允许 Athena 跳过不包含相关数据的目录。这对于提高查询性能(并降低成本)非常有效,因为它减少了对磁盘访问和内存的需求。

有几种方法可以提高 Amazon Athena 的性能:

  • 以列格式存储数据,例如 Parquet。这允许 Athena 直接转到特定列,而无需读取宽表中的所有列。(这类似于 Amazon Redshift。)
  • 压缩数据(例如使用 Snappy 压缩)以减少需要从磁盘读取的数据量。这也降低了查询的成本,因为它们是根据从磁盘读取的数据量收费的。(即时节省!)
  • WHERE当在查询的子句中使用分区键时,将数据分区以完全跳过输入文件

有关这些优势的一些示例,请参阅:使用 Amazon Athena 分析 S3 中的数据 | AWS 大数据博客


推荐阅读