๋ฐ๋ธŒ์ฝ”์Šค_๋ฐ์ดํ„ฐ์—”์ง€๋‹ˆ์–ด๋ง

[Week8 ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค] TIL 31์ผ์ฐจ - ๋ฐ์ดํ„ฐํŒ€, ๋ฐ์ดํ„ฐ๋ ˆ์ดํฌ๊ณผ ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค

๐Ÿช„ํ•˜๋ฃจ๐Ÿช„ 2023. 11. 27. 17:57
728x90

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

1. ๋ฐ์ดํ„ฐ ํŒ€์˜ ๋ชฉํ‘œ

์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ถ€๊ฐ€๊ฐ€์น˜๋ฅผ ์ƒ์„ฑ(๋ณธ์—…์„ ๋” ์ž˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฐ„์ ‘๋งค์ถœ) ํ•œ๋‹ค.

๋‘๊ฐ€์ง€ ์ธก๋ฉด์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1) ๊ณ ํ’ˆ์งˆ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ถ„์œผ๋กœ ์˜์‚ฌ ๊ฒฐ์ •์ž์—๊ฒŒ ๋„์›€์„ ์ค€๋‹ค.(Data science)

๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ คํ•œ ๊ฒฐ์ • ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๊ฒฐ์ •
๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ คํ•˜๋˜,
๋ฐ์ดํ„ฐ์™€ ๋ฐฉํ–ฅ์„ฑ์ด ๋‹ฌ๋ผ๋„ ์˜๊ฒฌ์„ ๊ณ ์ˆ˜ํ•œ๋‹ค.
๋ฐ์ดํ„ฐ์˜ ๋ฐฉํ–ฅ์„ฑ๋Œ€๋กœ ๊ฒฐ์ •ํ•œ๋‹ค.

 

๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๊ฒฐ์ •์€ ์–ด๋–ค ์ผ์„ ์ตœ์ ํ™”ํ•˜๋Š”๋ฐ ํ•„์š”ํ•˜๋‹ค๋ฉด,

์ƒˆ๋กœ์šด ๊ฒฐ์ •์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ คํ•œ ๊ฒฐ์ •์ด ๋” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์ด๋‹ค. ๊ฒฐ๊ตญ ๋ฐ์ดํ„ฐ๋Š” ๊ณผ๊ฑฐ์˜ ์‚ฐ๋ฌผ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ์ƒํ™ฉ๊ณผ ๋ฏธ๋ž˜์ƒํ™ฉ์— 100% ์ ์šฉํ•˜๊ธฐ๋Š” ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

์‚ฌ์šฉ

๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์ง€ํ‘œ ์ •์˜, ๋Œ€์‹œ๋ณด๋“œ์™€ ๋ฆฌํฌํŠธ ์ƒ์„ฑ

 

 

2) ๊ณ ํ’ˆ์งˆ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๊ฐœ์„  ํ˜น์€ ํ”„๋กœ์„ธ์Šค ์ตœ์ ํ™”(Product Science)

์‚ฌ์šฉ

์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์„œ๋น„์Šค ๊ฒฝํ—˜์„ ๊ฐœ์„ (๊ฐœ์ธํ™”๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ถ”์ฒœ๊ณผ ๊ฒ€์ƒ‰), ๊ณต์ •๊ณผ์ •์˜ ์˜ค๋ฅ˜ ์ตœ์ ํ™”

๋ณดํ†ต์˜ ํšŒ์‚ฌ์—์„œ 1๋ฒˆ ๊ณผ์ •์ด ์ธ์ •์„ ๋ฐ›์•„์•ผ 2๋ฒˆ์œผ๋กœ ๋ฐœ์ „ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

2. ๋ฐ์ดํ„ฐ ํŒ€์˜ ๋ฐœ์ „ ๋‹จ๊ณ„

ํ”„๋กœ๋•์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์ŠคOLTP

→ ๋ฐ์ดํ„ฐ ์ธํ”„๋ผ ๊ตฌ์ถ•(๋ฐ์ดํ„ฐ๋ถ„์„์šฉ ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค OLAP, ์™ธ๋ถ€์—์„œ ๋ฐ์ดํ„ฐ ์ถ”์ถœํ•ด์„œ ์ ์žฌ ETL)

→ ๋ฐ์ดํ„ฐ ๋ถ„์„(์ง€ํ‘œ ์ •์˜, ์‹œ๊ฐํ™”)

→ ๋ฐ์ดํ„ฐ ๊ณผํ•™ ์ ์šฉ(์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๊ฐœ์„ )

