반응형
문제상황
1. 서버 환경 (dev, qa, prd ) 에 따라 파라미터를 변경하여, 케틀동작시에 다른 값을 전달하고 싶은 상황
2. 웹서버의 profile을 구현하고 싶음
해결방안
우선 내가 직접적으로 해결한게 아니고, 기존 동료가 만들어둔걸로 해결
1. 쉘 명령어로, 해당 서버의 환경변수를 가져온다 ( 환경변수에 dev, qa, prd 존재 )
#!/bin/bash
# Check an environment
case "$(echo ${env} | tr "A-Z" "a-z")" in
prd)
echo "Set for RELEASE"
ENV="release"
;;
qa)
echo "Set for QA"
ENV="qa"
;;
dev)
echo "Set for DEV"
ENV="dev"
;;
*)
echo "Set for local"
ENV="local"
esac
# Generate a path of environment directory
ENV_PATH=${HOME}/vod/.env
# Set a global variables
echo "=== COMMON ENV VARIABLES ==="
cat ${ENV_PATH}/common.env
source ${ENV_PATH}/common.env
echo "=== ${ENV} ENV VARIABLES ==="
cat ${ENV_PATH}/${ENV}.env
source ${ENV_PATH}/${ENV}.env
if [[ ! (-e ${LOG_DIR} && -d ${LOG_DIR}) ]]; then
echo "${LOG_DIR} created."
mkdir ${LOG_DIR}
fi
echo "Setup done."
각 환경별 선언할 상수값 파일을 만듬
그리고 실행시에 케틀의 파라미터를 넘겨줌
${APP_DIR}/kitchen.sh -file:${KETTLE_FILE} \
-param:IMG_URL=${IMG_URL}
케틀에서 파라미터를 설정
job에 설정후 각 transformation 에 파라미터를 전달 가능
이후 쿼리 조회시에
스크립트의 변수 받기로하면, 이렇게 쓸수 있음
${parameter___}
원래는 Set and Get Variables 이걸 이용해서 가져오는데, 가져오는 방식은 여러가지가 있는듯
- 추가
job에서 생성한 데이터베이스 연결은 아래 트랜스포메이션까지 연동된다.
이렇게 하면 데이터베이스연결을 한번에 관리할 수 있다.
pentaho kettle 문서
1차적으로 이 문서에서 검색 해서 찾아보는게 결국 도움되었다.
참고 동영상
https://www.youtube.com/watch?v=19T2VY4spGE
반응형
댓글