如何使用动态分区优化表上的Hive查询

时间:2017-02-09 05:18:06

标签: hadoop hive

我必须根据resultdate字段中的日期和小时对表格进行分区,格式为2/5/2013 9:24:00 AM

我正在使用带日期和时间的动态分区小时和做一个

insert overwrite table partition(date, hour)
{
select x,y,z, date , hour
}
from table 1.

我有大约150万条记录,大约需要4小时才能完成。这是正常的,优化的方法是什么?

3 个答案:

答案 0 :(得分:0)

增加群集大小,否则需要很长时间。

答案 1 :(得分:0)

这不正常,除非您在具有1个节点的虚拟机中工作:)。尝试设置此标志

set hive.optimize.sort.dynamic.partition=false;

我不确定为什么在某些发行版中默认设置为true。

答案 2 :(得分:0)

有很多种情况,

  • 检查是否可以使用TEZ引擎来延长执行时间。
  • 我们是否可以更改存储文件的方式,RC格式可能有所帮助。
  • 优化hive.exec.max.dynamic.partitions& hive.exec.max.dynamic.partitions为最佳值。
  • 增加群集也很好(如果可行)