๋ณดํ†ต ๋ฐ์ดํ„ฐ๊ณผํ•™์„ ์ ์šฉํ•˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ ์ธํ”„๋ผ ๊ตฌ์ถ•๊ณผ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€์˜ ๊ธฐ๋ฐ˜์„ ๊ฐ–์ถฐ ๋†“๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ๋ฐ,

๋ฐ์ดํ„ฐ ๊ณผํ•™์„ ๋จผ์ € ์ ์šฉํ•˜๋ฉด ์‹ค์ œ๋กœ ๋„์›€์ด ๋˜๋Š”์ง€ ์„ฑ๊ณผ์ธก์ •์ด ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

1) ๋ฐ์ดํ„ฐ ์ธํ”„๋ผ ๊ตฌ์ถ•

๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์ด ์Œ“์ด๋ฉด ๋ฐ์ดํ„ฐ ์ธํ”„๋ผ ๊ตฌ์ถ• ๋‹จ๊ณ„๋Š”(DataLake → ์ฒ˜๋ฆฌ(Spark) → ETL → ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค) ์ˆœ์„œ๊ฐ€ ๋œ๋‹ค.

 

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

๊ทœ๋ชจ๊ฐ€ ํฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

ํด๋ผ์šฐ๋“œ : AWS Redshift, Google BigQuery

Snowflake

์˜คํ”ˆ์†Œ์Šค : Hadoop(Hive, Presto), Spark

๋ณดํ†ต AWS Redshift๋ฅผ ์‚ฌ์šฉํ•˜ ๋˜, ๋” ํฐ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋Š” BigQuery, Snowflake๋ฅผ ์‚ฌ์šฉ

 

ETL(Extract, Transform, Load)

ํด๋ผ์šฐ๋“œ : AWS, Google Cloud

์˜คํ”ˆ์†Œ์Šค : Airflow(๊ฐ€์žฅ ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉ)

SAAS : FiveTran, Stitch Data

 

2) ๋ฐ์ดํ„ฐ ๋ถ„์„

์ง€ํ‘œ์ •์˜

๋ณดํ†ต ์ค‘์š” ์ง€ํ‘œ๋ฅผ ์‹œ๊ฐ„์˜ ํ๋ฆ„๊ณผ ํ•จ๊ป˜ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

3A(Accessible - ์ž๋™์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ, Actionable - ์ฆ๊ฐ์˜ ์˜๋ฏธ๊ฐ€ ๋ถ„๋ช…, Auditable - ์ง€ํ‘œ ์ •์˜์— ๋Œ€ํ•ด ์‰ฝ๊ฒŒ ํ™•์ธ)

ex) ๋งค์ถœ์•ก, ์›”๊ฐ„/์ฃผ๊ฐ„ Active Users

 

์‹œ๊ฐํ™” ๋„๊ตฌ

Google Cloud Looker

Salesforce Tableau

MS PowerBI

Apache Superchat

 

3) ๋ฐ์ดํ„ฐ ๊ณผํ•™(์ธ๊ณต์ง€๋Šฅ> ๋จธ์‹ ๋Ÿฌ๋‹> ๋”ฅ๋Ÿฌ๋‹)

๋จธ์‹ ๋Ÿฌ๋‹์ด๋ž‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—†์ด ๋ฐฐ์›€์ด ๊ฐ€๋Šฅํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜(๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ํŒจํ„ด์„ ์ฐพ์•„ ํ•™์Šต)์œผ๋กœ

๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ๊ณผ ํฌ๊ธฐ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค(๋ฐ์ดํ„ฐ ์™œ๊ณก์ด ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•˜๋‹ค)

 

3. ๋ฐ์ดํ„ฐ ํŒ€์˜ ๊ตฌ์„ฑ์›

๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด(๋ฐ์ดํ„ฐ ์ธํ”„๋ผ ๊ตฌ์ถ•)
๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€(๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€ํ‘œ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹œ๊ฐํ™”)

๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฏธ๋ž˜๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด ๊ณ ๊ฐ์˜ ์„œ๋น„์Šค ๊ฒฝํ—˜์„ ๊ฐœ์„ )

๊ทธ ์™ธ) ML์—”์ง€๋‹ˆ์–ด, MLOps, ํ”„๋ผ์ด๋ฒ„์‹œ ์—”์ง€๋‹ˆ์–ด, ๋ฐ์ดํ„ฐ ๋””์Šค์ปค๋ฒ„๋ฆฌ(์ฃผ๊ธฐ์ ์ธ ํ…Œ์ด๋ธ”๊ณผ ๋Œ€์‹œ๋ณด๋“œ ํด๋ฆฐ์—… ex. ์•„๋ฌธ์„ผ, ๋ฐ์ดํ„ฐํ—ˆ๋ธŒ, ์…€๋ ‰ํŠธ์Šคํƒ€)

 

๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด ์ทจ์—…์„ ์œ„ํ•ด ์•Œ์•„์•ผ ํ•  ๊ธฐ์ˆ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

SQL

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(Python, Scala, Java)

๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค(Redshift, Snowflake, BigQuery), ETL(Airflow)

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ(Spark, Hadoop YARN)

+alpha

์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ (Doker/์ฟ ๋ฒ„๋„คํ‹ฐ์Šค)

ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…(AWS, GCP, Azure)

๊ธฐํƒ€ ์ง€์‹(๋จธ์‹ ๋Ÿฌ๋‹, A/B ํ…Œ์ŠคํŠธ, ํ†ต๊ณ„)

 

๋กœ๋“œ๋งต

 

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

 

๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€๊ฐ€ ์ทจ์—…์„ ์œ„ํ•ด ์•Œ์•„์•ผ ํ•  ๊ธฐ์ˆ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

SQL

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(Python, Scala, Java)

๋Œ€์‹œ๋ณด๋“œ(Looker, Tableu, PowerBI, Superchat)

๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง

ํ†ต๊ณ„์ง€์‹(A/B/ํ…Œ์ŠคํŠธ ๋“ฑ)

๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ์— ๊ด€ํ•œ ์ง€์‹

์ข‹์€ ์ง€ํ‘œ๋ฅผ ์ •์˜ํ•˜๋Š” ๋Šฅ๋ ฅ

 

4. ๋ฐ์ดํ„ฐ๋ ˆ์ดํฌ์™€ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค, ETL๊ณผ ELT

Redshift๋Š” ๊ณ ์ •๋น„์šฉ ์˜ต์…˜์ด๋ฉฐ, ์กฐ๊ธˆ ๋” ์ž‘์€ ๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

BigQuery, snowflake๋Š” ๊ฐ€๋ณ€๋น„์šฉ ์˜ต์…˜์ด๋ฉฐ ํฐ ๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ์— ์ ํ•ฉํ•˜๋‹ค.

 

  ETL   ELT  
๋กœ๊ทธ    → ๋ฐ์ดํ„ฐ๋ ˆ์ดํฌ    → ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค
์–‘์ด ๋งŽ๊ณ 
์ฃผ๋กœ ๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ
๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ+๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ
๋ณดํ†ต ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ(ex. AWS S3)
๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ(SQL๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ)

 

ETL(Extract, Transform, Load)

๋ฐ”๊นฅ์˜ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ์†Œ์Šค(ํ”„๋กœ๋•์…˜ DB [mysql, postgres], ์ด๋ฉ”์ผ ๋งˆ์ผ€ํŒ… ๋ฐ์ดํ„ฐ[Mailchimp, Hubspot, SendGrid], ํฌ๋ ˆ๋”ง์นด๋“œ ๋งค์ถœ ๋ฐ์ดํ„ฐ[Stripe], ์„œํฌํŠธ ํ‹ฐ์ผ“ ๋ฐ์ดํ„ฐ[Kustomer], ์„œํฌํŠธ ์ฝœ ๋ฐ์ดํ„ฐ[ChannelTalk, RingCentral, Talkdesk], ์„ธ์ผ์ฆˆ ๋ฐ์ดํ„ฐ[Salesforce], ์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ ๋กœ๊ทธ[Amplitude, MixPanel, ์›น ์„œ๋ฒ„๋กœ๋“œ] ๋“ฑ)์—์„œ ๋ฐ์ดํ„ฐ๋ ˆ์ดํฌ, ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด๋‹ค

์ฃผ๋กœ Airflow ์‚ฌ์šฉ

ex) ๋กœ๊ทธ → ๋ฐ์ดํ„ฐ๋ ˆ์ดํฌ, ๋กœ๊ทธ → ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค

ELT(Extract, Load, Transform)

๋ฐ์ดํ„ฐ๋ ˆ์ดํฌ, ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ ๋‹ค

๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ถ„์„๊ฐ€๊ฐ€ ๋งŽ์ด ์ˆ˜ํ–‰ํ•œ๋‹ค

Transform ๊ณผ์ •์—์„œ DBT ์‚ฌ์šฉ

