IT ์‚ฌ๋ฌผํ•จ ๐Ÿป ์ž์„ธํžˆ๋ณด๊ธฐ

Data

์ฑ•ํ„ฐ3. ๋น…๋ฐ์ดํ„ฐ์˜ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ

๋ž˜๋ฆฌ๋ž˜๋ฆฌ 2023. 4. 15. 17:36

์ฑ•ํ„ฐ3 :๋น…๋ฐ์ดํ„ฐ์˜ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ

3-1 ๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ์˜ ํ”„๋ ˆ์ž„์›Œํฌ

๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ์™€ ๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ

  • ์Šคํ‚ค๋งˆ๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜๋œ ๋ฐ์ดํ„ฐ๋ฅผ ‘๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ’
  • ์Šคํ‚ค๋งˆ๊ฐ€ ์—†๋Š” ๋ฐ์ดํ„ฐ๋Š” ‘๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ’
  • ๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์Šคํ† ๋ฆฌ์ง€ ๋“ฑ์— ์ €์žฅํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ์˜ ๊ฐœ๋…

์Šคํ‚ค๋งˆ๋ฆฌ์Šค ๋ฐ์ดํ„ฐ

CSV,JSON,XML ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋Š” ์„œ์‹์€ ์ •ํ•ด์ ธ ์žˆ์ง€๋งŒ, ์นผ๋Ÿผ ์ˆ˜๋‚˜ ๋ฐ์ดํ„ฐํ˜•์€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•„ ‘์Šคํ‚ค๋งˆ๋ฆฌ์Šค ๋ฐ์ดํ„ฐ’๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

๋ฐ์ดํ„ฐ ๊ตฌ์กฐํ™”์˜ ํŒŒ์ดํ”„๋ผ์ธ

  • ์ผ๋ฐ˜์ ์œผ๋กœ ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ์˜ ์••์ถ•๋ฅ ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์—ด ์ง€ํ–ฅ ์Šคํ† ๋ฆฌ์ง€๋กœ ์ €์žฅํ•œ๋‹ค.
  • ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ ์ค‘ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŒฉํŠธ ํ…Œ์ด๋ธ”, ๊ทธ์— ๋”ฐ๋ฅธ ๋ถ€์† ๋ฐ์ดํ„ฐ๋ฅผ ๋””๋ฉ˜์ „ ํ…Œ์ด๋ธ”๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.

๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ์—ด ์ง€ํ–ฅ ์Šคํ† ๋ฆฌ์ง€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ์˜ ๊ฐ€๊ณต ๋ฐ ์••์ถ•์„ ์œ„ํ•ด ๋งŽ์€ ์ปดํ“จํ„ฐ ๋ฆฌ์†Œ์Šค๊ฐ€ ์†Œ๋น„๋œ๋‹ค.

→ ๊ทธ๋ž˜์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด Hadoop๊ณผ Spark ๋“ฑ์˜ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

Hadoop

ํ•˜๋‘ก์€ ๋‹จ์ผ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์•„๋‹Œ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋‹ค์ˆ˜์˜ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ด๋ฃจ์–ด์ง„ ์ง‘ํ•ฉ์ฒด๋‹ค.

  • ํ•˜๋‘ก์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ(๋Œ€ํ‘œ, ์ผ๋ถ€)
  • ‘๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ’ → HDFS
  • ‘๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž’ → YARN
  • ‘๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ’ → MapReduce

๋‹ค์–‘ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์ค‘ ์ž์‹ ์—๊ฒŒ ๋งž๋Š” ๊ฒƒ์„ ์„ ํƒํ•˜๊ณ  ๊ทธ๊ฒƒ๋“ค์„ ์กฐํ•ฉํ•จ์œผ๋กœ์จ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด

Hadoop์„ ์ค‘์‹ฌ์œผ๋กœ ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์˜ ํŠน์ง•์ด๋‹ค.

 

๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž (HDFS, YARN)

  • ๋‹ค์ˆ˜์˜ ์ปดํ“จํ„ฐ์— ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜์—ฌ ์ค‘๋ณต์„ฑ์„ ๋†’์ธ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.
  • CPU๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์˜ ๊ณ„์‚ฐ ๋ฆฌ์†Œ์Šค๋Š” YARN์— ์˜ํ•ด ๊ด€๋ฆฌ๋œ๋‹ค.
  • YARN์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉํ•˜๋Š” CPU ์ฝ”์–ด์™€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ‘์ปจํ…Œ์ด๋„ˆ’๋ผ ๋ถˆ๋ฆฌ๋Š” ๋‹จ์œ„๋กœ ๊ด€๋ฆฐํ•œ๋‹ค.
  • ํ•˜๋‘ก์—์„œ ๋ถ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ฉด YARN์ด ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด์˜ ๋ถ€ํ•˜๋ฅผ ๋ณด๊ณ  ๋น„์–ด์žˆ๋Š” ํ˜ธ์ŠคํŠธ๋ถ€ํ„ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.

*YARN ์ปจํ…Œ์ด๋„ˆ

→ ๋„์ปค๋ฅผ ๋– ์˜ฌ๋ฆฌ๋Š” ์‚ฌ๋žŒ๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. YARN์˜ ์ปจํ…Œ์ด๋„ˆ๋Š” OS์ˆ˜์ค€์˜ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋ผ ์–ด๋–ค ํ˜ธ์ŠคํŠธ์—์„œ

์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€์˜ ๊ธฐ์ˆ ์ด๋‹ค.

 

๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ์ฟผ๋ฆฌ ์—”์ง„ (MapReduce, Hive)

MapReduce๋Š” ์ž„์˜์˜ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜๋‹ค.

  • MapReduce๋Š” ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์‹œ์Šคํ…œ์ด๋‹ค
  • ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์œ„ํ•ด์„œ๋ผ๋ฉด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋„ˆ๋ฌด ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ช‡ ์ดˆ ์•ˆ์— ๋๋‚˜๋ฒ„๋ฆฌ๋Š” ์ฟผ๋ฆฌ ์‹คํ–‰์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.
  • Hive๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ์—๋Š” ์ ํ•ฉํ•˜๋‚˜, ์• ๋“œ ํ›… ์ฟผ๋ฆฌ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜๋Š” ๋ฐ๋Š” ๋ถ€์ ํ•ฉํ•˜๋‹ค.

Hive On Tez

Hive๋ฅผ ๊ฐ€์†ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋…ธ๋ ฅ์œผ๋กœ ๊ฐœ๋ฐœ๋œ ๊ฒƒ์ด Apache Tez์ด๋‹ค.

*Hive on Spark → Apache Spark๋ฅผ ์‚ฌ์šฉํ•ด Hive๋ฅผ ๊ณ ์†ํ™” ํ•˜๋Š” ๊ฐœ๋ฐœ๋„ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋‹ค.

 

๋Œ€ํ™”ํ˜• ์ฟผ๋ฆฌ ์—”์ง„ (Impala, Presto)

  • Presto์™€ Impala๋Š” YARN๊ณผ ๊ฐ™์€ ๋ฒ”์šฉ์ ์ธ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  SQL์˜ ์‹คํ–‰๋งŒ ํŠนํ™”ํ•œ
    ๋…์ž์ ์ธ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋‹ค.

-๋Œ€๋Ÿ‰์˜ ๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๋Š” ๋ฌด๊ฑฐ์šด ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ์—๋Š” ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Hive

-๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ ์™„์„ฑํ•œ ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€ํ™”์‹์œผ๋กœ ์ง‘๊ณ„ํ•˜๊ณ ์ž ํ•  ๋•Œ๋Š” ์ง€์—ฐ์ด ์ ์€ Impala์™€ Presto ๋“ฑ์ด ์ ํ•ฉํ•˜๋‹ค.

Spark

Hadoop์˜ ์—ฐ์žฅ์„  ์ƒ์— ์žˆ๋Š” Tez์™€ ๋‹ฌ๋ฆฌ Spark๋Š” Hadoop๊ณผ๋Š” ๋‹ค๋ฅธ ๋…๋ฆฝ๋œ ํ”„๋กœ์ ํŠธ๋‹ค.

