我经常有一大块 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 文件完全动态。有没有办法做到这一点?