Athena分区疑问:单分区未按分区查询的扫描量及多C分区扫描范围
问题1:单分区表未指定分区条件时的数据扫描量
会扫描这个唯一分区的全部数据。Athena的分区裁剪依赖查询语句中的分区过滤条件,当未指定分区条件时,它会遍历表中所有已注册的分区,这里仅存在1个分区,因此会扫描该分区内的所有数据。
问题2:指定A/B条件查询时是否会扫描未注册的C分区
不会扫描其他C分区,原因如下:
- Athena仅依据表的元数据识别需要扫描的分区,S3上存在但未在表元数据中注册的分区,Athena完全不会感知到。
- 你通过
ALTER TABLE mytable DROP PARTITION (A = 'some A value', B = 'some B value')操作,已移除该A/B组合下所有旧C分区的注册信息,之后仅将新的C分区添加到元数据中。此时表元数据里,该A/B组合仅关联一个C分区。 - 当执行仅指定A和B条件的查询时,Athena只会匹配元数据中已注册的对应分区,也就是你添加的新C分区,不会扫描S3上其他未注册的C2、C3等分区的数据。
内容的提问来源于stack exchange,提问作者Jeremy Fisher
相关产品推荐
相关产品推荐