Spark์˜ ํŠน์ง•์€ ๋Œ€๋Ÿ‰์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ณ ์†ํ™”๋ฅผ ์‹คํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

MapReduce ๋Œ€์ฒดํ•˜๊ธฐ

  • Spark์—์„œ๋Š” ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๋ฅด ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ Spark Streaming์ด๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์ฒ˜์Œ๋ถ€ํ„ฐ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ๋Œ€๊ทœ๋ชจ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ SQL์— ์˜ํ•œ ๋Œ€ํ™”ํ˜• ์ฟผ๋ฆฌ ์‹คํ–‰๊ณผ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋„๋ฆฌ ์ด์šฉ๋˜๊ณ  ์žˆ๋‹ค.

3-2 ์ฟผ๋ฆฌ์—”์ง„

๋ฐ์ดํ„ฐ ๋งˆํŠธ ๊ตฌ์ถ•์˜ ํŒŒ์ดํ”„๋ผ์ธ

  • ์ฒ˜์Œ์— ๋ถ„์‚ฐ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๊ณ  ์—ด ์ง€ํ–ฅ ์Šคํ† ๋ฆฌ์ง€ ํ˜•์‹์œผ๋กœ ์ €์žฅํ•œ๋‹ค(Hive๋ฅผ ์ด์šฉ)
  • ์™„์„ฑํ•œ ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐํ•ฉ, ์ง‘๊ณ„ํ•˜๊ณ  ๋น„์ •๊ทœํ™” ํ…Œ์ด๋ธ”๋กœ ๋ฐ์ดํ„ฐ ๋งˆํŠธ์— ์จ์„œ ๋‚ด๋ณด๋‚ธ๋‹ค.
    → ์—ด ์ง€ํ–ฅ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ด์šฉํ•œ ์ฟผ๋ฆฌ์˜ ์‹คํ–‰์—๋Š” Presto๋ฅผ ์‚ฌ์šฉํ•ด ์‹คํ–‰์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Hive์—์„œ ๋งŒ๋“  ๊ฐ ํ…Œ์ด๋ธ”์˜ ์ •๋ณด๋Š” ‘Hive ๋ฉ”ํƒ€ ์Šคํ† ์–ด’๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ํŠน๋ณ„ํ•œ DB์— ์ €์žฅ๋œ๋‹ค.

์„œ๋ธŒ ์ฟผ๋ฆฌ ์•ˆ์—์„œ ๋ ˆ์ฝ”๋“œ ์ˆ˜ ์ค„์ด๊ธฐ

// ๋น„ํšจ์œจ์ ์ธ ์ฟผ๋ฆฌ์˜ ์˜ˆ
//ํ…Œ์ด๋ธ”์„ ๊ฒฐํ•ฉํ•œ ํ›„์— WHERE ๋กœ ๊ฒ€์ƒ‰
SELECT ...
FROM access_log a
JOIN users b ON b.id = a.user_id
WHERE b.created_at = '2017-01-01'

//๋ณด๋‹ค ํšจ์œจ์ ์ธ ์ฟผ๋ฆฌ์˜ ์˜ˆ์‹œ
SELECT ...
FROM(
	SELECT * access_log
	WHERE time >= TIMESTAMP '2017-01-01 00:00:00'
) a
JOIN users b ON b.id = a.user_id
WHERE b.created_at = '2017-01-01'
  • ์„œ๋ธŒ์ฟผ๋ฆฌ ์•ˆ์—์„œ ํŒฉํŠธํ…Œ์ด๋ธ”์„ ์ž‘๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํ™•์‹คํ•˜๋‹ค.
  • ๊ฐ€๋Šฅํ•œ ‘์ดˆ๊ธฐ์— ํŒฉํŠธ ํ…Œ์ด๋ธ”์„ ์ž‘๊ฒŒํ•˜๋Š” ๊ฒƒ’์ด ์ค‘์š”ํ•˜๋‹ค.

