分析没有实际执行的HiveQL查询的运行时特征



在没有(a)执行查询或(b)获取结果的情况下,我如何确定HiveQL查询的近似运行时?

HIVE命令EXPLAIN给出了查询的执行计划。只需在查询前添加关键字EXPLAIN并执行查询。

否则,您可以返回查询中记录的计数,而不是返回结果。

正如@visakh所提到的,"explain"给出了一个执行计划。然而,它是神秘的,并没有给出执行时间。您必须对explain的输出(可能非常丰富)进行大量的分析,以获得您正在寻找的信息。

在hive表上运行"analyze"有助于,但仍然不能使explain用户友好。"解释"是我的团队要求HortonWorks改进的一个功能。

然而,我不同意"计数"方法的评论:"计数"通常花费与运行查询本身一样多的时间。最后,必须提取所有数据,并执行各种过滤和聚合操作才能返回计数。不幸的是,Hive没有足够的智能在计数时丢弃"排序/排序"步骤-所以你最终基本上支付了查询的整个"价格"。

最新更新