๋ฐ์ดํ„ฐ๋ ˆ์ดํฌ → ๋ฐ์ดํ„ฐ๋ ˆ์ดํฌ, ๋ฐ์ดํ„ฐ๋ ˆ์ดํฌ → ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค, ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค → ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค

๋ณดํ†ต ํ•ด๋‹น ๊ณผ์ •์—์„œ ๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•œ๋‹ค

ex) ์ผ๋ณ„ ๋งค์ถœ ํ˜„ํ™ฉ

 

5. Airflow(ETL, ELT ์Šค์ผ€์ค„๋Ÿฌ)

๋‹ค์ˆ˜์˜ ETL์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ์Šค์ผ€์ค„๋งํ•ด ์ฃผ๊ณ  ์˜์กด๊ด€๊ณ„๋ฅผ ์ •์˜

ํŠน์ • ETL์ด ์‹คํŒจํ•  ๊ฒฝ์šฐ ์ด์— ๊ด€ํ•œ ์—๋Ÿฌ๋ฉ”์‹œ์ง€+์žฌ์‹คํ–‰(Backfill)

๊ตฌ์„ฑ) ์Šค์ผ€์ค„๋Ÿฌ, ์›น์„œ๋ฒ„, ์›Œ์ปค

์ง€์›) AWS, GoogleCloud, Azure

 

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

๋ถ„์‚ฐ ํ™˜๊ฒฝ ๊ธฐ๋ฐ˜์œผ๋กœ 1๊ฐœ ์ด์ƒ์˜ ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์†Œ์ˆ˜์˜ ์„œ๋ฒ„๊ฐ€ ๊ณ ์žฅ ๋‚˜๋„ ๋™์ž‘(Falut Tolerance) ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ธ”๋ก์„ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋‚˜๋ˆ„์–ด ์ €์žฅํ•œ๋‹ค(๊ธฐ๋ณธ์€ 3๊ฐœ ์„œ๋ฒ„์— ๋‚˜๋ˆ„์–ด ์ €์žฅ)

์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด Scale up, Scale out์„ ์ˆ˜ํ–‰ํ•œ๋‹ค(Scale up : ์„œ๋ฒ„ ๊ฐœ์ˆ˜ ํ™•์žฅ์— ์šฉ์ด, Scale up : ๊ธฐ์กด ์„œ๋ฒ„์˜ ์‚ฌ์–‘ ๋†’์ด๋Š” ๊ฒƒ์— ์šฉ์ด)

์š”์†Œ) ์ œ์ผ ์ƒ์œ„์— mastnode, ํ•˜์œ„์— ์—ฌ๋Ÿฌ slavenode๋กœ ๊ตฌ์„ฑ

๊ตฌ์„ฑ) ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ(์ €์žฅ)๊ณผ ๋ถ„์‚ฐ ์ปดํ“จํŒ… ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ์„ฑ

 

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

์˜ˆ์ „) Hadoop ๊ธฐ๋ฐ˜์˜ MapReduce ์œ„์˜ Hive/Presto(mapreduce์— SQL์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ )

ํ˜„์žฌ) Hadoop ๊ธฐ๋ฐ˜์˜ Yarn ์œ„์— MepReduce/Spark ๋“ฑ๋“ฑ

 

 

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

Iceberg๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋‘ SQL์„ ์ง€์›ํ•˜๋Š” ๋น…๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

 

1. AWS Redshift

PB ์Šค์ผ€์ผ ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ

Postgresql๊ณผ ํ˜ธํ™˜

๊ณ ์ •+๊ฐ€๋ณ€๋น„์šฉ์˜ต์…˜

๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํฌ๋งท(csv, json, avro, parquet) ์ง€์›

AWS ๋‚ด์˜ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋“ค๊ณผ ์—ฐ๋™์ด ์‰ฌ์›€

์ฃผ๋กœ ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์ด์ง€๋งŒ, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ง€์›

API๋ฅผ ํ†ตํ•œ ๊ด€๋ฆฌ/์ œ์–ด ๊ฐ€๋Šฅ

 

2. Snowflake

ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค

SQL ๊ธฐ๋ฐ˜์œผ๋กœ ์ €์žฅ, ์ฒ˜๋ฆฌ, ๋ถ„์„

๊ณ ์ •+๊ฐ€๋ณ€๋น„์šฉ์˜ต์…˜

๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํฌ๋งท(csv, json, avro, parquet) ์ง€์›

์ฃผ๋กœ ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์ด์ง€๋งŒ, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ง€์›

