【发布时间】:2019-10-16 19:59:18
【问题描述】:
我在 Athena 上有一个由 day 分区的表(巨大的表,TB 的数据)。表上没有day 列,至少没有明确显示。我希望这样的查询:
select max(day) from my_table
几乎不会扫描任何数据。但是,Athena 报告说扫描了数百 GB。知道为什么吗?
===== 编辑 2021-01-14 ===
我最近又碰到了这个问题。事实证明,当底层数据是 parquet 时,分区上的操作不会消耗数据。对于我尝试过的其他数据格式(包括 ORC),存在相关的数据成本。这对我来说没有任何意义。
【问题讨论】:
-
如果我不得不猜测的话,我会说这是因为目录名称上定义的虚拟列只有在应用于一行数据时才变得“真实”,这需要阅读内容。我想知道以替代数据格式(例如 Parquet)存储是否会更有效?
-
@JohnRotenstein 底层数据是orc格式的。
-
@Istvan show create table 中的哪些信息最有用?
-
@NicolasBusca all,最重要的是表属性以及分区和分桶。
标签: amazon-web-services amazon-athena