복붙노트

[HADOOP] hiveconf 변수를 파일에서로드 할 수 있습니까? (HiveQL 파일과 분리)

HADOOP

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}

그런 다음 하이브 -f myfile.sql> myout.log를 통해 실행됩니다.

나중에 변수를 변경하고 다시 실행하고 싶습니다. 나는 또한 내가 실행될 때마다 변수가 갖는 가치에 대한 기록을 원한다.

그래서 저는 현재 변수 값을 제외하고는 같은 HiveQL 파일의 복사본을 만듭니다. 그러나 실제 HiveQL을 변경해야 할 경우 모든 파일에서 변경해야하기 때문에 분명히 오류가 발생하기 쉽습니다.

이상적으로는 모든 설정을 JSON 파일 (또는 무엇이든)에 저장할 수 있고 내 HiveQL 파일을 완전히 동적으로 만들 수 있습니다. 이 작업을 수행 할 수있는 방법이 있습니까?

해결법

  1. ==============================

    1.설정 파일에 변수를 설정하고 hql 스크립트에이 파일을로드하십시오 :

    설정 파일에 변수를 설정하고 hql 스크립트에이 파일을로드하십시오 :

     source /path_to_your_config_file/config.hql; 
    
  2. from https://stackoverflow.com/questions/39301561/can-hiveconf-variables-be-loaded-from-a-file-separate-from-the-hiveql-file by cc-by-sa and MIT license