API๋ฅผ ํ†ตํ•œ ๊ด€๋ฆฌ/์ œ์–ด ๊ฐ€๋Šฅ

 

3. Google Cloud BigQuery

๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ์˜ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ์„œ๋น„์Šค

Big Query SQL๋กœ ์ฒ˜๋ฆฌ(Nested fields, repeated fields ์ง€์›ํ•˜์—ฌ ๋ณต์žกํ•œ ๊ตฌ์กฐ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ)

๊ณ ์ •+๊ฐ€๋ณ€๋น„์šฉ์˜ต์…˜

๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํฌ๋งท(csv, json, avro, parquet) ์ง€์›

Google ๋‚ด์˜ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋“ค๊ณผ ์—ฐ๋™์ด ์‰ฌ์›€

์ฃผ๋กœ ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์ด์ง€๋งŒ, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ง€์›

API๋ฅผ ํ†ตํ•œ ๊ด€๋ฆฌ/์ œ์–ด ๊ฐ€๋Šฅ

 

4. Apache Hive

Facebook์ด ์‹œ์ž‘ํ•œ ์•„ํŒŒ์น˜ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ

ํ•˜๋‘ก ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” SQL ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค(1์„ธ๋Œ€-Mapreduce ์œ„์—์„œ ๋™์ž‘, 2์„ธ๋Œ€-Yarn ์œ„์—์„œ Apache Tez๋ฅผ ์ด์šฉํ•˜์—ฌ ๋™์ž‘)

์ž๋ฐ”๋‚˜ python์œผ๋กœ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํฌ๋งท(csv, json, avro, parquet) ์ง€์›

๋น ๋ฅธ ์ฒ˜๋ฆฌ X ๋Œ€๊ทœ๋ชจ ์ฒ˜๋ฆฌ O์— ์ง‘์ค‘(๋ฐฐ์น˜ ๋น…๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์‹ฑ ์‹œ์Šคํ…œ-๋””์Šคํฌ ๊ธฐ๋ฐ˜)

์›น UI, CLI ์ง€์›

ํ˜„์žฌ๋Š” spark์— ๋ฐ€๋ฆฌ๋Š” ์ค‘

 

5. Apache Presto

ํ•˜์ด๋ธŒ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๋น ๋ฅธ ์‘๋‹ต์†๋„์— ์ง‘์ค‘(๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜)

 

6. Apache Iceberg(์Šคํ† ๋ฆฌ์ง€)+Spark(์ปดํ“จํŒ… ์—”์ง„)

Apache Iceberg

Netflix๊ฐ€ ์‹œ์ž‘ํ•œ ํ”„๋กœ์ ํŠธ๋กœ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ํ…Œ์ด๋ธ” ํฌ๋งท

Java, Python API ์ง€์›

 

Spark

UC ๋ฒ„ํด๋ฆฌ์—์„œ ์‹œ์ž‘๋œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ

๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ด€๋ จ(๋ฐฐ์น˜์ฒ˜๋ฆฌ-SQL, ์‹ค์‹œ๊ฐ„์ฒ˜๋ฆฌ, ๊ทธ๋ž˜ํ”„์ฒ˜๋ฆฌ, ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋Šฅ)

๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ ์ง€์›(Hadoop์˜ Yarn, K8s, AWS EMR, Google Cloud Dataproc)

๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํฌ๋งท(csv, json, avro, parquet) ์ง€์›

์ž๋ฐ”๋‚˜ python, ์Šค์นผ๋ผ, R ๋“ฑ์„ ์ง€์›

 

โ…ข. ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์˜ ๋ฏธ๋ž˜/ํŠธ๋ Œ๋“œ

์ดˆ๊ธฐ)

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

(๋ฐ์ดํ„ฐ ๊ทœ๋ชจ๊ฐ€ ์ ์  ์ปค์ง„๋‹ค)

๋ฐœ์ „)

๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ ๋„์ž…(๋น„๊ตฌ์กฐํ™”/ํฐ ๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฝ์ œ์ ์œผ๋กœ ๋ณด๊ด€) + ๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ ๋„์ž…(Spark)

(๋ฐ์ดํ„ฐ ํ™œ์šฉ ์ฆ๋Œ€)

์„ฑ์ˆ™)

ELT ๊ณ ๋„ํ™”(dbt ๋“ฑ์˜ analytics enginee ๋„์ž…), MLOPS(๋จธ์‹ ๋Ÿฌ๋‹์˜ ์„ฑ๋Šฅ+๋ฐฐํฌ+์˜ค๋ฅ˜๊ฐ์ง€)

728x90