๋Œ€ํ™”ํ˜• ์ฟผ๋ฆฌ ์—”์ง„ Presto์˜ ๊ตฌ์กฐ

ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐ€๋Šฅํ•œ ์Šคํ† ๋ฆฌ์ง€

Presto์˜ ํ•˜๋‚˜์˜ ํŠน์ง•์ด ํ”„๋Ÿฌ๊ทธ์ธ ๊ฐ€๋Šฅํ•œ ์Šคํ† ๋ฆฌ์ง€ ์„ค๊ณ„๋‹ค.

  • Presto๋Š” ์ „์šฉ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ Hive์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ๋“ค์ธ๋‹ค.

CPU ์ฒ˜๋ฆฌ์˜ ์ตœ์ ํ™”

Presto๋Š” SQL์˜ ์‹คํ–‰์— ํŠนํ™”๋œ ์‹œ์Šคํ…œ์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ๋ถ„์„ํ•ด ์ตœ์ ์˜ ์‹คํ–‰ ๊ณ„ํš์„ ์ƒ์„ฑ → ์ž๋ฐ”์˜ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜
→ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋Š” Presto์˜ ์›Œ์ปค ๋…ธ๋“œ์— ๋ฐฐํฌ → ๊ทธ๊ฒƒ์€ ๋Ÿฐํƒ€์ž„ ์‹œ์Šคํ…œ์— ์˜ํ•ด ๊ธฐ๊ณ„ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋œ๋‹ค.

Presto ์ฟผ๋ฆฌ๋Š” ์ผ๋‹จ ์‹คํ–‰์ด ์‹œ์ž‘๋˜๋ฉด ์ค‘๊ฐ„์— ๋ผ์–ด๋“ค ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ๋„ˆ๋ฌด ํฐ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.

 

์ธ ๋ฉ”๋ชจ๋ฆฌ ์ฒ˜๋ฆฌ์— ์˜ํ•œ ๊ณ ์†ํ™”

Presto๋Š” ์ฟผ๋ฆฌ์˜ ์‹คํ–‰ ๊ณผ์ •์—์„œ ๋””์Šคํฌ์— ์“ฐ๊ธฐ๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ์‹ค์‹œํ•˜๊ณ  ๋ฉ”๋กœ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด ์—ฌ์œ ๊ฐ€ ์ƒ๊ธธ๋•Œ ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๋กœ ์‹คํŒจํ•œ๋‹ค.

 

๋ถ„์‚ฐ ๊ฒฐํ•ฉ๊ณผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๊ฒฐํ•ฉ

  • Presto๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถ„์‚ฐ ๊ฒฐํ•ฉ์„ ์‹ค์‹œํ•˜๋ฉฐ ๊ฐ™์€ ํ‚ค๋ฅผ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋™์ผํ•œ ๋…ธ๋“œ์— ๋ชจ์ธ๋‹ค.
  • ํ•œ์ชฝ ํ…Œ์ด๋ธ”์ด ์ถฉ๋ถ„ํžˆ ์ž‘์€ ๊ฒฝ์šฐ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๊ฒฐํ•ฉ์„ ์‚ฌ์šฉํ•ด ์†๋„๋ฅผ ๊ณ ์†ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ถ„์„์˜ ํ”„๋ ˆ์ž„์›Œํฌ ์„ ํƒํ•˜๊ธฐ

MPP๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๊ณ„์‚ฐ ๋…ธ๋“œ๊ฐ€ ์ผ์ฒดํ™”๋˜์–ด ์žˆ์–ด ์ฒ˜์Œ์— ETL ํ”„๋กœ์„ธ์Šค ๋“ฑ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ ˆ์ฐจ๊ฐ€ ํ•„์š”ํ•˜๋‹ค
  • ๊ทธ ๋‹ค์Œ์€ SQL๋งŒ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘๊ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Hive

  • ํ•˜๋‘ก ์ƒ์˜ ๋ถ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์›๋ž˜๋ถ€ํ„ฐ ๋†’์€ ํ™•์žฅ์„ฑ๊ณผ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ๋ชฉํ‘œ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค.
  • ํ•˜์ด๋ธŒ๋Š” ์•ž์œผ๋กœ๋„ ๋ฐ์ดํ„ฐ์–‘์— ์ขŒ์šฐ๋˜์ง€ ์•Š๋Š” ์ฟผ๋ฆฌ ์—”์ง„์œผ๋กœ ๊ณ„์† ์ด์šฉ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋œ๋‹ค.

Presto

  • ํ•˜์ด๋ธŒ์™€ ์ •๋ฐ˜๋Œ€์ธ ์ฟผ๋ฆฌ์—”์ง„์œผ๋กœ ์†๋„๋กœ ์ธํ•ด ๋‹ค์–‘ํ•œ ๊ฒƒ์„ ํฌ์ƒํ•œ๋‹ค.
  • ๋Œ€ํ™”์‹ ์ฟผ๋ฆฌ์˜ ์‹คํ–‰์— ํŠนํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์‹ฌ์ด ๋˜๋Š” ETLํ”„๋กœ์„ธ์Šค ๋ฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐํ™”์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.
  • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐํ™”์—๋Š” Hive์™€ Spark๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด ์ข‹๋‹ค.

Spark

  • ์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์‹ฌ์ด๋ฉฐ ๋Œ€ํ™”ํ˜• ์ฟผ๋ฆฌ ์‹คํ–‰์— ์ ํ•ฉํ•˜๋‹ค.
  • ETLํ”„๋กœ์„ธ์Šค์—์„œ SQL์— ์ด๋ฅด๊ธฐ ๊นŒ์ง€์˜ ์ผ๋ จ์˜ ํ๋ฆ„์„ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ๊ธฐ์ˆ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ์žฅ์ ์ด๋‹ค.
  • ์ŠคํŒŒํฌ์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅด ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•˜๋ƒ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.

3-3 ๋ฐ์ดํ„ฐ ๋งˆํŠธ์˜ ๊ตฌ์ถ•

ํŒฉํŠธ ํ…Œ์ด๋ธ”

๋น…๋ฐ์ดํ„ฐ ๋ถ„์„์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š”๋ฐ, ๊ทธ์ค‘์—์„œ๋„ ์••๋„์ ์œผ๋กœ ๋งŽ์€ ๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•˜๋Š” ๊ฒƒ์ด ํŒฉํŠธ ํ…Œ์ด๋ธ”์ด๋‹ค.

 

ํŒฉํŠธ ํ…Œ์ด๋ธ”์˜ ์ž‘์„ฑ

 

ํ…Œ์ด๋ธ” ํŒŒํ‹ฐ์…”๋‹

ํŒฉํŠธ ํ…Œ์ด๋ธ” ํšจ์œจ๋งŒ ์ƒ๊ฐํ•˜๋ฉด ์ถ”๊ฐ€๊ฐ€ ์œ ๋ฆฌํ•˜๋‹ค ๊ทธ๋Ÿฌ๋‚˜ ์•„๋ž˜๊ฐ™์€ ๋ฌธ์ œ์ ์ด์žˆ๋‹ค.

  • ์ถ”๊ฐ€์— ์‹คํŒจํ•œ ๊ฒƒ์„ ์•Œ์•„์ฑ„์ง€ ๋ชปํ•˜๋ฉด ํŒฉํŠธ ํ…Œ์ด๋ธ”์˜ ์ผ๋ถ€์— ๊ฒฐ์†์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • ์ถ”๊ฐ€๋ฅผ ์ž˜๋ชปํ•ด ์—ฌ๋Ÿฌ๋ฒˆ ์‹คํ–‰ํ•˜๋ฉด ์ผ๋ถ€๊ฐ€ ์ค‘๋ณต๋œ๋‹ค.
  • ๋‚˜์ค‘์— ํŒฉํŠธ ํ…Œ์ด๋ธ”์„ ๋‹ค์‹œ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์˜ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค.

