๋ฐ์ดํฐ ์์ง๋์ด๋ก ์ด์๋จ๊ธฐ - ๋น ๋ฐ์ดํฐ์ ๊ด๋ฆฌ์ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ ๋ฐ์ ์ธ ๊ธฐ์
๋ฐ์ดํฐ ์์ง๋์ด๋ก์ ํ์ํ ๊ธฐ์ ์ ๋ํด ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง๋ํ๊ฒ ๊ณต๋ถํด๋ณด๋ ค ํฉ๋๋ค.
์ ๋ฆฌ๋ ๋ด์ฉ์ [๋น ๋ฐ์ดํฐ๋ฅผ ์งํฑํ๋ ๊ธฐ์ ] ๋์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
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 ๋ฑ ์๊ฐํ ๋๊ตฌ๋ก ํฌ๋ก์ค ์ง๊ณ
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 ๋ฑ
์ฒ๋ฆฌ๋๊ณผ ์ง์ฐ์๊ฐ
- ์ฒ๋ฆฌ๋(Throughput) : ์ผ์ ์๊ฐ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐ์ดํฐ์ ์
- ๋ฐฐ์น ์ฒ๋ฆฌ ๋ฑ์ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์์ ์ค์ํจ (๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค, ๋ฐ์ดํฐ ๋ ์ดํฌ ๋ฑ)
- ์ง์ฐ์๊ฐ(Latency) : ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ๋๋ ๋๊น์ง์ ๋๊ธฐ ์๊ฐ
- ์ ๋ ํ ๋ฐ์ดํฐ ๋ถ์ ๋ฑ์์ ์ค์ํจ (๋ฐ์ดํฐ ๋งํธ)
2. ํ ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ฐ์ดํฐ ๋ถ์์ ์ํด์๋ ํน์ ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ํ ๋ฐ์ดํฐ ๊ฐ๋ค์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์. ํ ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ถํ์ํ ์ด๊น์ง ๋์คํฌ๋ก๋ถํฐ ๋ก๋๋จ
1. ํ ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ผ๋ฐ์ ์ธ RDB์์๋ ํ ๋จ์(๋ ์ฝ๋)๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ
- ๋ฐ์ดํฐ ์ฐ๊ธฐ ์์ ์ ํ์ผ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋ฏ๋ก ๋น ๋ฅด๊ฒ ์ฐ๊ธฐ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ ๋ถ์์ ์ํด์๋ ํน์ ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ํ ๋ฐ์ดํฐ ๊ฐ๋ค์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์. ํ ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ถํ์ํ ์ด๊น์ง ๋์คํฌ๋ก๋ถํฐ ๋ก๋๋๋ค๋ ๋จ์ ์ด ์์.
2. ์ด ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ฐ์ดํฐ๋ฅผ ์ปฌ๋ผ ๋ณ๋ก ๋ณด๊ดํ๊ณ ์ง๊ณ ์ ๊ด๋ จ๋ ์ปฌ๋ผ๋ง ์ฝ์ด๋ค์
- ๋ฐ์ดํฐ ๋ถ์์ ์ํ ์ง๊ณ์๋ ๋งค์ฐ ํจ์จ์ ์ด๋, ๋ฐ์ดํฐ ์ ์ฅ ์์๋ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆผ
- ๋ฐ์ดํฐ ์์ถ ํจ์จ ์ฐ์ : ๋์ผํ ์นผ๋ผ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ ๊ทธ ํํ์ ๊ฐ์ด ์ ์ฌํจ
3. MPP ์ํคํ ์ฒ
1. ๋ฉํฐ ์ฝ์ด๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋ณ๋ ฌํ
- ํ๋์ ์ฟผ๋ฆฌ๋ฅผ ๋ค์์ ์์ ํ์คํฌ๋ก ๋ถํดํ ๋ค ๋ณ๋ ฌ ์คํ
- ex) 1์ต ๋ ์ฝ๋๋ก ์ด๋ฃจ์ด์ง ํ ์ด๋ธ์ ํฉ๊ณ(sum()) : ๋ ์ฝ๋๋ฅผ 10๋ง ๋ ์ฝ๋์ฉ ์ชผ๊ฐ์ด 1000๋ฒ์ sum() ์์ ์ ๊ฐ๋ณ์ ์ผ๋ก ์ํํ ๋ค, ๋ชจ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์ด ํฉ๊ณ๋ฅผ ๊ณ์ฐํจ
-
์ด๋ฅผ ์ํด ๋ค์ 3๊ฐ์ง ๊ณ ๋ คํด์ผํจ
- (1) ๋ฉํฐ CPU ์ฝ์ด ์
- (2) ๋ถ์ฐ ๋์คํฌ ์
- (3) ๋์คํฌ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ท ํ์๊ฒ ๋ถ์ฐํ๊ธฐ
2. MPP ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํํ ์ฟผ๋ฆฌ ์์ง
- MPP ๋ฐ์ดํฐ๋ฒ ์ด์ค
- CPU์ ๋์คํฌ์ ๊ท ํ ์๋ ์ค์ผ์ผ ์์์ ์ํด ํ๋์จ์ด์ ์ํํธ์จ์ด๊ฐ ํตํฉ๋ ์ ํ์ผ๋ก ์ ๊ณต
- ํ๋์จ์ด๋ง ๊ตฌ๋งคํ๋ฉด ์์์ ๋ฐ์ดํฐ ์ง๊ณ์ ์ต์ ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ฌ๋์ด ์์
- ๋ํํ ์ฟผ๋ฆฌ ์์ง
- Hadoop๊ณผ ๊ฐ์ ๋ถ์ฐ ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ์ฌ์ฉ
- Hadoop์ ์ด ์งํฅ ์คํ ๋ฆฌ์ง๋ฅผ ๋ง๋ค์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ๊ด๊ฑด(๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฉ ๋ฑ)
๋ฆฌ์์ค ์๋น ์ ํํ๊ธฐ
- ํน์ ์ฌ์ฉ์๊ฐ ์ฐ๋ ๊ธฐ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉด CPU๋ฅผ ์ ์ ํ์ฌ ์์คํ ๊ณผ๋ถํ๊ฐ ๋ฐ์ํ๋ ์๊ฐ ์์
- ๋ฐ๋ผ์ ์ฌ์ฉ์ ๋ณ ์ฌ์ฉ ๋ฆฌ์์ค๋ฅผ ์ ํํ๋๋ก ์๊ณ ๋ฆฌ์ฆ์ด๋ ๋ชจ๋ํฐ๋ง ํ๋ก์ธ์ค๊ฐ ํ์ํจ