amazon-web-services - Amazon S3、Amazon Athena 和 Amazon Athena 与分区的比较
问题描述
我想知道当我们使用不带分区和带分区的 Amazon Athena 时的性能改进。我确信带分区的 Athena 比 Athena 好得多。但是没有分区的 Athena 是否比 Amazon S3 有任何改进?
解决方案
分区将数据文件分成不同的目录。如果用于分区的列是查询WHERE
子句的一部分,则它允许 Athena 跳过不包含相关数据的目录。这对于提高查询性能(并降低成本)非常有效,因为它减少了对磁盘访问和内存的需求。
有几种方法可以提高 Amazon Athena 的性能:
- 以列格式存储数据,例如 Parquet。这允许 Athena 直接转到特定列,而无需读取宽表中的所有列。(这类似于 Amazon Redshift。)
- 压缩数据(例如使用 Snappy 压缩)以减少需要从磁盘读取的数据量。这也降低了查询的成本,因为它们是根据从磁盘读取的数据量收费的。(即时节省!)
WHERE
当在查询的子句中使用分区键时,将数据分区以完全跳过输入文件
有关这些优势的一些示例,请参阅:使用 Amazon Athena 分析 S3 中的数据 | AWS 大数据博客
推荐阅读
- java - 将 @ActiveProfiles 与 SPRING_PROFILES_ACTIVE 一起使用
- perl - 模棱两可的调用解析为 CORE::join(),符合条件或使用 & at
- android - 如何在 ARCore Sceneform 中为节点的旋转设置动画
- excel - Excel VBA 导入文本数组定义问题
- javascript - TypeError:在odoo 11.0中传递给object.__format__的非空格式字符串
- vb.net - 在 Visual Studio 中将字符串货币转换为数值。我怎么做?
- swift - 如何从自定义类提供“已发送操作”?
- java - 运算符在作为字符串给出的中缀表达式的后缀表示法的输出中放错了位置
- java - Maven - 如何从生成的 JAR 中排除依赖项
- javascript - javascript,节点,从其他对象属性生成对象属性,或默认