Можно ли загрузить переменные hiveconf из файла? (Отдельно от файла HiveQL)


У меня часто есть большой блок 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 был бы полностью динамичным. Есть ли способ сделать это?

1 2

1 ответ:

Задайте переменные в файле конфигурации и загрузите этот файл в свой сценарий hql:

 source /path_to_your_config_file/config.hql;