我在Hive0.13中有一个大表-它每天有大约250GB的数据。因此,每小时大约有10 gb的数据。我有一个bi工具,它想每天或每小时访问这个表的数据,为此我需要测试bi工具将生成并在hive上运行的查询。
当bi用于昨天的每日数据时,其中一个查询如下所示:
select count(*)
from my_table
where
yyyy=year(date_sub(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP())),1))
and mm=month(date_sub(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP())),1))
and dd=day(date_sub(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP())),1))
;
我的表在我的\u表的配置单元中,而yyyy、mm和dd是我的\u表中的分区列。它已经以orc格式存储。
上面的查询运行了很长一段时间,当我看到explain扩展输出时,我清楚地看到它正在对我的\表进行全表扫描,而不考虑过滤条件。
我们怎样才能避免这个问题?
请告知。
再次注意:配置单元版本是0.13。我们正在升级。
谢谢,
素德哈萨特瓦
注:
这里提供的解决方案(为什么没有对这个查询进行分区消除?)不适用于我的情况,因为我使用的是配置单元0.13,而当前的\u date函数只在配置单元版本1之后才可用。
暂无答案!
目前还没有任何答案,快来回答吧!