Profiling 配置单元查询执行,打印输出用于分析

Profiling 配置单元查询执行,打印输出用于分析,profiling,hive,Profiling,Hive,我正在测试配置单元中一些查询的性能,因此应该避免将查询结果打印到标准输出或文件。在oracle sql plus中,我可以 oracle> SET autotrace traceonly; 或 然后 在配置单元中是否有等效的语句?您可以使用配置单元命令行实用程序的--silent或-S选项来删除配置单元日志消息,但这仍然会在stdout上打印查询的输出。为了避免这种情况,您可以重定向到/dev/null,例如: $ hive -S -e "SELECT * FROM mytable" &

我正在测试配置单元中一些查询的性能,因此应该避免将查询结果打印到标准输出或文件。在oracle sql plus中,我可以

oracle> SET autotrace traceonly;

然后


在配置单元中是否有等效的语句?

您可以使用配置单元命令行实用程序的
--silent
-S
选项来删除配置单元日志消息,但这仍然会在stdout上打印查询的输出。为了避免这种情况,您可以重定向到
/dev/null
,例如:

$ hive -S -e "SELECT * FROM mytable" > /dev/null

-S
也将停止打印配置单元状态。我会避免使用“-S”来跟踪蜂巢的状态。重定向到
/dev/null
似乎是我所需要的,但我想知道是否有任何开销。比较打印到标准输出、重定向到文件和/dev/null的选择,它们的额外(查询本身除外)开销是什么。@因果关系
/dev/null
与常规文件类似,只是它会丢弃写入它的所有内容,但它仍然作为常规文件运行,因此没有开销。与打印到stdout相比,我认为影响很小,因为它只是一个标准的unix重定向。当您处理像这里这样不需要的输出流时,使用/dev/null是最好的选择。基本上,我想要的是oracle sqlplus“
set autotrace
,因为db引擎本身将禁用打印查询结果,而
/dev/null
仍将“打印”结果。@因果关系我不知道有任何其他方法可以使输出静音,而不是使用重定向,在做了一点研究之后,至少现在似乎没有类似的情况,但我可能错了。
oracle> some query;
oracle> set autotrace trace off;
$ hive -S -e "SELECT * FROM mytable" > /dev/null