JUST DO IT!

๋ฐ์ดํ„ฐ ํŒ€๊ณผ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค - TIL230522 ๋ณธ๋ฌธ

TIL

๋ฐ์ดํ„ฐ ํŒ€๊ณผ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค - TIL230522

sunhokimDev 2023. 5. 22. 22:14

๐Ÿ“š KDT WEEK 8 DAY 1 TIL

  • ๋ฐ์ดํ„ฐ ํŒ€
  • ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค

 


๐ŸŸฅ ๋ฐ์ดํ„ฐ ํŒ€

 

๋ฐ์ดํ„ฐ ํŒ€์˜ ์—ญํ• 

  1. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ถ€๊ฐ€ ๊ฐ€์น˜ ์ƒ์„ฑ
  2. ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ คํ•œ ๊ฒฐ์ •์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋•๋Š”๋‹ค ex) ๋Œ€์‹œ๋ณด๋“œ, ๋ฆฌํฌํŠธ ์ƒ์„ฑ
  3. ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž ์„œ๋น„์Šค ๊ฐœ์„  ๊ฐ€๋Šฅ ex) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•œ ์ถ”์ฒœ ๊ธฐ๋Šฅ

 

๋ฐ์ดํ„ฐ ํŒ€์˜ ๋ฐœ์ „

1. ๋ฐ์ดํ„ฐ ์ธํ”„๋ผ(ETL + ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค) ๊ตฌ์ถ• : ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด

  • ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค(OLAP)
    • ํšŒ์‚ฌ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„๋†“์€ ์ค‘์•™ DB
    • ์†Œ๊ทœ๋ชจ์ผ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ƒฅ ํ”„๋กœ๋•์…˜ DB๋กœ ๋Œ€์ฒด
    • ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์˜ ๊ตฌ์ถ•์ด ์ง„์ •ํ•œ ๋ฐ์ดํ„ฐ ํŒ€์˜ ์ฒซ ๋ฒˆ์งธ ์Šคํ…
    • ๋ฉด์ ‘ ์งˆ๋ฌธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์˜ ๊ธฐ์ˆ ์„ ๋ฌผ์–ด๋ด๋„ ์ข‹์Œ.
  • ETL(Extract, Transform, Load) = ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ
    • ๋‹ค๋ฅธ ๊ณณ์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ๋‹ค๊ฐ€ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์— ๋กœ๋“œํ•˜๋Š” ์ž‘์—…
    • Airflow๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ, AWS์™€ GCP๋„ ์ง€์›

 

ETL

 

2. ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ˆ˜ํ–‰ : ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€

  • ์‹œ๊ฐํ™” ๋Œ€์‹œ๋ณด๋“œ ์ œ์ž‘
    • ์ค‘์š”ํ•œ ์ง€ํ‘œ๋ฅผ ์‹œ๊ฐ„์˜ ํ๋ฆ„๊ณผ ํ•จ๊ป˜ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์  ex)๋งค์ถœ์•ก, ์›”๊ฐ„ ์‚ฌ์šฉ์ž ์ˆ˜ ๋“ฑ
    • Tableau, Looker, Power BI ๋“ฑ๋“ฑ์ด ๋ณดํŽธ์ 

 

3. ๋ฐ์ดํ„ฐ ๊ณผํ•™ ์ ์šฉ : ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž

  • ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๊ฐœ์„  ex) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•œ ์ถ”์ฒœ --> ๊ฐœ์ธํ™” ๋ฐ ์ตœ์ ํ™”
  • ๋จธ์‹  ๋Ÿฌ๋‹(ML) : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—†์ด ํ•™์Šตํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ํŒจํ„ด์„ ์ฐพ์•„ ํ•™์Šต : ๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ๊ณผ ํฌ๊ธฐ๊ฐ€ ๋งค์šฐ ์ค‘์š”

 


 

๋ฐ์ดํ„ฐ ์กฐ์ง์˜ ๊ตฌ์„ฑ์›

์ž‘์€ ํšŒ์‚ฌ์—์„œ๋Š” ํ•œ ์‚ฌ๋žŒ์ด ๋ช‡ ๊ฐœ์˜ ์—ญํ• ์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

์•ž์„œ ์–ธ๊ธ‰ํ•œ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด, ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€, ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(ML ์—”์ง€๋‹ˆ์–ด)๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

1. ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด

  • ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค๋ฅผ ๊ตฌ์ถ• ๋ฐ ๊ด€๋ฆฌ ex) Redshift, BigQuery, ์Šค๋…ธ์šฐํ”Œ๋ ˆ์ดํฌ..
  • ETL ๊ตฌ์ถ• ๋ฐ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ํ†ตํ•œ ์ฃผ๊ธฐ์  ์‹คํ–‰ ex) Airflow
  • ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€์™€ ๊ณผํ•™์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ ๋˜๋Š” ๊ฐ„๋‹จํ•œ ํˆด ์ œ๊ณต
  • ์‚ฌ์šฉ ๊ธฐ์ˆ  : SQL, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(ํŒŒ์ด์ฌ, ์ž๋ฐ”..), ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ๊ธฐ์ˆ , ETL/ELT ํ”„๋ ˆ์ž„์›Œํฌ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ”Œ๋žซํผ (Spark, YARN) ๋“ฑ

์ฐธ๊ณ )

๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด ์Šคํ‚ฌ ๋กœ๋“œ๋งต : https://github.com/datastacktv/data-engineer-roadmap

 

GitHub - datastacktv/data-engineer-roadmap: Roadmap to becoming a data engineer in 2021

Roadmap to becoming a data engineer in 2021. Contribute to datastacktv/data-engineer-roadmap development by creating an account on GitHub.

github.com

 

2.  ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€

  • ๋น„์ฆˆ๋‹ˆ์Šค ์ธํ…”๋ฆฌ์ „์Šค๋ฅผ ์ฑ…์ž„ โ–ถ ๊ณผํ•™์ ์œผ๋กœ ์˜์‚ฌ ๊ฒฐ์ •์„ ๋•๋Š”๋‹ค. ex) ๋Œ€์‹œ๋ณด๋“œ ์‹œ๊ฐํ™”
  • ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ๊นŠ์€ ์ง€์‹์ด ํ•„์š”(ํšŒ์‚ฌ์˜ ์ „๋ฐ˜์ ์ธ ์„œ๋น„์Šค ์ง€์‹)
  • ํšŒ์‚ฌ ๋‚ด ๋‹ค๋ฅธ ํŒ€๋“ค์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ จ ์งˆ๋ฌธ์— ์†Œํ†ต ๋ฐ ๋Œ€๋‹ต
    • ex) ๋งค์ถœ์ด ์ตœ๊ทผ ๋–จ์–ด์ง„ ์ด์œ ?, ์ƒˆ๋กœ์šด ์ œํ’ˆ ์ถœ์‹œ์— ๋Œ€ํ•œ ๊ฐ€๋Šฅ์„ฑ ๋„์ถœ
  • ์‚ฌ์šฉ ๊ธฐ์ˆ  : SQL, ๋Œ€์‹œ๋ณด๋“œ, ํ†ต๊ณ„ ์ง€์‹(AB ํ…Œ์ŠคํŠธ ๋ถ„์„์— ์œ ์šฉ), ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง(ELT)

3. MLOps

  • DevOps์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์„œ๋น„์Šค ์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ML ๋ชจ๋ธ์ด ๋Œ€์ƒ์œผ๋กœ CI/CD
  • ๋ชจ๋ธ์„ ๊ณ„์†์ ์œผ๋กœ ๋นŒ๋”ฉ, ๋ฐฐํฌ, ๋ชจ๋‹ˆํ„ฐ๋ง
  • ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด์˜ ๊ธฐ์ˆ  + DevOps ๊ธฐ์ˆ  + ๋จธ์‹ ๋Ÿฌ๋‹ ๊ฒฝํ—˜ ๋ฐ ์ง€์‹

 

4. ํ”„๋ผ์ด๋ฒ„์‹œ ์—”์ง€๋‹ˆ์–ด

  • ์ „์ฒด ์‹œ์Šคํ…œ์—์„œ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ ๋ฐ ํˆด์„ ์ œ๊ณต
  • ๋ฐ์ดํ„ฐ ์‹œ์Šคํ…œ์—์„œ ๋”์šฑ ์ค‘์š”ํ•จ
  • ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ๋ฒ•์•ˆ์˜ ์ง•๋ฒŒ ์กฐํ•ญ์ด ์ ์  ๊ฐ•ํ™”๋˜๋Š” ์ถ”์„ธ์ด๋‹ค.
    • ex) ์œ ๋Ÿฝ ์—ฐํ•ฉ์˜ GDPR, ๋ฏธ๊ตญ์˜ HIPAA, CCPR ๋“ฑ..

 


 

