๋ฐ์ดํฐ ์ค์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ค๊ณ #6์ฅ
ํํฐ์ ๋
๋ฐ์ดํฐ ์ ์ด ๋งค์ฐ ํฌ๊ฑฐ๋ ์ง์ ์ฒ๋ฆฌ๋์ด ๋๋ค๋ฉด ๋ณต์ ๋ง์ผ๋ก ๋ถ์กฑํ๊ณ ๋ฐ์ดํฐ๋ฅผ ํํฐ์ ์ผ๋ก ์ชผ๊ฐค ํ์๊ฐ ์๋ค.
๋ชฉ์
: ๋ฐ์ดํฐ์ ์ง์ ๋ถํ๋ฅผ ๋ ธ๋ ์ฌ์ด์ ๊ณ ๋ฅด๊ฒ ๋ถ์ฐ ์ํค๋ ๊ฒ- ๊ฐ ๋ ธ๋์์ ์์ ์ ํํฐ์ ์ ํด๋นํ๋ ์ง์๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์คํ ๊ฐ๋ฅ → ๋ ธ๋๋ฅผ ์ถ๊ฐํ์ฌ ์ง์ ์ฒ๋ฆฌ๋์ ๋๋ฆด ์ ์๋ค.
ํํฐ์ ๋์ ์ฃผ๋ ๋ชฉ์
ํ์ฅ์ฑ
- ๋น๊ณต์ ํด๋ฌ์คํฐ์์ ํํฐ์ ์ ์๋ก ๋ค๋ฅธ ๋ ธ๋์ ์ ์ฅ๋ ์ ์๋ค. ์ฆ ๋์ฉ๋ ๋ฐ์ดํฐ์ ์ด ์ฌ๋ฌ ๋์คํฌ์ ๋ถ์ฐ๋ ์ ์์ด ์ง์ ๋ถํ๋ ์ฌ๋ฌ ํ๋ก์ธ์ค์ ๋ถ์ฐ๋๋ค.
- ๋ก๊ทธ ๋ฐ์ดํฐ์ ํจ์จ์ ์ธ ๊ด๋ฆฌ
- ๋ถํ์ํ ๋ฐ์ดํฐ ์ญ์ ์์ ์ ๋จ์ํ ํํฐ์ ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ ์์ผ๋ก ๊ฐ๋จํ ํด๊ฒฐํ ์ ์๋ค.
ํํฐ์ ๋๊ณผ ๋ณต์
- ๋ณต์ ์ ํํฐ์
๋์ ํจ๊ป ์ ์ฉํด ๊ฐ ํํฐ์
์ ๋ณต์ฌ๋ณธ์ ์ฌ๋ฌ ๋
ธ๋์ ์ ์ฅ
- ๊ฐ ๋ ์ฝ๋๋ ์ ํํ ํ ํํฐ์
์ ์ํ๋๋ผ๋, ์ฌ๋ฌ ๋ค๋ฅธ ๋
ธ๋์ ์ ์ฅํด์
๋ด๊ฒฐํจ์ฑ
์ ๋ณด์ฅํ ์ ์๋ค.
- ๊ฐ ๋ ์ฝ๋๋ ์ ํํ ํ ํํฐ์
์ ์ํ๋๋ผ๋, ์ฌ๋ฌ ๋ค๋ฅธ ๋
ธ๋์ ์ ์ฅํด์
- ํ ๋
ธ๋์ ์ฌ๋ฌ ํํฐ์
์ ์ ์ฅํ ์๋ ์๋ค.
๋ฆฌ๋ ํ๋ก์
๋ณต์ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ํํฐ์ ๋๊ณผ ๋ณต์ ์ ์กฐํฉ์ ์๋ ์ด๋ฏธ์ง ๊ฐ์ ํํ๊ฐ ๋๋ค.- ๊ฐ ํํฐ์ ์ ๋ฆฌ๋๋ ํ๋์ ๋ ธ๋์ ํ ๋น๋๊ณ ํ๋ก์๋ ๋ค๋ฅธ ๋ ธ๋์ ํ ๋น๋๋ค.
- ๊ฐ ๋ ธ๋๋ ์ด๋ค ํํฐ์ ์๊ฒ๋ ๋ฆฌ๋์ด๋ฉด์ ๋ค๋ฅธ ํํฐ์ ์๊ฒ๋ ํ๋ก์๊ฐ ๋๋ค.
ํค-๊ฐ ๋ฐ์ดํฐ ํํฐ์ ๋
skewed (์ ๋ ธ๋ค)
: Partitioning ์ด ๊ณ ๋ฅด๊ฒ ์ด๋ค์ง์ง ์์ ๋ค๋ฅธ ํํฐ์
๋ณด๋ค ๋ฐ์ดํฐ๊ฐ ๋ง๊ฑฐ๋ ์ง์๋ฅผ ๋ง์ด ๋ฐ๋ ํํฐ์
์ด ์๋ ๊ฒฝ์ฐ → ์ ๋ฆผ์ด ์์ผ๋ฉด ํํฐ์
๋์ ํจ๊ณผ๊ฐ ๋งค์ฐ ๋จ์ด์ง
- ๊ทน๋จ์ ๊ฒฝ์ฐ ๋ชจ๋ ๋ถํ๊ฐ ํ ํํฐ์ ์ ๋ชฐ๋ ค 10๊ฐ ์ค 9๊ฐ ๋ ธ๋๋ ์ ํด ์ํ์ ์๊ณ ์์ฒญ์ ๋ฐ๋ ๋ ธ๋ ํ๋๊ฐ ๋ณ๋ชฉ์ด ๋ ์ ์๋ค.
ํซ์คํ
: ๋ถ๊ท ํํ๊ฒ ๋ถํ๊ฐ ๋์ ํํฐ์ ์ ์ง์นญํ๋ ์ฉ์ด- ํซ์คํ ํํผ ๋ฐฉ๋ฒ → ๋ ์ฝ๋๋ฅผ ํ ๋นํ ๋ ธ๋๋ฅผ ๋ฌด์์๋ก ์ ์ → ๋ ์ฝ๋๋ ๊ท ๋ฑํ๊ฒ ๋ถ์ฐ๋์ง๋ง, ์ง์๋ฅผ ํ ๋ ์ด๋ ๋ ธ๋์ ๋ฐ์ดํฐ๊ฐ ์๋์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ ธ๋์ ๋ณ๋ ฌ๋ก ์ง์๋ฅผ ๋ ๋ ค์ผ ํ๋ค.
ํค ๋ฒ์ ๊ธฐ์ค ํํฐ์ ๋
- ๊ฐ ํํฐ์
์ ์ฐ์๋ ๋ฒ์์ ํค๋ฅผ ํ ๋นํ๋ ๊ฒ
- ์ด๋ค ํํฐ์ ์ด ์ด๋ ๋ ธ๋์ ํ ๋น๋๋์ง ์๋ฉด ์ ์ ํ ๋ ธ๋๋ก ์์ฒญ์ ์ง์ ๋ณด๋ผ ์ ์๋ค.
- ex) ์ด๋ค ์ต์๊ฐ์์ ์ต๋๊ฐ๊น์ง
- ํค ๋ฒ์ ํฌ๊ธฐ๊ฐ ๋ฐ๋์ ๋์ผํ ํ์๋ ์๋ค.
์ฅ์
- ๊ฐ ํํฐ์
๋ด์์๋ ํค๋ฅผ ์ ๋ ฌ๋ ์์๋ก ์ ์ฅ ๊ฐ๋ฅ(SS Table, LSM Tree)
- ๋ฒ์ ์ค์บ์ด ์ฌ์์ง๋ค.
๋จ์
- ํน์ ํ ์ ๊ทผ ํจํด์ด
ํซ์คํ
์ ์ ๋ฐํ๋ ๋จ์ ์กด์ฌํ๋ค.- ์์ ์ดํด๊ฐ ์๋๋ค (203pg ๋๋ฒ์งธ ๋ฌธ๋จ)
- ์ฐ๊ธฐ ์ฐ์ฐ์ด ๋ชจ๋ ํน์ ํ ํํฐ์ ์ผ๋ก ์ ๋ฌ๋์ด ํด๋น ํํฐ์ ๋ง ๊ณผ๋ถํ ๊ฑธ๋ฆฌ๊ณ ๋ค๋ฅธ ํํฐ์ ์ ์ ํด ์ํ๋ก ๋จ์ ์ ์๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๊ณ ๋ฅด๊ฒ ๋ถ์ฐ์ํค๋ ค๋ฉด ํํฐ์ ๊ฒฝ๊ณ๋ฅผ ๋ฐ์ดํฐ์ ๋ง์ถฐ ์กฐ์ ํด์ผ ํ๋ค.
ํค์ ํด์๊ฐ ๊ธฐ์ค ํํฐ์ ๋
- ํค์ ํํฐ์
์ ์ ํ๋๋ฐ ํด์ ํจ์๋ฅผ ์ฌ์ฉ
- ์ ๋ฆผ๊ณผ ํซ์คํ์ ์ํ ํผํ๊ธฐ ์ํด
- ์ข์ ํด์ํจ์๋ ์ ๋ฆฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์(?) ๊ท ์ผํ๊ฒ ๋ถ์ฐ๋๊ฒ ํจ
- ํด์ํจ์๋ฅผ ์ ํ ๋, ๋์ผํ ํค์ ๋ํด์ ๋์ผํ ํด์๊ฐ์ ๋ฐํํด์ผ ํ๋ค (203pg ๋ง์ง๋ง์์ ๋๋ฒ์งธ ๋ฌธ๋จ ์ฐธ์กฐ)
- ํค๋ฅผ ํํฐ์ ์ฌ์ด์ ๊ท ์ผํ๊ฒ ๋ถ์ฐ์ํค๋๊ฒ ์ข๋ค.
- ํํฐ์ ๊ฒฝ๊ณ๋ ํฌ๊ธฐ๊ฐ ๋์ผํ๋๋ก ๋๋ ์๋ ์๊ณ ๋ฌด์์์ ๊ฐ๊น๊ฒ ์ ํํ ์๋ ์๋ค (์ผ๊ด์ฑ ํด์ฑ)
๋จ์
- ๋ฌธ์ ๋ ํค์ ํด์๊ฐ์ ์ฌ์ฉํด์ ํํฐ์ ๋ํ๋ฉด ํค ๋ฒ์ ํํฐ์ ๋์ ์ข์ ์์ฑ์ ์์ด๋ฒ๋ฆฐ๋ค (range ํ์ ๋ถ๊ฐ)
- ์ด์ ์๋ ์ธ์ ํ๋ ํค๋ค์ด ๋ชจ๋ ํํฐ์
์ ํฉ์ด์ ธ ์ ๋ ฌ ์์๊ฐ ์ ์ง๋์ง ์์.
- MongoDB ์์๋ ํด์ ๊ธฐ๋ฐ ์ค๋ฉ ๋ชจ๋๋ฅผ ํ์ฑํํ๋ฉด ๋ฒ์ ์ง์๊ฐ ๋ชจ๋ ํํฐ์ ์ ์ ์ก๋ผ์ผ ํ๋ค.
์ ๋ฆผ ์์ ๋ถํ์ ํซ์คํ ์ํ
- ํค๋ฅผ ํด์ฑํ์ฌ ํํฐ์ ์ ์ ํ๋ฉด ํซ์คํ์ ์ค์ด๋๋ฐ ๋์์ด ๋์ง๋ง ์๋ฒฝํ ์ ๊ฑฐํ ์ ์๋ค.
- ํญ์ ๋์ผํ ํค๋ฅผ ์ฝ๊ณ ์ฐ๋ ๊ทน๋จ์ ์ธ ์ํฉ์์๋ ๋ชจ๋ ์์ฒญ์ด ๋์ผํ ํํฐ์
์ผ๋ก ์ ๋ฆฌ๊ฒ ๋๋ค.
- ex) ์๋ฐฑ๋ง๋ช ์ ํ๋ก์๋ฅผ ์ง๋ ์ธํ๋ฃจ์ธ์์ ์๋ก์ด ๊ฒ์๊ธ์ ๋๊ธ์ด ์ฆํญํ ๋
- ์ด ๊ฒฝ์ฐ ๋์ผํ ํค(ํ๋์ ํํฐ์ ์ด ๊ฐ๋นํ๋)์ ๋ง๋ํ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํด์ผ ํ ์ ์๋ค.
- ์์ฒญ์ด ๋งค์ฐ ์ ๋ฆฌ๋ ํค๋ฅผ ๋ฐ๊ฒฌํ์ ๋ ๊ฐ๋จํ ํด๊ฒฐ์ฑ
์ ๊ฐ ํค์ ์์์ด๋ ๋์ ์์์ ์ซ์๋ฅผ ๋ถ์ด๋ ๊ฒ
- (์ดํด ์๋จ 205pg ๋ฐ์์ ์ธ๋ฒ์งธ ๋ฌธ๋จ)
- ์์์ 10์ง์ ๋ ๊ฐ๋ง ๋ถ์ด๋๋ผ๋ ํ ํค์ ๋ํ ์ฐ๊ธฐ ์์ ์ด 100๊ฐ(์ 100๊ฐ?)์ ๋ค๋ฅธ ํค๋ก ๊ท ๋ฑํ๊ฒ ๋ถ์ฐ → ๊ทธ ํค๋ค์ ๋ค๋ฅธ ํํฐ์ ์ผ๋ก ๋ถ์ฐ๋ ์ ์๋ค.
ํํฐ์ ๋๊ณผ ๋ณด์กฐ ์์ธ
๋ฌธ์ ๊ธฐ์ค ๋ณด์กฐ ์์ธ ํํฐ์ ๋
- ์๋ฅผ ๋ค์ด ์ค๊ณ ์ฐจ ํ๋งค ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์
- ๊ฐ ํญ๋ชฉ์๋ ๋ฌธ์ ID ๊ฐ ์๊ณ DB๋ฅผ ๋ฌธ์ ID ๊ธฐ์ค์ผ๋ก ํํฐ์ ๋
- ์ฐจ๋ฅผ ๊ฒ์ํ ๋ ์์๊ณผ ์ ์กฐ์ฌ๋ก ํํฐ๋งํ ์ ์๊ฒ ํ๋ ค๋ฉด
color
์make
์ ๋ณด์กฐ์์ธ์ ๋ง๋ค์ด์ผ ํ๋ค. - ์์ธ์ ์ ์ธํ๋ฉด DB ๊ฐ ์๋์ผ๋ก ์์ธ ์์ฑ์ ํ ์ ์๋ค.
- ๋นจ๊ฐ์ ์๋์ฐจ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ถ๊ฐ๋๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํํฐ์ ์ ์๋์ผ๋ก ๊ทธ๊ฒ์ color: red ์์ธ ํญ๋ชฉ์ ํด๋นํ๋ ๋ฌธ์ ID ๋ชฉ๋ก์ ์ถ๊ฐ
- ์ด๋ฐ ์์ธ ๋ฐฉ๋ฒ์ ์ฅ์ : ๊ฐ ํํฐ์
์ด ์์ ํ ๋
๋ฆฝ์ ์ผ๋ก ๋์ํจ
- ๊ฐ ํํฐ์ ์ ์์ ์ ๋ณด์กฐ ์์ธ์ ์ ์งํ๋ฉฐ ๊ทธ ํํฐ์ ์ ์ํ๋ ๋ฌธ์๋ง ๋ด๋น
- ๋ค๋ฅธ ํํฐ์ ์ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋์ง ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ค.
- DB ์ ๋ฌธ์ ์ถ๊ฐ, ์ญ์ , ๊ฐฑ์ ๋ฑ ์ฐ๊ธฐ ์์ ์ ์คํํ ๋๋ ์ฐ๋ ค๊ณ ํ๋ ๋ฌธ์ ID ๋ฅผ ํฌํจํ๋ ํํฐ์ ๋ง ๋ค๋ฃจ๋ฉด ๋๋ค.
- ์ด๋ฅผ
์ง์ญ ์์ธ(local index)
๋ผ ๋ถ๋ฅธ๋ค.
- Scatter/Gather
- ํํฐ์ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ชจ๋ ํํฐ์ ์ผ๋ก ์ง์๋ฅผ ๋ณด๋ด ๊ฒฐ๊ณผ๋ฅผ ํฉ์ฐํ๋ ๊ฒ
- ์ฌ๋ฌ ํํฐ์ ์์ ์ง์๋ฅผ ๋ณ๋ ฌ ์คํํ๋๋ผ๋ ์ค์บํฐ/๊ฐ๋๋ ๊ผฌ๋ฆฌ ์ง์ฐ์๊ฐ ์ฆํญ์ด ๋ฐ์ํ๊ธฐ ์ฝ๋ค.
- ๊ทธ๋ผ์๋ ๋ณด์กฐ ์์ธ์ ๋ฌธ์ ๊ธฐ์ค์ผ๋ก ํํฐ์ ๋ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์ฉ์ด(์ ์ญ) ๊ธฐ์ค ๋ณด์กฐ ์์ธ ํํฐ์ ๋
- ๋ชจ๋ ํํฐ์
์ ์กด์ฌํ๋ ๋นจ๊ฐ์ ์๋์ฐจ ์ ๋ณด๋ ๋ณด์กฐ ์์ธ์์ color:red ํญ๋ชฉ์ ์ ์ฅ๋จ
color:red
๋ฅผ ๋น๋กฏํ ์๊น ์์ธ ์์ฒด๋a
๋ถํฐr
๊น์ง๋ ํํฐ์ 0์,s
๋ถํฐz
๊น์ง์ ๊ธ์๋ก ์์ํ๋ ์๊น์ ํํฐ์ 1์ ์ ์ฅ๋๋๋ก ํํฐ์ ๋.
- term-partitioned : ์ฐพ๊ณ ์ ํ๋ ์ฉ์ด์ ๋ฐ๋ผ ์์ธ์ ํํฐ์
์ด ๊ฒฐ์ ๋๋ค.
- ์ฉ์ด ์์ฒด๋ก ํํฐ์ ๋ํ๋ฉด ๋ฒ์ ์ค์บ์ ์ ์ฉํ ๋ฐ๋ฉด,
- ์ฉ์ด์ ํด์๊ฐ์ ์ฌ์ฉํด ํํฐ์ ๋ํ๋ฉด ๋ถํ๊ฐ ์ข ๋ ๊ณ ๋ฅด๊ฒ ๋ถ์ฐ๋๋ค.
- ๋ฌธ์ ํํฐ์
๋ ์์ธ์ ๋นํด ์ ์ญ(์ฉ์ด) ์์ธ์ด ๊ฐ๋ ์ด์ : ์ฝ๊ธฐ ํจ์จ์ฑ UP
- client ๋ ๋ชจ๋ ํํฐ์ ์ ์ค์ผํฐ/๊ฐ๋ ์คํํ ํ์ ์์ด ์ํ๋ ์ฉ์ด๋ฅผ ํฌํจํ๋ ํํฐ์ ์ผ๋ก๋ง ์ฝ๊ธฐ ์์ฒญ ๋ณด๋ด๋ฉด ๋๋ค.
- ๋์ ์ ์ญ ์์ธ์ ์ฐ๊ธฐ๊ฐ ๋๋ฆฌ๊ณ ๋ณต์กํ๋ค๋ ๋จ์ ์กด์ฌ
- ์ ์ญ ๋ณด์กฐ ์์ธ์ ๋๊ฒ ๋น๋๊ธฐ๋ก ๊ฐฑ์ ๋จ
- AWS DynamoDB ๋ ์ ์์ ์ธ ์ํฉ์์ ์ ์ญ ๋ณด์กฐ ์์ธ ๊ฐฑ์ ์ 1์ด๋ ์๊ฑธ๋ฆฌ์ง๋ง, ์ธํ๋ผ ๊ฒฐํจ ์๊ธฐ๋ฉด ๋ฐ์ ์ง์ฐ ์๊ฐ์ด ๊ธธ์ด์ง ์ ์๋ค.
- ์ ์ญ ๋ณด์กฐ ์์ธ์ ๋๊ฒ ๋น๋๊ธฐ๋ก ๊ฐฑ์ ๋จ
ํํฐ์ ์ฌ๊ท ํํ
์ฌ๊ท ํํ
: ํด๋ฌ์คํฐ์์ ํ ๋
ธ๋๊ฐ ๋ด๋นํ๋ ๋ถํ๋ฅผ ๋ค๋ฅธ ๋
ธ๋๋ก ์ฎ๊ธฐ๋ ๊ณผ์ ์ ์ฌ๊ท ํํ(rebalancing) ์ด๋ผ๊ณ ํ๋ค.
- ์ฌ๊ท ํํ ํ ๋ถํ๊ฐ ํด๋ฌ์คํฐ์ ์๋ ๋ ธ๋๋ค ์ฌ์ด์ ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐ๋ผ์ผ ํจ
- ์ฌ๊ท ํํ ๋์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฝ๊ธฐ ์ฐ๊ธฐ ์์ฒญ์ ๋ฐ์๋ค์ฌ์ผ ํ๋ค.
Mod N ๋ฐฉ๋ฒ
- hash(key) mod 10(N) -> 0 ~ 9 (output)
- ์ ์ฒด ๋
ธ๋ ์(N)๊ฐ ๋ฐ๋๋ output ๊ฒฐ๊ณผ๋ ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์ ์์ฒญ๋ ๋ฐ์ดํฐ ์ด๋์ด ๋ฐ์ํ๋ค.
- ex)
(123456 mod 10 = 6)
,(123456 mod 11 = 3)
,(123456 mod 12 = 0)
- ex)
์ ์ ํํฐ์ ๋ (ํํฐ์ ๊ฐ์ ๊ณ ์ )
ํํฐ์
๊ฐ์๊ฐ ๊ณ ์ ๋์ด ๋ฐ์ดํฐ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋
ธ๋ x ๋
ธ๋๋น ํํฐ์
๊ฐ์ = ์ ์ฒด ํํฐ์
๊ฐ์
๊ฐ ๋๋ค.
- ex) ๋ ธ๋(4) x ํํฐ์ (5) = 20 → ๋ ธ๋(5) x ํํฐ์ (4) = 20
- ์ ์ฒด ๋ฐ์ดํฐ์ ์ ํฌ๊ธฐ ๋ณ๋์ด ์ฌํ๋ฉด ์ ์ ํ ํํฐ์ ๊ฐ์๋ฅผ ์ ํ๊ธฐ ์ด๋ ค์
- ํํฐ์ ์ด ๋๋ฌด ์ปค์ง๋ฉด ์ฌ๊ท ํํ ๋ฐ ์ฅ์ ๋ณต๊ตฌ ๋น์ฉ์ด ํผ
- ์ ์ ํ ํฌ๊ธฐ๋ฅผ ์ ํ๋ ๊ฒ์ด ์ ์ผ Best, ํ์ง๋ง ์ด๋ ค์
- ๋ฆฌ์ , ์๋ผ์คํฑ์์น, ์นด์ฐ์น๋ฒ ์ด์ค, ๋ณผ๋๋ชจํธ ์์ ์ฌ์ฉ
๋์ ํํฐ์ ๋
- ํํฐ์ ๊ฐ์๊ฐ ์ ์ฒด ๋ฐ์ดํฐ ์ฉ๋์ ๋ง์ถฐ ์กฐ์ ๋จ (ํฌ๊ธฐ๋ฅผ ์ ํํ๊ณ ๊ฐ์๋ฅผ ๋๋ฆผ)
- ๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ์ฐ ํํฐ์
๊ฒฝ๊ณ ์ค์ ๊ฐ์ ๋๋ฌํ๊ธฐ ์ ์๋ ํํฐ์
์ด 1๊ฐ์
- HBase ์ MongoDB ๋ ๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๊ธฐ ํํฐ์ ์งํฉ์ ์ค์ ํ ์ ์์ → ์ฌ์ ๋ถํ (pre-splitting)
์ ์ ํํฐ์ ๋ & ๋์ ํํฐ์ ๋ ํน์ง ์ ๋ฆฌ
- ์ ์ ํํฐ์
๋ : ํํฐ์
ํฌ๊ธฐ
๊ฐ ๋ฐ์ดํฐ ํฌ๊ธฐ์ ๋น๋ก - ๋์ ํํฐ์
๋ : ํํฐ์
๊ฐ์
๊ฐ ๋ฐ์ดํฐ ํฌ๊ธฐ์ ๋น๋ก
๋ ธ๋ ๋น๋ก ํํฐ์ ๋
- ํํฐ์ ๊ฐ์๊ฐ ๋ ธ๋ ๋์์ ๋น๋กํ๊ฒ ์ ์งํ๋ ๊ฒ → ๋ ธ๋ ๋น ํํฐ์ ๊ฐ์๋ฅผ ๊ณ ์ ํ๋ค.
- ๋ ธ๋ ๋์์ ๋ณ๋์ด ์๋ ๋์์ ๊ฐ๋ณ ํํฐ์ ํฌ๊ธฐ๊ฐ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๋น๋กํด ์ฆ๊ฐํ์ง๋ง, ๋ ธ๋ ๋์๋ฅผ ๋๋ฆฌ๋ฉด ํํฐ์ ํฌ๊ธฐ๊ฐ ๋ค์ ์์์ง๋ค.
- ์ ๋ ธ๋๊ฐ ํด๋ฌ์คํฐ์ ์ถ๊ฐ๋๋ฉด ๊ณ ์ ๋ ๊ฐ์์ ํํฐ์ ์ ๋ฌด์์๋ก ์ ํํด ๋ถํ → ๊ฐ ๋ถํ ๋ ํํฐ์ ์ ์ ๋ฐ์ ๊ทธ๋๋ก ์ ์งํ๊ณ ๋ค๋ฅธ ์ ๋ฐ์ ์ ๋ ธ๋์ ํ ๋น
- ํํฐ์
๊ฒฝ๊ณ๋ฅผ ๋ฌด์์๋ก ์ ํํ๋ ค๋ฉด
ํด์ ๊ธฐ๋ฐ ํํฐ์ ๋
๋ฐฉ๋ฒ ์ฌ์ฉ- ํด์ ํจ์๋ฅผ ํตํด ์์ฑ๋ ์ซ์ ๋ฒ์๋ก๋ถํฐ ํํฐ์ ๊ฒฝ๊ณ ์ ํ
์ด์ : ์๋ ์ฌ๊ท ํํ์ ์๋ ์ฌ๊ท ํํ
์์ ์๋ ์ฌ๊ท ํํ์ ์์ ์๋ ์ฌ๊ท ํํ ์ฌ์ด์๋ ์ค๊ฐ ์ง์ ์ด ์๋ค.
Couchbase
๋ ์๋์ผ๋ก ํํฐ์ ํ ๋น์ ์ ์ํ์ง๋ง ๋ฐ์ ๋๋ ค๋ฉด ๊ด๋ฆฌ์๊ฐ ํ์ ํด์ผ ํ๋ค.
Rebalancing
์ ์์ฒญ ๊ฒฝ๋ก๋ฅผ ์ฌ์ค์
ํด์ผ ํ๊ณ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋
ธ๋ ์ฌ์ด์ ์ด๋
ํด์ผ ํ๋ฏ๋ก ๋น์ฉ์ด ํฐ ์ฐ์ฐ์ด๋ค.
๋๋ฌธ์ ์๋ํ๋ ์๋ ์ฅ์ ๊ฐ์ง์ ์กฐํฉ๋๋ฉด ์ํํด์ง ์ ์๋ค.
- ์๋ฅผ ๋ค์ด ๋ ธ๋ ํ ๋์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ ค ์ผ์์ ์ผ๋ก ์์ฒญ ์๋ต์ด ๋๋ ค์ง๋ฉด, ๋ค๋ฅธ ๋ ธ๋๋ค์ ๊ณผ๋ถํ ๊ฑธ๋ฆฐ ๋ ธ๋๊ฐ ์ฃฝ์๋ค๊ณ ๊ฐ์ฃผ → ํด๋น ๋ ธ๋๋ก๋ถํฐ ๋ถํ๋ฅผ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ฎ๊ธฐ๊ธฐ ์ํด ์๋์ผ๋ก ํด๋ฌ์คํฐ๋ฅผ ์ฌ๊ท ํํ ํ๋ ค๊ณ ํ๋ค.
- ๊ทธ๋ฌ๋ฉด ๊ณผ๋ถํ ๊ฑธ๋ฆฐ ๋ ธ๋์ ๋ค๋ฅธ ๋ ธ๋, ๊ทธ๋ฆฌ๊ณ ๋คํธ์ํฌ์ ๋ถํ๋ฅผ ๋ํด์ ์ํฉ์ด ๋ ์ ํ๋ ์ ์๋ค.
Q. ๋ฆฌ๋ฐธ๋ฐ์ฑ ๋ฐ์ํ ๋ ํํฐ์ ๋์ ์๋ก์ด ๋ ธ๋์ ํํฐ์ ์ ํ ๋นํ๋ ๊ฒ ์ฒ๋ผ ๋ณด์ธ๋ค → ์ด๋ ์ค๋ฉ ์๋๊ฐ?
์์ฒญ ๋ผ์ฐํ
- ํํฐ์ ์ด ์ฌ๊ท ํํ๋๋ฉด์ ๋ ธ๋์ ํ ๋น๋๋ ํํฐ์ ์ด ๋ฐ๋๋ค.
- ์ด๋ DB vendor ์ ๊ตญํ๋์ง ์๋ ๋์ฑ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ธ
์๋น์ค ์ฐพ๊ธฐ
์ ์ผ์ข - ๋ถ์ฐ ๋ฐ์ดํฐ ์์คํ
์ ํด๋ฌ์คํฐ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ถ์ ํ๊ธฐ ์ํด
์ฃผํคํผ(Zookeeper)
๊ฐ์ ์ฝ๋๋ค์ด์ ์๋น์ค๋ฅผ ์ฌ์ฉ.- ๊ฐ ๋ ธ๋๋ ์ฃผํคํผ์ ์์ ์ ๋ฑ๋กํ๊ณ ์ฃผํคํผ๋ ํํฐ์ ๊ณผ ๋ ธ๋ ์ฌ์ด์ ์ ๋ขฐ์ฑ ์๋ ํ ๋น ์ ๋ณด๋ฅผ ๊ด๋ฆฌ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฌด ๋ ธ๋์๋ ์ ์ → ํด๋น ๋ ธ๋์ ๋ง์นจ ์์ฒญ์ ์ ์ฉํ ํํฐ์ ์ด ์๋ค๋ฉด ๊ฑฐ๊ธฐ์ ์์ฒญ์ ์ง์ ์ฒ๋ฆฌ → ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ๋ฐ๋ฅธ ๋ ธ๋๋ก ์ ๋ฌํด์ ์๋ต ๋ฐ๊ณ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต ์ ๋ฌ
- ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ์์ฒญ์ ๋ผ์ฐํ ๊ณ์ธต์ผ๋ก ๋ณด๋ธ๋ค. ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ธ๋๋ฅผ ์์๋ด๊ณ ํด๋น ๋ ธ๋๋ก ์์ฒญ์ ๋ณด๋ธ๋ค. ํํฐ์ ์ธ์ง ๋ก๋๋ฐธ๋ฐ์๋ก ๋์ํ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ํํฐ์ ๋ ๋ฐฉ๋ฒ๊ณผ ํํฐ์ ์ด ์ด๋ค ๋ ธ๋์ ํ ๋น๋๋์ง๋ฅผ ์๊ณ ์๊ฒ ํ๋ค. ํด๋ผ์ด์ธํธ๋ ์ค์ฌ์ ์์ด ์ฌ๋ฐ๋ฅธ ๋ ธ๋๋ก ์ง์ ์ ์ํ ์ ์๋ค.
๋ณ๋ ฌ ์ง์ ์คํ
- ๋๊ท๋ชจ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ด๊ณํ DB ์ ํ์ ํจ์ฌ ๋ณต์กํ ์ข ๋ฅ์ ์ง์๋ฅผ ์ ๊ณตํจ
- ์ ํ์ ์ธ DW ์ง์๋ Join, Filtering, Grouping, Aggregation ์ฐ์ฐ์ ๋ช๊ฐ ํฌํจํ๋ค.
- MPP ์ง์ ์ต์ ํ๊ธฐ๋ ๋ณต์กํ ์ง์๋ฅผ ์ฌ๋ฌ ์คํ ๋จ๊ณ์ ํํฐ์ ์ผ๋ก ๋ถํดํ๋ฉฐ ์ด๋ค ์ค ๋ค์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ ๋ด์ ์๋ก ๋ค๋ฅธ ๋ ธ๋์์ ๋ณ๋ ฌ์ ์ผ๋ก ์คํ๋ ์ ์๋ค.