๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋กœ ์‚ด์•„๋‚จ๊ธฐ - ๋น…๋ฐ์ดํ„ฐ์— ๊ด€๋ฆฌ์™€ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ „๋ฐ˜์ ์ธ ๊ธฐ์ˆ 

๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋กœ์„œ ํ•„์š”ํ•œ ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง„๋“ํ•˜๊ฒŒ ๊ณต๋ถ€ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.

์ •๋ฆฌ๋œ ๋‚ด์šฉ์€ [๋น…๋ฐ์ดํ„ฐ๋ฅผ ์ง€ํƒฑํ•˜๋Š” ๊ธฐ์ˆ ] ๋„์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

2-1. ํฌ๋กœ์Šค ์ง‘๊ณ„์˜ ๊ธฐ๋ณธ

1. ํฌ๋กœ์Šค ์ง‘๊ณ„์˜ ๊ฐœ๋…

1. ํฌ๋กœ์Šค ํ…Œ์ด๋ธ”(Cross Table)

  • ํ–‰๊ณผ ์—ด์ด ๊ต์ฐจํ•˜๋Š” ๋ถ€๋ถ„(cross)์— ์ˆซ์ž ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ํ…Œ์ด๋ธ”
  • ์ฃผ๋กœ ์—‘์…€ ๋“ฑ์˜ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์—์„œ ํ…Œ์ด๋ธ”์„ ํ‘œํ˜„ํ•˜๋Š” ํ˜•ํƒœ
  • ์‚ฌ๋žŒ์ด ํ•ด์„ํ•˜๊ธฐ๋Š” ํŽธํ•˜๋‚˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ค์›€

    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋  ๋•Œ ํ–‰์ด ์ถ”๊ฐ€๋จ. ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ํ…Œ์ด๋ธ” ์ •์˜ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ์–ด๋ ค์›€.

2. ํŠธ๋žœ์žญ์…˜ ํ…Œ์ด๋ธ”(Transaction Table)

  • ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๋  ๋•Œ ํ–‰ ๋ฐฉํ–ฅ์œผ๋กœ ์ถ”๊ฐ€๋˜๋Š” ํ˜•ํƒœ์˜ ํ…Œ์ด๋ธ”
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ํ˜•ํƒœ

3. ํฌ๋กœ์Šค ์ง‘๊ณ„(Cross Tabulation)

  • ํฌ๋กœ์Šค ํ…Œ์ด๋ธ”์—์„œ ํŠธ๋žœ์žญ์…˜ ํ…Œ์ด๋ธ”๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •

2. ํฌ๋กœ์Šค ์ง‘๊ณ„์˜ ๋ฐฉ๋ฒ•

(1) ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ : ํฌ๋กœ์Šค ํ…Œ์ด๋ธ” ๊ธฐ๋Šฅ ํ™œ์šฉ (2) BI ๋„๊ตฌ : ๋ฃฉ์—… ํ…Œ์ด๋ธ” ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ํ…Œ์ด๋ธ” ์กฐ์ธ ํ›„ BI ํˆด ๋‚ด์—์„œ ํฌ๋กœ์Šค ์ง‘๊ณ„ (3) ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด : Pandas์˜ merge() ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ํ…Œ์ด๋ธ” ์กฐ์ธ ํ›„ pivot_table() ๊ธฐ๋Šฅ์œผ๋กœ ํฌ๋กœ์Šค ์ง‘๊ณ„

3. ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ํฌ๋กœ์Šค ์ง‘๊ณ„

1. ๋ฐ์ดํ„ฐ ์ง‘๊ณ„์™€ ์‹œ๊ฐํ™” ํ”„๋กœ์„ธ์Šค์˜ ๋ถ„๋ฆฌ

  • ์ˆ˜๋ฐฑ๋งŒ ๋ ˆ์ฝ”๋“œ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋Š” ํฌ๋กœ์Šค ์ง‘๊ณ„๊ฐ€ ์–ด๋ ค์›€
  • ๋”ฐ๋ผ์„œ (1) ๋ฐ์ดํ„ฐ ์ง‘๊ณ„์˜ ํ”„๋กœ์„ธ์Šค ์ดํ›„ (2) ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”์˜ ํ”„๋กœ์„ธ์Šค ์™€ ๊ฐ™์ด 2๋‹จ๊ณ„๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ง‘๊ณ„ ๋ฐ ๋ถ„์„ํ•ด์•ผ ํ•จ

    • ๋ฐ์ดํ„ฐ ์ง‘๊ณ„์˜ ํ”„๋กœ์„ธ์Šค : SQL๋กœ ์ง‘๊ณ„
    • ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ํ”„๋กœ์„ธ์Šค : BI ๋“ฑ ์‹œ๊ฐํ™” ๋„๊ตฌ๋กœ ํฌ๋กœ์Šค ์ง‘๊ณ„

Data Mart

