【发布时间】:2020-11-02 08:12:18
【问题描述】:
我们计划在 S3 中使用 Athena 作为我们数据(存储为分区中的 parquet 文件)的后端服务。
我们感兴趣的一些事情是在查询的 where 子句中添加额外的列如何影响查询运行时间。 例如,我们在一个 hive 分区中有 1000 万条记录(基于列 'date' 的分区)
下面的所有查询都返回相同的数量 - 1000 万。当我们在 where 子句中添加额外的列(因为 parquet 是柱状 fomar)时,所有这些查询会花费相同的时间还是会减少查询运行? 我尝试对此进行测试,但结果并不一致,因为我猜还有一些排队时间
select * from table where date='20200712'select * from table where date='20200712' and type='XXX'select * from table where date='20200712' and type='XXX' and subtype='YYY'
【问题讨论】:
-
“下面的所有查询都返回相同的数量 – 1000 万”是什么意思?听起来您是在说所有三个查询都将返回分区中的所有行,在这种情况下,我不明白
type和subtype过滤器的用途是什么?我想我在这里误解了你,你能澄清一下吗? -
并非所有时间过滤器都可以减少计数,对吧?假设我不知道查询时,日期为 20200712 的所有记录的类型为 XXX,子类型为 YYY。我有兴趣查找其他过滤器是否有任何影响,如果它们不减少减少的记录数量..对于镶木地板文件的配置单元查询,因为镶木地板是基于列的格式
标签: amazon-web-services hive parquet amazon-athena