์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚  ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ” ํŒŒํ‹ฐ์…”๋‹์„ ๊ธฐ์ˆ ํ•œ๋‹ค.

ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ์—ฌ๋Ÿฌ ๋ฌผ๋ฆฌ์ ์ธ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋‚˜๋ˆ”์œผ๋กœ ํŒŒํ‹ฐ์…˜ ๋‹จ์œ„๋กœ ์ •๋ฆฌํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ด๋‹ค.

 

๋ฐ์ดํ„ฐ ๋งˆํŠธ์˜ ์น˜ํ™˜

ํ…Œ์ด๋ธ” ํŒŒํ‹ฐ์…”๋‹์€ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.

ํŒฉํŠธ ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ์น˜ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์€ ์žฅ์ ์ด ์žˆ๋‹ค.

  • ์ค‘๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต๋˜๊ฑฐ๋‚˜ ๋น ๋œจ๋ฆด ๊ฐ€๋Šฅ์„ฑ์ด ๊ฑฐ์˜ ์—†๋‹ค.
  • ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ๋“ฑ์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์œ ์ผํ•˜๊ฒŒ ์šฐ๋ ค๋˜๋Š” ๊ฒƒ์€ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด๋‹ค.

์ง‘๊ณ„ ํ…Œ์ด๋ธ”

ํŒฉํŠธ ํ…Œ์ด๋ธ”์„ ์–ด๋А ์ •๋„ ๋ชจ์•„ ์ง‘๊ณ„ํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ํฌ๊ฒŒ ์ค„์–ด๋“ ๋‹ค.

→ ์ด๊ฒƒ์„ ์ง‘๊ณ„ ํ…Œ์ด๋ธ” ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์Šค๋ƒ…์ƒท ํ…Œ์ด๋ธ”

๋งˆ์Šคํ„ฐ ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ์—…๋ฐ์ดํŠธ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด์„œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์•ˆ์ด ์žˆ๋‹ค.

  1. ์ •๊ธฐ์ ์œผ๋กœ ํ…Œ์ด๋ธ”์„ ํ†ต์งธ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ฅผ ‘์Šค๋ƒ…์ƒท ํ…Œ์ด๋ธ”’ ์ด๋ผ๊ณ  ํ•œ๋‹ค
  2. ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ณ€๊ฒฝ ๋‚ด์šฉ๋งŒ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ‘์ด๋ ฅ ํ…Œ์ด๋ธ”’์ด๋ผ๊ณ  ํ•œ๋‹ค
  • ์Šค๋ƒ…์ƒท ํ…Œ์ด๋ธ”์€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ ์  ์ปค์ง€๋ฏ€๋กœ ์ผ์ข…์˜ ํŒฉํŠธ ํ…Œ์ด๋ธ”๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.
  • ๋‹ค๋ฅธ ํŒฉํŠธ ํ…Œ์ด๋ธ”๊ณผ ๊ฒฐํ•ฉํ•จ์œผ๋กœ์จ ๋””๋ฉ˜์ „ ํ…Œ์ด๋ธ”๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์Šค๋ƒ…์ƒท์€ ํŠน์ • ์‹œ์ ์˜ ํ…Œ์ด๋ธ”์˜ ์ƒํƒœ๋ฅผ ๊ธฐ๋กํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜์ค‘์— ๋‹ค์‹œ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค. ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ๋‚˜ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์™€ ๊ฐ™์€ ์˜๊ตฌ์ ์ธ ์ €์žฅ์†Œ์— ๋ณด๊ด€ํ•˜์—ฌ ์‚ญ์ œ๋˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•œ๋‹ค.

*์ด๋ ฅ ํ…Œ์ด๋ธ” ๋ณด๋‹ค๋Š” ๋งˆ์Šคํ„ฐ ๊ด€๊ณ„์˜ ํ…Œ์ด๋ธ”์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งค์ผ ์Šค๋ƒ…์ƒท ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋˜ ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€๋งŒ, ์–ด๋А ์ˆœ๊ฐ„๋ถ€ํ„ฐ๋Š” ๋งˆ์Šคํ„ฐ ํ…Œ์ด๋ธ”์„ ๋ณต์›ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์›Œ ์ง„๋‹ค.