2. ๋ฐ์ดํ„ฐ ๋งˆํŠธ์˜ ๊ทœ๋ชจ

  • ๋ฐ์ดํ„ฐ ์ง‘๊ณ„์™€ ์‹œ๊ฐํ™” ์‚ฌ์ด์— ์กด์žฌํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ์˜ ์›์ฒœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ ๋ฐ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•จ
  • ๋ฐ์ดํ„ฐ ๋งˆํŠธ์˜ ๊ทœ๋ชจ์— ๋”ฐ๋ฅธ ํŠธ๋ ˆ์ด๋“œ ์˜คํ”„(trade off)

    • ๋ฐ์ดํ„ฐ ๋งˆํŠธ๊ฐ€ ์ž‘์„์ˆ˜๋ก ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ„๋‹จํ•˜์ง€๋งŒ, ๊ทธ๋งŒํผ ์‹œ๊ฐํ™”์— ํ™œ์šฉํ• ๋งŒํ•œ ์›์ฒœ ์ •๋ณด๋„ ์ ์Œ
    • ๋ฐ˜๋Œ€๋กœ ๋ฐ์ดํ„ฐ ๋งˆํŠธ๊ฐ€ ์ปค์ง€๋ฉด, ์‹œ๊ฐํ™” ์„ฑ๋Šฅ์ด ๋–จ์–ด์ ธ ํ™œ์šฉ๋„๊ฐ€ ๋‚ฎ์Œ
  • ๋ฐ์ดํ„ฐ ๋งˆํŠธ๋Š” ์ง€์—ฐ์ด ์ ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๊ตฌ์„ฑํ•ด์•ผํ•จ

2-2. ์—ด ์ง€ํ–ฅ ์Šคํ† ๋ฆฌ์ง€์— ์˜ํ•œ ๊ณ ์†ํ™”

๋ฉ”๋ชจ๋ฆฌ์— ๋‹ค ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š์„ ์ •๋„์˜ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ ์†ํžˆ ์ง‘๊ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘๊ณ„์— ์ ํ•ฉํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•จ. ์ง‘๊ณ„ ํšจ์œจ์ด ๋†’์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ์ฐพ์•„์•ผ ํ•จ.

1. ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์˜ ์ง€์—ฐ์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•

1. ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ(RDB)

  • ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ์ ์„ ๋•Œ ์ ํ•ฉ(์ˆ˜์ฒœ๋งŒ ๋ ˆ์ฝ”๋“œ ์ดํ•˜)
  • RDB๋ฅผ ์ด์šฉํ•˜๋˜, ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์„œ ์ฒ˜๋ฆฌํ•จ
  • RDB๋Š” ์ง€์—ฐ์ด ์ ๊ณ , ๋งŽ์€ ์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ์˜ ๋™์‹œ ์ ‘์† ๋Œ€์‘ ๊ฐ€๋Šฅ
  • ๋‹จ, ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•  ๊ฒฝ์šฐ ๋””์Šคํฌ I/O๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๊ณ  ์„ฑ๋Šฅ์ด ์ €ํ•˜๋จ
  • MySQL, PostgreSQL ๋“ฑ

2. โ€˜์••์ถ•โ€™๊ณผ โ€˜๋ถ„์‚ฐโ€™์— ์˜ํ•ด ์ง€์—ฐ ์ค„์ด๊ธฐ(MPP ๊ธฐ์ˆ )

  • ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๋งŽ์„ ๋•Œ ์ ํ•ฉ(์ˆ˜์–ต ๋ ˆ์ฝ”๋“œ ์ด์ƒ)
  • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋Šฅํ•œ ์ž‘๊ฒŒ ์••์ถ•ํ•˜๊ณ , ์—ฌ๋Ÿฌ ๋””์Šคํฌ์— ๋ถ„์‚ฐํ•˜์—ฌ ๋กœ๋“œ ์ง€์—ฐ์„ ์ค„์ž„
  • MPP(Massive Parallel Processing, ๋Œ€๊ทœ๋ชจ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ) : ๋ฉ€ํ‹ฐ ์ฝ”์–ด๊ฐ€ ๋ณ‘๋ ฌ์ ์œผ๋กœ ๋ถ„์‚ฐ๋œ ๋””์Šคํฌ์˜ I/O๋ฅผ ์ฒ˜๋ฆฌํ•จ
  • Amazon Redshift, Google BigQuery ๋“ฑ

์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ์ง€์—ฐ์‹œ๊ฐ„

  1. ์ฒ˜๋ฆฌ๋Ÿ‰(Throughput) : ์ผ์ • ์‹œ๊ฐ„์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘
  2. ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ๋“ฑ์˜ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์—์„œ ์ค‘์š”ํ•จ (๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค, ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ ๋“ฑ)
  3. ์ง€์—ฐ์‹œ๊ฐ„(Latency) : ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€์˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„
  4. ์• ๋“œ ํ›… ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋“ฑ์—์„œ ์ค‘์š”ํ•จ (๋ฐ์ดํ„ฐ ๋งˆํŠธ)

2. ํ–‰ ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ด ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•ด์„œ๋Š” ํŠน์ • ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ. ํ–‰ ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ถˆํ•„์š”ํ•œ ์—ด๊นŒ์ง€ ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ๋กœ๋“œ๋จ

