์ง๋ฌธ1)
(p211) ์์๋ ์คํธ๋ฆฌ๋ฐ ์ฒ๋ฆฌ์ ๋ฐฐ์น์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ์ํด์, ๋ฐ์ดํฐ๋ฅผ ๋ฉ์ธ์ง ๋ธ๋ก์ปค๋ก ๋จผ์ ๋ฃ๋ ๊ฒ์ ๋ณผ์ ์๋๋ฐ์, ์ด์ ๊ด๋ จํด์ Kafka๋ฅผ ๋ง์ด ์ฐ๋๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. ๊ทผ๋ฐ, ์ฑ ์์๋ ์คํธ๋ฆฌ๋ฐ๊ด๋ จ๋ ๋ด์ฉ์ผ๋ก Spark Streaming์ ์์๋ก ๋ค๊ณ ์๋๋ผ๊ตฌ์. ์ค์ ๋ก ํ์ ์์ ๋ฉ์ธ์ง ์์คํ ์ ์ํด Spark Streaming์ ์ฐ์๋ ๋ถ์ด ๊ณ์ ์ง, ๋์ ํ์ค๋ ์ด๋ ํ ์ ์ ๊ณ ๋ฏผํ์ จ๋์ง ๊ถ๊ธํฉ๋๋ค!
๋ต๋ณ)
์ค์ ๋ก ์นดํ์นด์ ์ฐ๊ฒฐํ๋ ํ์ดํ๋ผ์ธ ๊ตฌ์ถํ๋ ค๊ณ ํ๋ ์ค...์คํธ๋ฆฌ๋ฐ์ด๋ ์นดํ์นด๋ ๋๊ฐ๋๊ณ ๋น๊ตํ๊ธฐ์ ๋ชฉ์ ์ด ๋ค๋ฅด๋ค. ์นดํ์นด๋ก ๋ฉ์์ง ๋ธ๋ก์ปค๋ก ์๊ณ ์ปจ์๋จธ๋ก ๋ก๊ฒจ๋ฐ์์ ์คํํฌ ์คํธ๋ฆฌ๋ฐ์ด ๋ฐ์ดํฐ ๊ฐ๊ณต์ฒ๋ฆฌํ๊ณ ๋ฉ์์ง ๋ธ๋ก์ปค๋ก ๋๊ธฐ๋ ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ค์ด ๋ง๋ค. ๊ทธ๋์ ๋๊ฐ๋ฅผ ๋๊ณ ๋น๊ตํ๊ธฐ์ ์ ๋งคํ๋ค.
์์ฆ์ ์คํํฌ ์คํธ๋ฆฌ๋ฐ ๋์ , ํ๋งํฌ๋ ๋ง์ด ์ฌ์ฉํ๋ค. ์ข ๋ ์ค์๊ฐ ์ฒ๋ฆฌ์ ๋ ์ ํฉํ ๋๋์ด๋ผ๋ ์์ผ๋ก ๋ง์์ ๋ง์ด ๋ค์ ๊ฒ ๊ฐ๋ค.
Kafka : ๋ฐ์ดํฐ์ ์ ์ค์ ๋ง์ ๋ฒํผ๊ฐ ํ์ํ ๋ ์ ์ฉ Spark streaming : ๋ฐ์ดํฐ ์ ์ค๋ณด๋ค๋ ๊ณ ์์ผ๋ก ์คํํฌ์์ ์ฒ๋ฆฌํ๊ณ ์ถ์๋ ์ฐ๋ ๊ฒ ๊ฐ์์ ์กฐ๊ฑด์ ์ ๋๊ฐ์ง๋ก ?
์ง๋ฌธ2 - ๋ด ์ง๋ฌธ)
1. ๋ฐฐ์น ์ฒ๋ฆฌ ํน์ ์คํธ๋ฆผ ์ฒ๋ฆฌ ์, ๊ธฐ์กด์ ์คํํ๊ณ ์๋ task์ ๋ณต๊ตฌ๋ฅผ ์ํด ๋ค์ ์งํํ๋(์ค๋ฅ ๋ฌ๋) task๋ฅผ ๋์์(๊ฐ์ ์๊ฐ์) ์ฒ๋ฆฌํ ์ ์๋์?
2. ๋ชจ๋ task๋ ์ผ๋จ ํ์ ์ ์ฅ๋์ด ๋ณ๋ ฌ ์ฒ๋ฆฌ๋๋ค๊ณ ํ๋๋ฐ(p.196), ์ค๋ฅ๋ฅผ ๋ณต๊ตฌํ๊ธฐ ์ํ task๋ ์ ์ task๋ค๊ณผ ๊ฐ์ด ์๋ ํ์ ํฌํจ๋์ด ๊ฐ์ด ์คํ๋๋์?
3. task๋ ์ง์ ๋ ์๊ฐ์ ๋ฐ๋ผ ๋ชจ์์ ์ฒ๋ฆฌ๋๋ค๊ณ ํ๋๋ฐ(197p), ์ค๋ฅ๋ฅผ ๋ณต๊ตฌํ๊ธฐ ์ํ task๋ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฅ๋์ด ์ ์ task๋ค๊ณผ ๊ฐ์ด ์ฒ๋ฆฌ๋์ด ์คํ๋๋์ง ๊ถ๊ธํฉ๋๋ค.
→ ํ ์ง๋ฌธ์ผ๋ก ์ ๋ฆฌํด ๋ณธ๋ค๋ฉด, ์ค๋ฅ๋ก ์ ์ฅ๋ task๋ ์ ์ task๋ค๊ณผ ๋ฐ๋ก ์ฒ๋ฆฌ๋๋์ง ์๋๋ฉด ํจ๊ป ์ฒ๋ฆฌ๋๋์ง์ ๋ํ ์ง๋ฌธ์ผ๋ก ์ ๋ฆฌํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ข ๋ ์๊ฐํด ๋ดค๋๋ฐ, ์ค๋ฅ๋ก ์ ์ฅ๋ task๋ ์ฌ์คํ task๊ธฐ ๋๋ฌธ์ ์ ์ task๋ค๊ณผ ๊ฐ์ด ๋๊ฐ์ด ์ฒ๋ฆฌํ ๊ฒ ๊ฐ์ ๋ฐ ์ ๊ฐ ์๊ฐํ ๊ฒ ๋ง์๊น์...?
๋ต๋ณ)
ํํฐ์ ์ ๋๋ ์, A๋๋๊ณ B์งํํ๊ณ ํฐ ํ๋ก ๋ดค์๋ ์ค๋ฅ๋ ์ ์ ํ์คํฌ ๊ฐ์ด์๋ค. ์ค๋ฅ๋ ์ ์ ํ์คํฌ ๊ฐ์ด ํ๋์ ํ์ ๋ค์ด๊ฐ์๋ค. +) ํ ์์์ ํ์คํฌ๋ณ๋ก a,b์์คํ ์ด๊ตฌ๋ถ์ด ๋์ด์ง๊ณ , ๊ฒฝ์ํ ์ผ์ด ์๋ค.
1, 2, 3 ์ผ์ด์ค๋ ์ ์ฑ (ํ์ฌ ๋ฐ ํ์ฅ)์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒ ๊ฐ์์
(์ฒซ๋ฒ์จฐ ํ) → ์ ์์ฒ๋ฆฌ ์ค์ผ์ด → ๋น์ ์ (๋๋ฒ์งธ ํ)์ ๋ฃ๊ธฐ ์ ๋๋ก ํด๊ฒฐํ๊ธฐ๋ ํ๋ค์ ์ฌ ์คํํ ๋๋ ์ ์ ์ฒ๋ฆฌ์ฒ๋ผ ์งํํด์ผ ํ ๋ฏํด์ ordered ์ผ์ด ์๋๋ฉด
์ง๋ฌธ3)
1. airflow๋ฅผ ํ์ฌ์์ ๋จ์ ๋ฐ์ดํฐ์์ง๋์ด๊ฐ ์ํฌํ๋ก์ฐ๋ก ์ฌ์ฉํ๊ณ ์๋์? ๋ฐฑ์๋์์๋ ๋ฐฐ์น์ก์ ๊ด๋ฆฌํ๋ ์ฉ๋๋ก ์ฐ๊ณ ์๋๊ณณ๋ ์๋คํด์, ์ด๋ป๊ฒ ํ์ฉํ๊ณ ์๋์ง ๊ถ๊ธ
airflow ํ์คํฌ ๊ตฌํ์ ๋ ๊ถ๊ธํ๋๋ฐ์ ๋ฌผ๋ก ๊ฐ๋ฐ์์ ๋ฐ๋ผ ๋ค๋ฅด๊ธด ํ๊ฒ ์ง๋ง ์ด๋ค์์ผ๋ก ๊ฐ๋ฐ์ ํ๊ณ ์๋์ง ๊ถ๊ธํด์์~
2. airflow์์ ๋ฉฑ๋ฑ์ฑ์ ์ํด ํธ๋์ญ์ ์ฟผ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ๊ฐ๋ฐํ๊ณ ์๋์ง ๊ถ๊ธํจ ์ฃผ๋ ๋ณดํต .sql ํ์ผ์์ delete-insert๋ upsert๋ฅผ ์ฌ์ฉํ๋๋ฐ ํ์ด์ฌํ์ผ์ ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅํด์ begin end๋ฅผ ์จ์ ๋ ๋ง์ด ์ฐ๋์ง ๊ถ๊ธ
3. csvํ์ผ์ ๋ถ๋ฌ์ฌ๋๋ ์ฃผ๋กrequ est ํจํค์ง๋ฅผ ์จ์ url๋ก ๋ถ๋ฌ์ค๋์ง csv ํจํค์ง๋ฅผ ์จ์ ํ์ผ๋ก ๋ถ๋ฌ์ค๋์ง ๊ถ๊ธ
๋ต๋ณ)
1. ๊ฐ๋ฐ์ ๋ง๋ค ์ฌ์ฉ์ฉ๋๊ฐ ๋ค๋ฅด๋ค. ํ๋ก ํธ ๊ธฐ๋ฅ์ผ๋ก๋ ์ฌ์ฉํ๊ธฐ๋ ํ๊ณ ํ์ฉ๋ถ์ผ๊ฐ ๋๋ฌด ๋๋ค.์๊ฐ๋ณด๋ค ์์ดํ๋ก์ฐ๋ฅผ ๋ฐฐ์น์ก ์ค์ผ์ฅด๋ฌ ๊ด๋ฆฌ๋ก ๋ง์ด ์ฌ์ฉํ๋ ๋ฏํ๋ค. ๊ฐ๋ฒผ์ด ์์ ์ธ ๊ฒฝ์ฐ์ ์ ํ๋ฆฐ์์ ์ ๊ณตํ๋ ํฌ๋ก ํญ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ๋ ํฉ๋๋ค.
์์ดํ๋ก์ฐ์ ๋ ๊ฑฐ์๊ฐ ๋ง๋ค๋ณด๋, dagํ์์ผ๋ก ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋๋ฐ ์์ ํ ์์ด ๋ง์์ ํฌ๊ธฐํ๋ค. ์ปจํ ์ด๋๋ฅผ ๋ณํฉํ๋ ๊ฑธ๋กํด์ ์์ ํ๊ธฐ๋ก ํ๋ค. ๋ ๊ฑฐ์๊ฐ ์๋ ์ผ์ด์ค๊ฐ์ ๊ฒฝ์ฐ์ ์์ดํ๋ก์ฐ ์ฌ์ฉ์ ์กฐ๊ธ ์ ์ฝ์ด ์๋ ๊ฒ ๊ฐ๋ค.
2. ํ์ด๋ธ ํ ์ด๋ธ ํํฐ์ ๋์ ํตํด ๋ ์ง๋ณ๋ก ๋ฐ๋ก ๋ณด๊ดํ๋๋ฐ, ํํฐ์ ์ค๋ฒ๋ผ์ดํธ๋ผ๋ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. ํ์ผ์์ฒด๋ฅผ ์ง์ฐ๊ณ ๋ค์ ํ์ผ์ ๋ฎ์ด์ฐ๋ ๋ฐฉ์์ ์ ํธํ๋ค.
3.csvํ์ผ์ ๋ถ๋ฌ์ฌ ๋ ์ฃผ๋ก ์ด๋ค ์คํฌ์ ์ฌ์ฉํ๋์ง?
→ ์์ค๊ฐ ์ด๋์ ์๋๋์ ๋ฐ๋ผ ์ข ๋ค๋ฅธ ๊ฒ ๊ฐ๋ค. ์๋ฅผ ๋ค์ด, ๊ตฌ๊ธ ๋๋ผ์ด๋ธ๋ฉด ๋ฆฌํ์คํธ ์ฐ๊ฑฐ๋ ํ์ผ ๊ทธ๋๋ก๋ฉด ๊ทธ๋ฅ csv๋ก ์ฝ์ด์ค๊ณ ์ ์ฒ๋ฆฌ ํด์ ๊ฐ๊ณตํด์ ์ฐ๋ ๊ฒ ๊ฐ๋ค.
→ ๋ก์ปฌ ์์์๋ to_csv, ์ธ๋ถ ์์ค๋ก๋ถํฐ๋ url์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ๋ค.
1. airflow ๊ตฌํ์ ์ ๋ง ํ์ฅ์ ๋ฐ๋ผ ๋ค ๋ฌ๋ผ์ ๋ญ๋ผ๊ณ ๋ง์๋๋ฆฌ๊ธฐ๋ ์ด๋ ต๋ค์. ๋ณดํต์ ๋ฐ์ดํฐ์ ์์ง ์ดํ ์ํ์ค ์ฒ๋ฆฌ(๋๋์ ๋ฐ์ดํฐ๋ ๋ฉํฐ๋ ธ๋์์ ์ํ์ค ์ฒ๋ฆฌ)์ ๋ง์ด ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ฌ์ค DAG๋ฅผ ์๋ง๋ค๊ณ ๊ด๋ฆฌํ๋๊ฒ ํค์ธ ํ๋ซํผ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค
2. ์ ๋ ์ฌ์ค python์ ์ ํธํ๋ ์ ์ฅ์์๋ ํ์๋ฅผ ์ฐ๋๋ฐ, sql ์ ํธํ์๋ ๋ถ๋ค๋ ๋ง์ต๋๋ค
3. csv๋ฅผ request๋ก ๋ฐ์์ ์ฒ๋ฆฌํ์ ๋ค๋๊ฑด์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค์;; request๋ ๋ณดํต RestAPI server์ http/https request๋ฅผ ์ด์ฉํด์ response๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํฉ๋๋ค
'์คํฐ๋ > [๋ฐ์ ๋น ์ง๊ธฐ ์คํฐ๋]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋น ์ง๊ธฐ ์คํฐ๋ 4์ฃผ์ฐจ ์ ๋ฆฌ (0) | 2022.10.10 |
---|---|
๋น ์ง๊ธฐ ์คํฐ๋ 3์ฃผ์ฐจ ์ ๋ฆฌ (1) | 2022.09.29 |
๋น ์ง๊ธฐ ์คํฐ๋ 2์ฃผ์ฐจ ์ ๋ฆฌ (2) | 2022.09.24 |
๋น ์ง๊ธฐ ์คํฐ๋ 1์ฃผ์ฐจ ์ ๋ฆฌ (0) | 2022.09.22 |