개발ETC/pentaho pdi kettle
[kettle pentaho] 환경변수별 파라미터 전달, 파라미터로 동적인 값 설정, 비교 validator
벨포트조던
2023. 3. 31. 18:11
반응형
문제상황
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"
;;
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 이걸 이용해서 가져오는데, 가져오는 방식은 여러가지가 있는듯
참고 동영상
https://www.youtube.com/watch?v=19T2VY4spGE
-- 추가
나는 지금까지 비교를 filter row 로만 사용했었는데,
validator Step 이 더 기능이 많은것 같다.
이것도 사용해보자
https://www.youtube.com/watch?v=JvxOrtcWhSs&t=5s
반응형