decision
Definition
decision ๋
ธ๋์ ์
๋ ฅํ๋ ์กฐ๊ฑด์ ๋ฐ๋ผ N๊ฐ์ Node๋ก ์์
flow๋ฅผ ๋ถ๊ธฐ์ํจ๋ค. ์ ํ ๋
ธ๋์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์คํ๋ ํํ ๋
ธ๋๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ ์ ํํ๋ค.
์ข์ธก [Flow๊ตฌ์ฑ]๋
ธ๋ ์ค [decision]๋
ธ๋๋ฅผ drag & drop ํ ํ Property ํญ๋ชฉ์ ์
๋ ฅํ๋ค.
Set
[setting], [scheduler], [parameter] ์ค์ ์ [์ํฌํ๋ก์ฐ ์์ฑ] > [์ค์ ]์ ์ฐธ๊ณ ํ๋ค.
property
[Node Description] ์์ฑ ์ค์ธ ๋ ธ๋๋ช ์ ๋ ฅ
- switch : ์กฐ๊ฑด๋ฌธ๊ณผ ์ด๋ํ action์ ์
๋ ฅํ๋ค.
- case : ์กฐ๊ฑด ์ ๋ ฅ
- to : ์กฐ๊ฑด์ ๋ฐ๋ผ ์ํํ ํ์ ๋ ธ๋ ์ ํ(์ฝค๋ณด๋ฐ์ค)
- default : ๊ธฐ๋ณธ์ผ๋ก ์ด๋ํ action
- to : ๋ ธ๋ ์ ํ
Example
HDFS์ ํน์ ํ์ผ ์ ์ฅ์ฌ๋ถ๋ฅผ ์ฒดํฌํ์ฌ ํ์ผ์ด ์์ ๊ฒฝ์ฐ "fileexist_yes", ์์ ๊ฒฝ์ฐ "no_files"๋ผ๋ 0byte ํ์ผ์ ์์ฑํ๋ค. ETL ์ํ๊ฒฐ๊ณผ๊ฐ ์ ์์ ์ผ๋ก ์์ฑ๋์๋์ง ํ์ธํ๋ ๊ฒ์ฆ๋ก์ง ๋ฑ์ผ๋ก ์์ฉํ ์ ์๋ค.
- kbtest ํด๋ฌ์คํฐ์ ๊ฒ์ฌ๋์ ํ์ผ์ ์ ์ฌํ๋ค(/tmp/test-ods/AIR_HOUR_2019_2.csv).
- [decision] ๋ฐ [fs] ๋ ธ๋๋ฅผ ์์ฑํ๋ค.
- [decision] ๋ ธ๋๋ฅผ ์๋์ ๊ฐ์ด ์ค์ ํ๋ค.
- ๊ฒฝ๋ก์ ํ์ผ์ด ์์ ๊ฒฝ์ฐ [fs_fileexist]๋ก ์ด๋
- case : ${fs:exists(("/tmp/test-ods/AIR_HOUR_2019_2.csv")) == "true"}
- to : fs_fileexist
- ๊ฒฝ๋ก์ ํ์ผ์ด ์์ ๊ฒฝ์ฐ [fs_nofiles]๋ก ์ด๋
- case : ${fs:exists(("/tmp/test-ods/AIR_HOUR_2019_2.csv")) == "false"}
- to : fs_nofiles
[Note] : oozie el function
case ์ ๋ ฅ ๊ตฌ๋ฌธ์ oozie el function ์ผ๋ก ์ธ๋ถ ์ฌํญ์ ์๋๋ฅผ ์ฐธ๊ณ ํ๋ค.
https://oozie.apache.org/docs/4.3.0/WorkflowFunctionalSpec.html#a4.2.2_Basic_EL_Functions
- [fs]๋ ธ๋(fs_fileexist, fs_nofiles)๋ฅผ ์๋์ ๊ฐ์ด ์ค์ ํ๋ค.
- fs_fileexist : property "5.touchz" > HDFS File Browser์์ "hdfs://kbtest-accu-hdfs-nn.suka:9000/tmp/test-ods"๊ฒฝ๋ก ์ค์ ํ "/fileexist.yes" ์ ๋ ฅ
- fs_nofiles : property "5.touchz" > HDFS File Browser์์ "hdfs://kbtest-accu-hdfs-nn.suka:9000/tmp/test-ods"๊ฒฝ๋ก ์ค์ ํ "/no_files" ์ ๋ ฅ
- ์คํ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค.
๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ ์ง์ ํ ๊ฒฝ๋ก์ fileexist.yes ์์ฑ
๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ ์ง์ ํ ๊ฒฝ๋ก์ no_files ์์ฑ