2

我经常有一大块 HiveQL,我想对某些变量使用不同的设置多次运行它。

一个简单的例子是:

set mindate='2015-01-01 00:00:00'
set maxdate='2015-04-01 00:00:00'
select * from my_table where the_date between ${hiveconf:mindate} and ${hiveconf:maxdate}

然后通过hive -f myfile.sql > myout.log

后来,我想更改变量并重新运行。我还想记录每次运行时变量的值。

因此,我目前制作了 HiveQL 文件的副本,这些副本除了变量值之外是相同的。然而,这显然很容易出错,因为如果我需要更改实际的 HiveQL,那么我必须在每个文件中更改它。

理想情况下,我可以将所有设置存储为 JSON 文件(或其他文件),并让我的 HiveQL 文件完全动态。有没有办法做到这一点?

4

1 回答 1

1

在配置文件中设置变量并在 hql 脚本中加载此文件:

 source /path_to_your_config_file/config.hql; 
于 2016-09-03T17:35:58.213 回答