3-4 ์š”์•ฝ

  • ๊ทธ๋ƒฅ ๊ทธ๋Œ€๋กœ DW์—์„œ ๊ฐ€์ ธ์˜ฌ ๋•Œ ‘๋น„๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ’ ๋˜๋Š” ‘์Šคํ‚ค๋งˆ๋ฆฌ์Šค ๋ฐ์ดํ„ฐ’๋“ฑ์„ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ์—์„œ ‘๋ถ„์‚ฐ์ฒ˜๋ฆฌ’ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์š”๊ตฌ๋œ๋‹ค.
  • ํ•˜๋‘ก๊ณผ ์ŠคํŒŒํฌ๊ฐ€ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋„๋ฆฌ ์ด์šฉ๋˜๊ณ  ์žˆ๋‹ค.
  • ํ•˜๋‘ก์€ ๋ถ„์‚ฐํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž ๊ทธ๋ฆฌ๊ณ  MapReduce์— ์˜ํ•œ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์ด๋ฅด๋Š” ์ข…ํ•ฉ์ ์ธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋งŽ์€ ๋ถ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ณตํ†ต ํ”Œ๋žซํผ์ด๋‹ค.
  • ์ŠคํŒŒํฌ๋Š” ‘๋Œ€๋Ÿ‰์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™œ์šฉํ•œ ๊ณ ์†์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋ฐ˜’ ์ด๋ฏ€๋กœ MapReduce๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ‘๋ถ„์‚ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ’์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
  • Hive๋Š” ๋””์Šคํฌ ์ƒ ์—์„œ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๊ทœ๋ชจ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ์— ์œ ์šฉํ•˜๋‹ค.
  • Presto๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ ์—์„œ ๊ณ ์† ์ง‘๊ณ„์— ํŠนํ™”๋˜์–ด ์žˆ์–ด ๋Œ€ํ™”ํ˜• ์ฟผ๋ฆฌ ์‹คํ–‰์— ์ ํ•ฉํ•˜๋‹ค.
  • ‘๋ฐ์ดํ„ฐ ๊ตฌ์กฐํ™”’๋งŒ ์ž˜๋˜์–ด ์žˆ์œผ๋ฉด ๊ทธ ํ›„ DW์™€ ๊ฐ™์€ ๊ฐœ๋…์œผ๋กœ ๋ฐ์ดํ„ฐ ๋งˆํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŒฉํŠธ ํ…Œ์ด๋ธ”๊ณผ ๋””๋ฉ˜์ „ ํ…Œ์ด๋ธ”์„ ์ค€๋น„ํ•˜๊ณ  ๊ทธ๊ฒƒ๋“ค์„ ๊ฒฐํ•ฉ,์ง‘๊ณ„ ํ•˜๋ฉด์„œ ์‹œ๊ฐํ™”์— ์ ํ•ฉํ•œ ๋น„์ •๊ทœํ™” ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ ๋‹ค.
  • ๋””๋ฉ˜์ „์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ํ‰์†Œ ์ •๊ธฐ์ ์ธ ์Šค๋ƒ…์ƒท์œผ๋กœ ์ด๋ ฅ์„ ์ถ•์ ํ•ด๋‘”๋‹ค.
  • ๋””๋ฉ˜์ „์˜ ‘์นด๋””๋„๋ฆฌํ‹ฐ’๋งŒ ์ž‘์•„์ง€๋ฉด ๋น„์ •๊ทœํ™” ํ…Œ์ด๋ธ”์€ ์ž‘๊ฒŒ ์ง‘์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

*์ถœ์ฒ˜ - ๋น…๋ฐ์ดํ„ฐ๋ฅผ ์ง€ํƒฑํ•˜๋Š” ๊ธฐ์ˆ  / ์ €์ž: ๋‹ˆ์‹œ๋‹ค ์ผ€์ด์Šค์ผ€ / ์ถœํŒ: ์ œ์ดํŽ