๐ŸŸฆ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค

 

๋จผ์ €, ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๊ณผ ๋น„๊ตํ•ด๋ณธ๋‹ค.

 

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๊ฐ€ ์ •๋ง ๋ฐ์ดํ„ฐ๋“ค์ด ์ผ์ •ํ•œ ํ‹€ ์—†์ด ๋‘ฅ๋‘ฅ ๋– ๋‹ค๋‹ˆ๋Š” ๊ฐ•์ธ๊ฐ€ ๋ณด๋‹ค.

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ

  • ๊ธฐํ•œ ์—†๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ(๊ตฌ์กฐํ™” + ๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ)๋ฅผ ํ˜•ํƒœ ๊ทธ๋Œ€๋กœ ๋ณด์กดํ•˜๋Š” ์Šคํ† ๋ฆฌ์ง€์— ๊ฐ€๊นŒ์›€
  • ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค๋ณด๋‹ค ๋ช‡ ๋ฐฐ๋Š” ๋” ํฌ๊ณ  ๋” ๊ฒฝ์ œ์ ์ž„

๊ทธ๋ ‡๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ์™€ ์›จ์–ดํ•˜์šฐ์Šค๋ฅผ ํšŒ์‚ฌ ๋‚ด DB๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ETL๊ณผ ELT๋Š” ์ด๋ ‡๋‹ค.

 

  • ETL : ๋ฐ”๊นฅ์—์„œ ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๊ณผ ์›จ์–ดํ•˜์šฐ์Šค ์ชฝ์œผ๋กœ ์ถ”์ถœํ•ด์„œ ์ ์žฌ
    • ํšŒ์‚ฌ์˜ ์„ฑ์žฅ์— ๋”ฐ๋ผ ์ ์  ๋งŽ์•„์ง„๋‹ค
  • ELT : ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ์™€ ์›จ์–ดํ•˜์šฐ์Šค์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์—์„œ ์ฒ˜๋ฆฌํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ ์žฌ
    • ์ฃผ๊ธฐ์ ์œผ๋กœ ์š”์•ฝ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.
    • ex) ๊ณ ๊ฐ ๋งค์ถœ ์š”์•ฝ ํ…Œ์ด๋ธ”, ์ œํ’ˆ ๋งค์ถœ ์š”์•ฝ ํ…Œ์ด๋ธ”..
    • dbt๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

 


 

๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ

๋น…๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” ๋‹ค์ˆ˜์˜ ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋œ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค.

์†Œ์ˆ˜์˜ ์„œ๋ฒ„๊ฐ€ ๊ณ ์žฅ๋‚˜๋„ ๋™์ž‘(Fault Tolerance)ํ•ด์•ผํ•˜๊ณ , ํ™•์žฅ์— ์šฉ์ดํ•ด์•ผ ํ•œ๋‹ค.

 

1์„ธ๋Œ€ ) ํ•˜๋‘ก๊ธฐ๋ฐ˜์˜ Hive/Presto

2์„ธ๋Œ€ ) Spark(SQL, DataFrame, Streaming, ML, Graph)

๋Œ€ํ‘œ์  ๋น…๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ์‹œ์Šคํ…œ์˜ ๋ฐœ์ „

 

Spark์ด ๋งŽ์ด ๋Œ€์„ธ๋ผ๊ณ  ํ•œ๋‹ค.


๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ์˜ต์…˜

๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ์„œ๋น„์Šค๋ฅผ ๋ช‡ ๊ฐ€์ง€ ์†Œ๊ฐœํ•œ๋‹ค.

์•„๋ž˜ ์„œ๋น„์Šค๋“ค์€ ๋ชจ๋‘ CSV, JSON, Avro, Parquet ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํฌ๋งท์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

 

