可以从文件加载 hiveconf 变量吗? (与 HiveQL 文件分开)
Can hiveconf variables be loaded from a file? (Separate from the HiveQL file)
我经常有一大块 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 文件完全动态。有什么办法吗?
在配置文件中设置您的变量并在您的 hql 脚本中加载此文件:
source /path_to_your_config_file/config.hql;
我经常有一大块 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 文件完全动态。有什么办法吗?
在配置文件中设置您的变量并在您的 hql 脚本中加载此文件:
source /path_to_your_config_file/config.hql;