๋ชฉ๋ก๋ฐ์ดํฐ (40)
๐ฅ
https://www.youtube.com/watch?v=7y9gNwqLNtU์ ๋์์ ์ ๋ฆฌํจ hive -> iceberg๋ก ๋ณ๊ฒฝํ ์ฌ๋ก Line ๋ฐ์ดํฐ ํ๋ซํผ์ ๊ธฐ์กด ๋ฐฉ์๋ฐ์ดํฐ ํ๋ซํผ์ ํน์ง๋ฐ์ดํฐ์ ํฌ๊ธฐ/์ข ๋ฅ/ํ์ฉ ๊ท๋ชจ๊ฐ ํฌ๋ค๋จธ์ ์: 5000 ๋+๋ฐ์ดํฐ ํฌ๊ธฐ: 290 PB+ํ์ด๋ธ ํ ์ด๋ธ ์: 4๋ง๊ฐ (๋ชจ๋ external table)log ingestion rate: ์ด๋น 17.5M+ํ๋ฃจ์ ๊ตฌ๋๋๋ job ์: 15๋ง+ํ๋ซํผ ์ฌ์ฉ์ ์: 700+ Query ProcessingSQL ๊ธฐ๋ฐ, spark, hive, trino, flink๋ฅผ ๋ถ์ฐ sql ์ฟผ๋ฆฌ ์์ง์ผ๋ก ์ฌ์ฉ๋ฐ์ดํฐํ์ผ์ด ์ด๋์ ์๋์ง, ์ด๋ป๊ฒ ์ฝ๊ณ ์ธ์์๋์ง์ ๋ํ ์ ๋ณด ํ์์ฟผ๋ฆฌ์ ๋ํ ํ ์ด๋ธ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ์ง๋ ํ ์ด๋ธ ํฌ๋งท์ ์ํด ์ ์๋จ *..
์คํธ๋ฆฌ๋ฐ ์ฟผ๋ฆฌ์์์ ์ง๊ณ๋ ๋ณดํต ํ์ฌ์๊ฐ๋ถํฐ T์๊ฐ ์ ๊น์ง ์ง๊ณ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํ๋ค. ๊ทธ๋ฐ๋ฐ ์๋ฅผ๋ค์ด ์ง๋ 15์ด ๋์์ ์ง๊ณ ๋ฐ์ดํฐ๋ผ๊ณ ํ๋ฉด 15์ด์ ์๊ฐ์ ์ธ์ ๋ถํฐ ์ธ์ ๊น์ง์ธ์ง ์๋ฌธ์ด ์๊ธธ ์ ์๋ค. ์คํธ๋ฆผ ์ฒ๋ฆฌ์์ ๋ฐ๋ผ๋ณด๋ ์๊ฐ์ ๋ค์ํ ๊ธฐ์ค์ด ์๋ค. ์คํธ๋ฆผ ์ฒ๋ฆฌ์์์ ์๊ฐ ๊ด์ ์ด๋ฒคํธ ์๊ฐ (event time) ๋ฐ์ดํฐ ์์กด์ ์ธ ํ์์คํ ํ๋ก, ๋ฐ์ดํฐ ๋ด์ ์กด์ฌํ๋ ๋ฐ์ดํฐ ๋ฐ์ ์๊ฐ์ด๋ค. ๋ฐ์ดํฐ ์์กด์ ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ ํ ๊ฐ์ ํ์์คํฌํ๋ก ๋ฃ์ ๊ฒ์ธ์ง๋ ๋ค๋ฅด๊ฒ ์ง๋ง ์ฃผ๋ก ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์๊ฐ์ ๋ง์ด ์ฌ์ฉํ๋ค. windowing ์ ์ฌ์ฉํ ์ ์๋ ์์ฃผ ์ ์ ํ ์๊ฐ ์ค ํ๋์ด๋ค. ์์ง ์๊ฐ (ingestion time) ์คํธ๋ฆผ ์ฒ๋ฆฌ ์์ง์ ๋ฐ์ดํฐ๊ฐ ์ฒ์์ผ๋ก ์์ง๋, ์ฆ ๋ค์ด์จ ์๊ฐ์ ๋ํ๋ธ๋ค. ์ฒ๋ฆฌ ์๊ฐ..
streaming ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ filter, count ๋ฑ ์ฌ๋ฌ๊ฐ์ง ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.๊ณผ๊ฑฐ ๋ฐ์ดํฐ์ ์ ๋ณด๊ฐ ํ์์๋ stateless ์ฐ์ฐ์์, ๊ณผ๊ฑฐ์ ๋ฐ์ดํฐ๊ฐ ํ์ํด ๋ฐ์ดํฐ ์ ์ง๊ฐ ํ์ํ statefull ์ฐ์ฐ์๋ก ๋๋ ์ ์๋ค.Stateless Trasformation๊ณผ๊ฑฐ์ ๋ฐ์ดํฐ์ ์๊ด ์์ด ํ์ฌ์ ๋ฐ์ดํฐ๋ง ์ฌ์ฉํ๋ ์ฐ์ฐ์Stateful Transfmraion์ด์ ๋ฐฐ์น์ ๋ฐ์ดํฐ์ ์ ์ง๊ฐ ํ์ํ ์ฐ์ฐ์์: aggreagion, counter, join, group, windowing ๋ฑStateless Transformation๊ฐ ๋ฐฐ์น๋ฅผ ์ด์ ๋ฐฐ์น๋ฅผ ์ฐธ์กฐํ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค. -> ๋ฐฐ์น์ ์ถ๋ ฅ์ด ํด๋น ๋ฐฐ์น์ ๋ฐ์ดํฐ๋ง์ ๊ธฐ๋ฐ์ผ๋ก ํจ์ ์๋ฏธselect, filter, map, fla..
airflow์์ nifi processor๋ก trigger๋ฅผ ๋ณด๋ด์ผ ํ๋ค. ์ฌ์ค nifi์์ restAPI๋ฅผ ์ง์ํด์ฃผ๊ธฐ ๋๋ฌธ์ NIFI ETL ์์ฒด๋ฅผ ์์ํ๋ ๊ฒ์ ํฐ ๋ฌธ์ ๊ฐ ์๋์ง๋ง nifi ์์ ์ดํ์ airflow์์ ํ์ task๊ฐ ์๋ค๋ฉด ETL์ด ์ด๋ ์์ ์ ๋๋๋ ์ง๋ฅผ ํ์ธํ๋ ๊ฒ ์ด๋ ค์ ๋ค. NIFI๋ processor ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉฐ, flowfile์ด processor์ ์ธํ๋๋ฉด ๋ฐ๋ก ์ฒ๋ฆฌ ํ output stream์ผ๋ก ๋ด๋ณด๋ด๊ธฐ ๋๋ฌธ์ ์ข ๋ฃ ์์ ์ ๋ช ํํ ์ ์๊ฐ ์์๋ค. ์๋ ๋ธ๋ก๊ทธ์์ airflow์์ nifi ๋ฅผ ํธ๋ฆฌ๊ฑฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๊ฐํ์ง๋ง ์์ ๋ ธ๋๋ฅผ `GenerateFlowFile`๋ก ์ค์ ํด์ผ ํ๋ ๋ฑ ์ ์ฝ์กฐ๊ฑด์ด ์์๋ค. https://towardsdatasci..
Background ์ค์๊ฐ stream ์ฒ๋ฆฌ๋ ์ง์์ ์ธ input stream์ ํน์ฑ ์ ์ค๋จ๋์ง ์๊ณ 24์๊ฐ ์คํ๋๋ฏ๋ก ์ฌ๋ฌ ์ค๋ฅ ์์ธ์ผ๋ก failure์ด ๋ฐ์ํ ์ ์๋ค. input stream์ด ์์ฑ๋ ์ฝ๋๋ก ์ฒ๋ฆฌ๋ ์ ์๋ ๊ฒฝ์ฐ (์๋ชป๋ ํ์์ ๋ฐ์ดํฐ) ์์คํ /cluster ์ค๋ฅ์ ๊ฒฝ์ฐ Spark Streaming์์์ Fault Tolerance ์ ์ ์คํํฌ์ ๋ชฉํ๋ end-to-end Exactly Once ๋ณด์ฅ์ด๋ค. (์ฐธ๊ณ ) At Most Once: ๊ฐ ๋ ์ฝ๋๋ ํ ๋ฒ๋ง ์ฒ๋ฆฌ๋๊ฑฐ๋ ์์ ์ฒ๋ฆฌ๋์ง ์๋๋ค. At Least Once: ๊ฐ ๋ ์ฝ๋๊ฐ ํ ๋ฒ ์ด์ ์ฒ๋ฆฌ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์์ค๋์ง ์๋๋ก ๋ณด์ฅํ๋ฏ๋ก At Most Once๋ณด๋ค ๊ฐ๋ ฅํ์ง๋ง ์ค๋ณต์ด ์์ ์ ์๋ค. Exactly Once: ๊ฐ ..