【发布时间】:2016-03-03 20:43:54
【问题描述】:
我在 Hive 上有几个表,我的查询试图检索过去 x 天的数据。当我使用直接日期时,Hive 正在修剪分区,但在使用公式时正在执行全表扫描。
select *
from f_event
where date_key > 20160101;
scanned partitions..
s3://...key=20160102 [f]
s3://...key=20160103 [f]
s3://...key=20160104 [f]
如果我使用公式来获取过去 4 周的数据
Select count(*)
From f_event f
Where date_key > from_unixtime(unix_timestamp()-2*7*60*60*24, 'yyyyMMdd')
这是扫描表中的所有分区。
环境:Hadoop 2.6.0、EMR、S3 上的 Hive、Hive 1.0.0
【问题讨论】: