fork
Definition
์์
flow๋ฅผ ๋ถ๊ธฐ์์ผ ๋
ธ๋๋ค์ ๋
๋ฆฝ๋ flow์์ ์ํํ๋ค.
์ข์ธก [Flow๊ตฌ์ฑ]๋
ธ๋ ์ค [fork]๋
ธ๋๋ฅผ drag & drop ํ๋ค. ๋์์ ์ํํ ์์
์ ์ ์ ํ ์ ํํ ํ ์ํฌํ๋ก์ฐ๋ฅผ ๊ตฌ์ฑํ๋๋ฐ, ์ด๋ ๊ฒ ๋ถ๊ธฐ๋ ์์
์ join์ผ๋ก ํฉ์ณ์ผ ํ๋ค.
fork-join์ผ๋ก ๊ตฌ์ฑ๋๋ ์ํฌํ๋ก์ฐ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ถ๊ธฐ๋ ๋ชจ๋ ๋ ธ๋๊ฐ ์ข ๋ฃํด์ผ ์ํฌํ๋ก์ฐ๊ฐ succeed ๋จ(์ฆ, ๋ถ๊ธฐ๋ ๋ ธ๋ ์ค ์ข ๋ฃ๋ ์์ ์ด ์์ด๋ ์ ์ฒด ๋ ธ๋๊ฐ ์ข ๋ฃํ ๋๊น์ง ๋๊ธฐ)
- ๋ถ๊ธฐ ๋ ธ๋ ์ค ํ๋๋ผ๋ ์คํจํ ๊ฒฝ์ฐ ์ ์ฒด ์ํฌํ๋ก์ฐ๊ฐ ์คํจ
Set
[setting], [scheduler], [parameter] ์ค์ ์ [์ํฌํ๋ก์ฐ ์์ฑ] > [์ค์ ]์ ์ฐธ๊ณ ํ๋ค.
property
[Node Description] ์์ฑ ์ค์ธ ๋ ธ๋๋ช ์ ๋ ฅ
Example
์์ธํน๋ณ์ ๋๊ธฐ์ค์ผ ์ธก์ ์ ๋ณด(์ถ์ฒ : ๊ณต๊ณต๋ฐ์ดํฐ ํฌํธ, 2019๋ ๊ธฐ์ค) ์ค ๋ฏธ์ธ๋จผ์ง(PM10)์ ์ด๋ฏธ์ธ๋จผ์ง(PM2.5)์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ํ ์ด๋ธ๋ก ์์ฑํ๋ค.
[Note] ์์ธํน๋ณ์ ๋๊ธฐ์ค์ผ ์ธก์ ์ ๋ณด ๋ฐ์ดํฐ
์์ธํน๋ณ์ ๋ณด๊ฑดํ๊ฒฝ์ฐ๊ตฌ์ ๋๊ธฐ์ค์ผ์ธก์ ๋ง์์คํ ์์ ์ ๊ณตํ๋ ๋๊ธฐ์ค์ผ ์ธก์ ์ ๋ณด
์ถ์ฒ : https://www.data.go.kr (๊ณต๊ณต ๋ฐ์ดํฐ ํฌํธ)
HDFS/Hive ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์์๋ฐ์ดํฐ ์ ์ฌ ๋ฐ ํ ์ด๋ธ ์์ฑ
[executeHive]๋ ธ๋(๋ ธ๋๋ช : executeHive_sum)๋ก ํต๊ณ์ฑ ํ ์ด๋ธ ์์ฑ(์ ์ฒด ๋ฐ์ดํฐ๋์ ์ธก์ ์๋ณ๋ก ๋ถ๋ฆฌ)
fork ๋ ธ๋ ์ฐ๊ฒฐ ๋ฐ [executeHive] ๋ ธ๋๋ฅผ ๋ณ๋ ฌ๋ก ์ฐ๊ฒฐํ์ฌ ๋ฏธ์ธ๋จผ์ง(PM10), ์ด๋ฏธ์ธ๋จผ์ง(PM25) ๋ฐ์ดํฐ๋ง ์ถ์ถํ ๋ณ๋ ํ ์ด๋ธ ์์ฑ
- [executeHive_pm10] create table air_pollution_pm10 as select * from air_pollution where air_pollution.metric_cd = '8'
- [executeHive_pm25] create table air_pollution_pm25 as select * from air_pollution where air_pollution.metric_cd = '9'
[Note] air_pollution ํ ์ด๋ธ์ ์ธก์ ํญ๋ชฉ ์ฝ๋(metric_cd)๋ ์๋์ ๊ฐ์
์ฝ๋ ์ค๋ช 1 SO2 (์ํฉ์ฐ๊ฐ์ค) 3 NO2 (์ด์ฐํ์ง์) 5 CO (์ผ์ฐํํ์) 6 O3 (์ค์กด) 8 PM10 (๋ฏธ์ธ๋จผ์ง:Particulate Matter) 9 PM2.5 (์ด๋ฏธ์ธ๋จผ์ง)
- [fork]๋ ธ๋ ์ฌ์ฉํ ๊ฒฝ์ฐ [join]๋ ธ๋๋ฅผ ์ฌ์ฉํด์ ์ข ๋ฃํ๋ค.
์ํฌํ๋ก์ฐ ์คํ ํ ์๋ก์ด ํ ์ด๋ธ์ด ์์ฑ๋๋ค.
[Note] Control Node
[Flow๊ตฌ์ฑ] ๋ ธ๋ ์ค decision, fork, join Node๋ฅผ Control Node๋ผ๊ณ ํ๋ค.
์์ ์ ์ํํ๊ธฐ ๋ณด๋ค ์ํฌํ๋ก์ฐ๋ฅผ Control ํ๋ ์ฉ๋๋ก ์ฌ์ฉํ๋ค.