1. AWS Redshift

 

 

  • AWS ๊ธฐ๋ฐ˜ PB ์Šค์ผ€์ผ ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
  • ๊ณ ์ •๋น„์šฉ์œผ๋กœ ์‹œ์ž‘ํ–ˆ์œผ๋‚˜ ๊ฐ€๋ณ€๋น„์šฉ๋„ ์ง€์›(Redshift Serverless)
  • AWS๋‚ด ๋‹ค๋ฅธ ์„œ๋น„์Šค๋“ค๊ณผ ์—ฐ๋™์ด ์‰ฝ๋‹ค. ex) S3, DynamoDB, SageMaker ๋“ฑ
  • ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์ด์ง€๋งŒ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ง€์›
  • ์›น ์ฝ˜์†” ์ด์™ธ์—๋„ API ์ œ์–ด ๊ฐ€๋Šฅ

 

2. Snowflake

 

 

  • ๋ฐ์ดํ„ฐ ํŒ๋งค๋ฅผ ํ†ตํ•œ ๋งค์ถœ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” Data Sharing/Marketplace ์ œ๊ณต
  • ETL๊ณผ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ ๊ธฐ๋Šฅ ์ œ๊ณต
  • SQL ๊ธฐ๋ฐ˜์œผ๋กœ ๋น…๋ฐ์ดํ„ฐ ์ €์žฅ, ์ฒ˜๋ฆฌ, ๋ถ„์„ ๊ฐ€๋Šฅ
  • ๋น„๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋Šฅ ์ œ๊ณต
  • AWS S3, GC ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€, Azure Blog Storage๋„ ์ง€์›
  • ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์ด์ง€๋งŒ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ง€์›
  • ์›น ์ฝ˜์†” ์ด์™ธ์—๋„ API ์ œ์–ด ๊ฐ€๋Šฅ

 

3. GCB(Google Cloud Bigquery)

 

 

 

  • BigQuery SQL์ด๋ž€ SQL๋กœ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ(Nested fields, repeated fields ์ง€์› ๋“ฑ)
  • ๊ฐ€๋ณ€ ๋น„์šฉ ๋ฐ ๊ณ ์ • ๋น„์šฉ ์ง€์›
  • ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ๋‚ด ๋‹ค๋ฅธ ์„œ๋น„์Šค์™€ ์—ฐ๋™์ด ์‰ฌ์›€
  • ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์ด์ง€๋งŒ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ง€์›
  • ์›น ์ฝ˜์†” ์ด์™ธ์—๋„ API ์ œ์–ด ๊ฐ€๋Šฅ

 

4. Apache Hive

๋กœ๊ณ ๋Š” ๋ง˜์— ์•ˆ๋“ ๋‹ค.

  • ํ•˜๋‘ก ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” SQL๊ธฐ๋ฐ˜ Facebook์˜ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ
  • HiveQL์ด๋ผ ๋ถ€๋ฅด๋Š” SQL ์ง€์›
  • ๋น ๋ฅธ ์ฒ˜๋ฆฌ์†๋„๋ณด๋‹ค๋Š” ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์–‘ ํฌ๊ธฐ์— ์ตœ์ ํ™”
  • ๋ฐ์ดํ„ฐ ํŒŒํ‹ฐ์…”๋‹๊ณผ ๋ฒ„ํ‚ทํŒ…๊ฐ™์€ ์ตœ์ ํ™” ์ž‘์—… ์ง€์›
  • UI์™€ CLI ๋‘๊ฐ€์ง€ ์ง€์›
  • Spark์— ์กฐ๊ธˆ์”ฉ ๋ฐ€๋ฆฌ๋Š” ์ค‘

 

5. Apache Presto

 

 

  • Hive์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์ฒ˜๋ฆฌ์†๋„์— ์ข€ ๋” ์ตœ์ ํ™”๋œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ
  • PrestoSQL์ด๋ž€ SQL ์ง€์›
  • ๋ฐฐ์น˜ ๋น…๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ์‹œ์Šคํ…œ
  • CSV, JSON, Avro, Parquet, ORC ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํฌ๋งท ์ง€์›
  • AWS Athena์˜ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค

 