1. ํ–‰ ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ์ผ๋ฐ˜์ ์ธ RDB์—์„œ๋Š” ํ–‰ ๋‹จ์œ„(๋ ˆ์ฝ”๋“œ)๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•จ
  • ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ ์ž‘์—… ์‹œ ํŒŒ์ผ ๋์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋˜๋ฏ€๋กœ ๋น ๋ฅด๊ฒŒ ์“ฐ๊ธฐ ๊ฐ€๋Šฅ
  • ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•ด์„œ๋Š” ํŠน์ • ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ. ํ–‰ ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ถˆํ•„์š”ํ•œ ์—ด๊นŒ์ง€ ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ๋กœ๋“œ๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Œ.

2. ์—ด ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ปฌ๋Ÿผ ๋ณ„๋กœ ๋ณด๊ด€ํ•˜๊ณ  ์ง‘๊ณ„ ์‹œ ๊ด€๋ จ๋œ ์ปฌ๋Ÿผ๋งŒ ์ฝ์–ด๋“ค์ž„
  • ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ์ง‘๊ณ„์—๋Š” ๋งค์šฐ ํšจ์œจ์ ์ด๋‚˜, ๋ฐ์ดํ„ฐ ์ €์žฅ ์‹œ์—๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆผ
  • ๋ฐ์ดํ„ฐ ์••์ถ• ํšจ์œจ ์šฐ์ˆ˜ : ๋™์ผํ•œ ์นผ๋Ÿผ์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ทธ ํ˜•ํƒœ์™€ ๊ฐ’์ด ์œ ์‚ฌํ•จ

3. MPP ์•„ํ‚คํ…์ฒ˜

1. ๋ฉ€ํ‹ฐ ์ฝ”์–ด๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์˜ ๋ณ‘๋ ฌํ™”

  • ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ๋ฅผ ๋‹ค์ˆ˜์˜ ์ž‘์€ ํƒœ์Šคํฌ๋กœ ๋ถ„ํ•ดํ•œ ๋’ค ๋ณ‘๋ ฌ ์‹คํ–‰
  • ex) 1์–ต ๋ ˆ์ฝ”๋“œ๋กœ ์ด๋ฃจ์–ด์ง„ ํ…Œ์ด๋ธ”์˜ ํ•ฉ๊ณ„(sum()) : ๋ ˆ์ฝ”๋“œ๋ฅผ 10๋งŒ ๋ ˆ์ฝ”๋“œ์”ฉ ์ชผ๊ฐœ์–ด 1000๋ฒˆ์˜ sum() ์ž‘์—…์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ ๋’ค, ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„ ์ด ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•จ
  • ์ด๋ฅผ ์œ„ํ•ด ๋‹ค์Œ 3๊ฐ€์ง€ ๊ณ ๋ คํ•ด์•ผํ•จ

    • (1) ๋ฉ€ํ‹ฐ CPU ์ฝ”์–ด ์ˆ˜
    • (2) ๋ถ„์‚ฐ ๋””์Šคํฌ ์ˆ˜
    • (3) ๋””์Šคํฌ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ท ํ˜•์žˆ๊ฒŒ ๋ถ„์‚ฐํ•˜๊ธฐ

2. MPP ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋Œ€ํ™”ํ˜• ์ฟผ๋ฆฌ ์—”์ง„

  1. MPP ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  2. CPU์™€ ๋””์Šคํฌ์˜ ๊ท ํ˜• ์žˆ๋Š” ์Šค์ผ€์ผ ์•„์›ƒ์„ ์œ„ํ•ด ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํ†ตํ•ฉ๋œ ์ œํ’ˆ์œผ๋กœ ์ œ๊ณต
  3. ํ•˜๋“œ์›จ์–ด๋งŒ ๊ตฌ๋งคํ•˜๋ฉด ์•Œ์•„์„œ ๋ฐ์ดํ„ฐ ์ง‘๊ณ„์— ์ตœ์ ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํƒ‘์žฌ๋˜์–ด ์žˆ์Œ
  4. ๋Œ€ํ™”ํ˜• ์ฟผ๋ฆฌ ์—”์ง„
  5. Hadoop๊ณผ ๊ฐ™์€ ๋ถ„์‚ฐ ์Šคํ† ๋ฆฌ์ง€์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ ์‚ฌ์šฉ
  6. Hadoop์— ์—ด ์ง€ํ–ฅ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๊ด€๊ฑด(๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ ๋“ฑ)

๋ฆฌ์†Œ์Šค ์†Œ๋น„ ์ œํ•œํ•˜๊ธฐ

  • ํŠน์ • ์‚ฌ์šฉ์ž๊ฐ€ ์“ฐ๋ ˆ๊ธฐ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด CPU๋ฅผ ์ ์œ ํ•˜์—ฌ ์‹œ์Šคํ…œ ๊ณผ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ˆ˜๊ฐ€ ์žˆ์Œ
  • ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž ๋ณ„ ์‚ฌ์šฉ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œํ•œํ•˜๋„๋ก ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”ํ•จ