반응형
💡 oozie에서 workflow 실행 시,
날짜를 argument로 입력 받아 다음 task(hive query)에서 where조건의 값으로 사용해본다.
1. 날짜를 입력 받을 shell script를 작성한다.
#!/bin/bash
if [ -n "$1" ]; then
echo today=$1
else
getdt=$(date +%Y-%m-%d)
echo today=$getdt
fi
- 위와 같은 형식으로 echo를 찍어준다. today=${date}
2. hadoop 명령어를 이용해 작성한 shell script를 hadoop에 업로드한다
$ hadoop fs -copyFromLocal check_date.sh /user/hue/oozie/script/ws_test_date_return
3. workflow 에서 saved shell command 를 추가한다
3.1 테스트
argument 입력하지 않은 경우 오늘 날짜 return
argument 입력 시 입력 받은 날짜 return
4. workflow에 hive query를 등록한다.
변수는 hivevar:input 으로 지정해 줘야 한다.
로그에서 확인해 볼 수 있듯이, hivevar에 input으로 들어가기 때문에..
SELECT
`date`, count(1)
FROM
table
WHERE
`date` = "${hivevar:input}"
GROUP BY
`date`
5. parameter 등록
workflow 화면에서 [...] 버튼을 누르고 Workspace 화면으로 이동한다.
workflow.xml 파일을 연다.
먼저 실행한 shell script action의 today 라는 값을 input parameter로 전달한다.
UI 화면에서는 아래와 같이 작업해준다.
직접 입력
input=${wf:actionData(”shell-id”)[”today”]}
테스트 결과
반응형
'Study' 카테고리의 다른 글
hive query 에서 hivevar 사용하기 (0) | 2023.04.07 |
---|---|
oozie workflow에서, argument를 입력 받은 shell script의 결과를 다음 task(Sub workflow)에서 변수로 사용하기 (0) | 2023.04.05 |
Virtualenv(venv) 로 python 다른 버젼 가상환경 설정 (0) | 2023.01.11 |
KOSIS(국가통계포털) 대용량통계자료 openAPI 사용 (0) | 2022.12.02 |
KOSIS(국가통계포털) 통계자료 openAPI 사용 (0) | 2022.11.29 |