6. Apache Spark

 

 

  • ๋ฐฐ์น˜์ฒ˜๋ฆฌ(API/SQL), ์‹ค์‹œ๊ฐ„์ฒ˜๋ฆฌ, ๊ทธ๋ž˜ํ”„์ฒ˜๋ฆฌ, ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋Šฅ ์ œ๊ณต
  • ํ•˜๋‘ก(YARN), AWS EMR, Google Cloud Dataproc ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ ์ง€์›
  • HDFS, S3, Cassandra ๋“ฑ ๋‹ค์–‘ํ•œ ํŒŒ์ผ์‹œ์Šคํ…œ๊ณผ ์—ฐ๋™ ๊ฐ€๋Šฅ
  • CSV, JSON, Avro, Parquet, ORC ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํฌ๋งท ์ง€์›
  • Java, Python, ์Šค์นผ๋ผ, R ์ง€์›

 

+ Apache Iceberg

  • Netflix์˜ ์•„ํŒŒ์น˜ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ, ๋ฐ์ดํ„ฐ ํŒŒ์ผ ํฌ๋งท์ด๋‹ค. (๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค๊ฐ€ ์•„๋‹˜)
  • HDFS, S3, Azure Blob Storage ๋“ฑ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์œ„์—์„œ ๋™์ž‘ํ•จ
  • ACID ํŠธ๋žœ์žญ์…˜๊ณผ ๊ณผ๊ฑฐ ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑ ๋ฐ ๋ณ€๊ฒฝ ๊ธฐ๋ก ์œ ์ง€ ๊ธฐ๋Šฅ
  • Schema Evolution ์ง€์›์„ ํ†ตํ•œ ํ…Œ์ด๋ธ” ์žฌ์ž‘์„ฑ ์—†์ด ์ปฌ๋Ÿผ ์ œ๊ฑฐ์™€ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
  • Java์™€ Python API ์ง€์›
  • Spark, Hive ๋“ฑ ๋‹ค๋ฅธ Apache ์‹œ์Šคํ…œ๊ณผ ์—ฐ๋™ ๊ฐ€๋Šฅ

 

 


 

๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ์˜ ๋ฐœ์ „ ๋‹จ๊ณ„

 

1. ์ดˆ๊ธฐ๋‹จ๊ณ„ : ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค + ETL

 

2. ๋ฐœ์ „๋‹จ๊ณ„ : ๋ฐ์ดํ„ฐ ์–‘์ด ์ ์  ์ฆ๊ฐ€

  • ๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์‹œ์Šคํ…œ(Spark ๋“ฑ) ๋„์ž…
  • ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์™€ ๊ฐ™์€ ๋Œ€์šฉ๋Ÿ‰ ๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ ์ €์žฅ

3. ์„ฑ์ˆ™๋‹จ๊ณ„ : ๋ฐ์ดํ„ฐ ํ™œ์šฉ ์ฆ๋Œ€ --> ํ˜„์—…๋‹จ์˜ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํ™œ์šฉ ์ฆ๊ฐ€

  • ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์ด ์ค‘์š”ํ•ด์ง€๊ณ  ๋จธ์‹ ๋Ÿฌ๋‹ ํ™œ์šฉ ๊ฐ€์†ํ™”
  • ELT ๊ณ ๋„ํ™”๋˜๋ฉด์„œ dbt ๋“ฑ์˜ analytics engineering ๋„์ž…

 

 


 

์‹ค๋ฆฌ์ฝ˜๋ฐธ๋ฆฌ ํšŒ์‚ฌ ๋ฐ์ดํ„ฐ ์Šคํƒ ํŠธ๋žœ๋“œ

 

ํด๋ผ์šฐ๋“œ

 

  • AWS : Affirm, Pinterest, Zillow, Udemy, Airbnb ๋“ฑ
  • GCP : Confluent
  • On-Prem : Apple(Hybrid), Uber(GCP ์ด์ „์ค‘)

 

๋น…๋ฐ์ดํ„ฐ ์‹œ์Šคํ…œ

 

  • Spark : Apple, Affirm, Pinterest, Zillow, Udemy,Uber
  • Hive/Presto : Uber, Airbnb
  • BigQuery : Confluent

 

๋Œ€์‹œ๋ณด๋“œ

 

  • Looker : Affirm, Pinterest, Udemy, Pinterest
  • Tableau : Pinterest, Zillow, Conflent, Uber
  • Superset : Airbnb
  • ์ž์ฒด์ œ์ž‘ : Apple

 

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ฒฝ์šฐ ๋ชจ๋‘ Airflow๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

  • K8s : Apple, Pinterest
  • dbt : Affirm, Udemy
  • Stitch : Confluent