๋งํฌ๋ฒ ์ด์ค ํน์ง
ํ ์ด๋ธ ์ข ๋ฅ | Tag Table | Log Table | Volatile Table | Lookup Table |
---|---|---|---|---|
๋ชฉ์ | <์ผ์๋ช , ์๊ฐ, ์ผ์๊ฐ> ํํ์ ์ผ์ ์๊ณ์ด ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ต์ ํ | PLC ํํ ๋ก๊ทธ ์๊ณ์ด ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ต์ ํ | ํ๋ฐ์ฑ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐย ์ค์๊ฐ ์ฒ๋ฆฌ | ์๊ตฌ ์ ์ฅ ๊ฐ๋ฅํ ๋ง์คํฐ ๋ฐ์ดํฐ ๊ด๋ฆฌ |
์ค๋ช | ๊ณ ์์ผ๋ก ์ผ์ ๋ฐ์ดํฐ๋ฅผย ์ ์ฅํ๊ณ , ๊ณ ์์ผ๋ก ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ฑฐ๋, ์ค์๊ฐ์ผ๋ก ํต๊ณ ํ ์ด๋ธ์ ์์ฑํ ๊ฒฝ์ฐ ํ์ฉ ์ฃผ๋ก, ์ค์๊ฐ ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ | ํ
์คํธ๋ฅผ ํฌํจํ ๋ก๊ทธ์ฑ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ์ฃผ๋ก, ํ์คํ ๋ฆฌ์ฑ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ | Insert, Delete, Update, Select ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ ์ฑ๋ฅ์ผ๋ก ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ (์ด๋น ์๋ง๊ฑด) ์์คํ
์ข
๋ฃ์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง๋ฉฐ, | ์ฌ์ฉ์์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ์ฃผ์ ๋ง์คํฐ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ ์ ์ฅํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํจ. SELECT ์ฑ๋ฅ์ ๊ณ ์์ด์ง๋ง, |
ํ
์ด๋ธ ๊ตฌ์กฐ | <์ผ์๋ช
, ์๊ฐ, ์ผ์๊ฐ> ์ด ๊ธฐ๋ณธํ์ด๋ฉฐ, | ์์์ ์คํค๋ง ๊ฐ๋ฅ | ์์์ ์คํค๋ง ๊ฐ๋ฅ (Primary Key ์ง์ ๊ฐ๋ฅ) | |
INSERT (์
๋ ฅ) ์ฑ๋ฅ | ์ด๋น ์๋ฐฑ๋ง๊ฑด | ์ด๋น ์๋ฐฑ๋ง๊ฑด | ์ด๋น ์๋ง๊ฑด | ์ด๋น ์๋ฐฑ๊ฑด |
SELECT (์ง์) | ์ผ์๋ช + ์๊ฐ ๋ฒ์ ํ์ | ๋ชจ๋ ์ง์ ๊ฐ๋ฅ | ||
DELETE (์ญ์ ) | ์์ ์์ ์ด์ ๋ฐ์ดํฐ ์ค์๊ฐ ์ญ์ ๊ฐ๋ฅ | ์์ ์์ /๊ตฌ๊ฐ ๋ฐ์ดํฐ ์ค์๊ฐ ์ญ์ ๊ฐ๋ฅ | Primary Key ๊ธฐ์ค Record Delete ์ง์ (โป Primary Key ์ง์ ํ์) | |
UPDATE (๋ณ๊ฒฝ) | ์ง์ ๋ถ๊ฐ (โป ๋ฉํ๋ฐ์ดํฐ ์ปฌ๋ผ ์ ํํด์ ๋ณ๊ฒฝ ๊ฐ๋ฅ) | ์ง์ ๋ถ๊ฐ | Primary Key ๊ธฐ์ค Update ์ง์ (โป Primary Key ์ง์ ํ์) | |
์ ์ฅ์ ํฌ๊ธฐ ํ๊ณ | ๋์คํฌ ํ๊ณ | ๋ฉ๋ชจ๋ฆฌ ํ๊ณ ![]() | ||
INDEX ๊ตฌ์กฐ | 3 ๋จ๊ณ์ Partitioning ์ค์๊ฐ ์ธ๋ฑ์ค (โป ๊ธฐ๋ณธ ์์ฑ) | LSM ์ธ๋ฑ์ค | Red/Black ๋ฉ๋ชจ๋ฆฌ ์ธ๋ฑ์ค | |
STREAM ์ง์ | ํ๊ฒ ๋์์ผ๋ก๋ง ๊ฐ๋ฅ (์ ์ฅ ๋์) | ์์ค/ํ๊ฒ ๋์ ๋ชจ๋ ๊ฐ๋ฅ (์ฝ๊ธฐ ๋ฐ ์ ์ฅ๋์) | ๋ถ๊ฐ๋ฅ | |
๊ณ ๋ ค ์ฌํญ | ๊ณผ๊ฑฐ ๋ฐ์ดํฐ ์ญ์ ๋ฅผ ๊ณ ๋ คํ ์ถฉ๋ถํ ์คํ ๋ฆฌ์ง ํ๋ณด ๊ณ ๋ ค | Tag ์ ๋ ฅ์ ์ํ ์์ ์ ์ฅ์๋ก ๊ณ ๋ ค | ๋ฉ๋ชจ๋ฆฌ ํ๊ณ ๊ณ ๋ ค ![]() |
๋ค์ํ ํฌ๊ธฐ์ ํ๋์จ์ด ์ง์
๋งํฌ๋ฒ ์ด์ค๋ ์ฌ์ฉ์์ย ํ๊ฒฝ์ ๋ฐ๋ฅธ ์๋์ ๊ฐ์ ๋ค์ํ ์ ํ Edition์ ์ ๊ณตํ๋ค.
Edge Edition
์ด ์ ํ์ ARM ํน์ ์ธํ ์ ATOM ๊ธ CPU๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ ์๊ท๋ชจ Edge ์ฅ๋น์์ ๋์ํ๋ค.
๊ทธ๋ฌ๋, ์ด๋ฐ ์๊ท๋ชจ ์ฅ๋น์์๋ ์ด๋น ์๋ง๊ฑด์ ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ํํฐ๋ง์ ํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ ๋งํฌ๋ฒ ์ด์ค๊ฐ ์ ์ฉํ๊ฒ ํ์ฉ๋ ์ ์๋ค.
์ฃผ๋ก, ๋ก๋ด์ด๋ ๊ณต์ฅ์ ์์ฐ ์ค๋น, ๋น๋ฉ ๋ฑ์ ๋จ๋ง ๋จ๊ณ์์์ ๋ค์ํ ์ผ์๋ฅผ ๊ณ ์ ๋ฐ ๊ณ ์ฉ๋์ผ๋ก ์ ์ฅํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ ํ์ํ ์ ํ์ด๋ค.
Fog Edition
์ด ์ ํ์ ๋จ์ผ ์๋ฒ์์ ๊ณ ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ๋ฌ์ฑํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ ํ์ฉ๋๋ค.
์ฃผ๋ก ์ธํ x86 CPU ๊ธฐ๋ฐ์ ์๋์ฐ๋ ๋ฆฌ๋ ์ค ์ด์์ฒด์ ์์ ๋์ํ๋ฉฐ, ํ DBMS๊ฐ ์ ๊ณตํ์ง ๋ชปํ๋ ๋งค์ฐ ๋น ๋ฅธ ์ผ์ ๋ฐ์ดํฐ ์ ์ฅ๊ณผ ๋ถ์์ ์ ๊ณตํ๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์๋ฐฑ๋ ์ด์์ Edge ์ฅ๋น๋ก๋ถํฐ ์ค์๊ฐ์ผ๋ก ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ์ด๋ฅผ 2์ฐจ๋ก ๋ถ์ํ๊ธฐ ์ํ ์ฉ๋๋ก ํ์ฉ๋๋ค.
Cluster Edition
์ด ์ ํ์ ๊ฑฐ๋ ์ ์กฐ ๊ณต์ฅ์ ์ํ ์ด๊ฑฐ๋๊ท๋ชจ์ ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐ๋์๋ค.
๋ฐ๋์ฒด ํน์ ๋์คํ๋ ์ด, ๋ฐ์ , ์ฒ ๊ฐ ์์ฐ ๊ณต์ ์์ ๋ฐ์ํ๋ ์ด๋น ์ฒ๋ง๊ฑด ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋ค์์ ๋ฌผ๋ฆฌ์ ์๋ฒ๊ฐ ํด๋ฌ์คํฐ ํํ๋ก ๋์ํ๋ค.
๋ฐ์ดํฐ๊ฐ ๋์ด๋๋ ํ๊ฒฝ์์ ์ฒ๋ฆฌ ์ฉ๋๊ณผ ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ์ ์งํด์ผ ํ๋ ํ๊ฒฝ์์ ํ์ฉ๋๋ค.
Tag analyzer : ๋ฐ์ดํฐ ์๊ฐํ ์๋ฃจ์ ์ง์
๋งํฌ๋ฒ ์ด์ค๋ ๋ฒ์ ผ 5๋ถํฐ ๋งํฌ๋ฒ ์ด์ค์ ์ ์ฅ๋ ์๋ฐฑ์ต๊ฑด์ ์ผ์ ๋ฐ์ดํฐ์ ๋ํ ์ค์๊ฐ ์๊ฐํ๋ฅผ ์ ๊ณตํ๋ค.
์ฆ, ์์์ ํ๊ทธ ์์ด๋๋ฅผ ์ง์ ํ๋ฉฐ, ๊ทธ ์์ด๋๊ฐ ์ ๋ ฅ๋ ๊ธฐ๊ฐ๋์์ ํธ๋ ๋ ์ฐจํธ๋ฅผ ์์๊ฐ์ ์น ๊ธฐ๋ฐ์ผ๋ก ํ์ธํ ์ ์๋๋ก ํ๋ค.
๋ํ, ๋จ์ํ ํ๊ทธ ๋ฐ์ดํฐ ๋ฟ๋ง ์๋๋ผ ๊ทธ ๊ธฐ๊ฐ๋์์ ํต๊ณ ์ฑ ํธ๋ ํจ๊ป ๋ณผ ์ ์๋๋ก ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋จ์ ์๊ฐํ๋ฅผ ๋์ด ์ผ์ ์์ค์ ํต๊ณ ๋ถ์๋ ๊ฐ๋ฅํ๋ค.
Write Once, Read Many
์ผ์ ๋ฐ์ดํฐ๋ ์ผ๋จ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ ฅ๋๋ฉด ๋ณ๊ฒฝ ๋๋ ์ญ์ ๋๋ ๊ฒฝ์ฐ๊ฐ ๊ฑฐ์ ์๋ค.
๋ฐ๋ผ์, ๋งํฌ๋ฒ ์ด์ค๋ ๋จธ์ ๋ฐ์ดํฐ์ ๋ํ ํน์ฑ์ ์ต๋ํ ์ด๋ฆฌ๊ธฐ ์ํด ํ๋ฒ ์ ๋ ฅ๋ ์ฃผ์ ์๊ณ์ด ๋ฐ์ดํฐ์ ๋ํด์๋ UPDATE๊ฐ ๋ฐ์ํ ์ ์๋๋ก ์ค๊ณ ๋์๋ค.
ํ๋ฒ ์ ๋ ฅ๋ ๋ก๊ทธ ๋ฐ์ดํฐ๋, ์ ์์ ์ฌ์ฉ์์ ์ํด ๋ณ์กฐ๋๊ฑฐ๋ ์ญ์ ๋์ง ์์ผ๋ฏ๋ก ๊ฑฑ์ ํ ํ์๊ฐ ์๋ค.
Lock-free ์ํคํ ์ณ ์ง์
์ผ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌํ๋๋ฐ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ฐ์ดํฐ์ ์ ๋ ฅ, ๋ณ๊ฒฝ, ์ญ์ ์ฐ์ฐ๊ณผ ์ฝ๊ธฐ ์ฐ์ฐ์ด ์๋ก ์ถฉ๋ํ์ง ์๊ณ ๊ฐ๋ฅํ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๋์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
์ด ๋๋ฌธ์ ๋งํฌ๋ฒ ์ด์ค๋ SELECT ์ฐ์ฐ์ ๋ํ ์ด๋ ํ Lock๋ ํ ๋น ๋ฐ์ง ์๋๋ก ์ค๊ณ๋์๊ณ , ๋ณ๊ฒฝ ์ฐ์ฐ์ธ ์ ๋ ฅ ํน์ ์ญ์ ์๋ ์๋ก ์ ๋๋ก ์ถฉ๋ํ์ง ์๋ ๊ณ ์ฑ๋ฅ ๊ตฌ์กฐ๋ก ์ค๊ณ๋์๋ค.
๋ฐ๋ผ์ ์์ญ๋ง ๊ฑด์ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋๊ณ , ์ค์๊ฐ์ผ๋ก ์ผ๋ถ๊ฐ ์ญ์ ๋๋ ์ํฉ์์๋ SELECT ์ฐ์ฐ์ ์๋ฐฑ๋ง ๊ฑด์ ๋ ์ฝ๋์ ๋ํ ํต๊ณ ์ฐ์ฐ์ ๋น ๋ฅธ ์๋๋ก ์งํํ ์ ์๋ค.
์ด๊ณ ์ ๋ฐ์ดํฐ ์ ์ฅ
๋งํฌ๋ฒ ์ด์ค๋ ๊ธฐ์กด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค ์์ญ๋ฐฐ์ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ ์ฅ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค. ํน์ ๋ฐ์ด๋ธ์ ์ธ๋ฑ์ค๊ฐ ๋ค์ ์กด์ฌํ๋ ์ํฉ์์๋ ์ต์ ์ด๋น 300,000 ๊ฑด์์ ์ต๊ณ 2,000,000 ๊ฑด๊น์ง ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๋ค์ผ ์ ์๋ค.
์ด๊ฒ์ด ๊ฐ๋ฅํ ์ด์ ๋ ๋งํฌ๋ฒ ์ด์ค๊ฐ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ต์ ํํ๋ ๊ตฌ์กฐ๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
STREAM ๊ธฐ๋ฅ ์ง์
๋งํฌ๋ฒ ์ด์ค๋ ๋ฒ์ ผ 5 ๋ถํฐย Edge Edition๊ณผ Fog Edition์ ๋ํด์ ์ค์๊ฐ ๋ฐ์ดํฐ ํํฐ๋ง์ ์ง์ํ๊ธฐ ์ํด STREAM ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
์ด STREAM์ DBMS ๋ด๋ถ์์ ์ค์๊ฐ์ผ๋ก ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ๋ํด ๊ณ ์์ผ๋ก ์กฐ๊ฑด ํ๊ฐ๋ฅผ ์ํํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์์์ ํ ์ด๋ธ๋ก ์ ์กํ๋ ์ญํ ์ ์ํํ๋ค.
์ด ๊ธฐ๋ฅ์ ํน์ ์ผ์์ ๊ฐ์ด ํน์ ๋ฒ์๋ฅผ ๋์์ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ํค๊ฑฐ๋ ๋ด๋ถ์ ์ผ๋ก ์ ๋ ฅ๋ ๋ฐ์ดํฐ์ ๋ํ ์ค์๊ฐ ํ๊ฐ๋ฅผ ํ๋ ๊ฒฝ์ฐ ๋งค์ฐ ์ ์ฉํ๋ค.
์ค์๊ฐ ์ธ๋ฑ์ค ๊ตฌ์ฑ
๋งํฌ๋ฒ ์ด์ค๋ ์ธ๋ฑ์ค๊ฐ ๋ง์ผ๋ฉด ๋ง์์๋ก ๋ฐ์ดํฐ ์ ๋ ฅ ์ฑ๋ฅ์ด ๋น๋ก์ ์ผ๋ก ๋๋ ค์ง๋ ์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ ํ์ ์ ์ผ๋ก ๊ฐ์ ํด, ์ด๋น ์์ญ๋ง๊ฑด์ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋๋๋ผ๋ ๊ฑฐ์ ์ค์๊ฐ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค.
์ด ํน์ง์ ์ค์ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ํ๋ ์๊ฐ์ ์ฆ์ ๊ฒ์ํ ์ ์๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ธ ํ ๋๋ฅผ ์ ๊ณตํด ์ฃผ๊ธฐ ๋๋ฌธ์ ๋จธ์ ๋ฐ์ดํฐ์ ๊ฐ์ ์๊ณ์ด ๋ฐ์ดํฐ ๋ถ์์ ์์ด์๋ ํต์ฌ์ ์ธ ๊ธฐ์ ์ด๋ค.
์ค์๊ฐ ๋ฐ์ดํฐ ์์ถ
๋จธ์ ๋ฐ์ดํฐ์ ๊ฐ์ ์๊ณ์ด ๋ฐ์ดํฐ์ ํน์ง์ ๋์์์ด ๋ฐ์ดํฐ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ด๋ค. ์ด ์ฌ์ค์ ํ์ฐ์ ์ผ๋ก ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ ๊ณต๊ฐ์ด ์ธ์ ๊ฐ๋ ๋ถ์กฑํด์ง ๋ฟ๋ง ์๋๋ผ, ์ฒ๋ฆฌํด์ผ ํ ๋ฐ์ดํฐ๋ฅผ ์ถฉ๋ถํ๊ฒ ๋ณด์ ํ์ง ๋ชปํ๋ค๋ ์๋ฏธ์ด๋ค.
ํนํ, ์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ณ ์ ์ ๋ ฅ ์ ๋ฐ์ดํฐ ๋ฟ๋ง ์๋๋ผ ์ธ๋ฑ์ค๊ฐ ๋์ด๋จ์ ๋ฐ๋ผ ์ฐจ์งํ๋ ๋ฐ์ดํฐ ๊ณต๊ฐ ์ญ์ ๊ธ๊ฒฉํ๊ฒ ์ฆ๊ฐํ๋ค. ์ด ๋๋ฌธ์ ๋จธ์ ๋ฐ์ดํฐ์ ์ ์ฅ๊ณผ ๋ถ์์ ๋งค์ฐ ๋ถ์ ์ ํ ๊ตฌ์กฐ์ด๋ค.
๋งํฌ๋ฒ ์ด์ค๋ ์์์ ธ ๋ค์ด์ค๋ ๋ฐ์ดํฐ์ ๋ํด ํ์ ์ ์ธ ์ค์๊ฐ ์์ถ ๊ธฐ์ 2 ๊ฐ์ง๋ฅผ ํตํด ์ฑ๋ฅ ์ ํ ์์ด ์ ๊ฒ๋ ์์ญ๋ฐฐ์์ ์๋ฐฑ๋ฐฐ๊น์ง ๋ฐ์ดํฐ๋ฅผ ์์ถํ์ฌ ์ ์ฅํ๋ค.
๋ ผ๋ฆฌ์ ์ค์๊ฐ ๋ฐ์ดํฐ ์์ถ ๊ธฐ์ ์ง์
์ฒซ ๋ฒ์งธ๋ก ๋งํฌ๋ฒ ์ด์ค๋ ๋ ผ๋ฆฌ์ ์ค์๊ฐ ๋ฐ์ดํฐ ์์ถ ๊ธฐ์ ์ ์ง์ํ๋ค.
์ด๋ ์ปฌ๋ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๋ํ, ๋จธ์ ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ ์ค๋ณต์ฑ์ ์ด์ฉํ ๊ฒ์ผ๋ก์ ๋์ผํ ๊ฐ์ ๊ฐ๋ ๋ฐ์ดํฐ๊ฐ ๋ง์ผ๋ฉด ๋ง์์๋ก ๋ฐ์ดํฐ์ ์ค๋ณต์ ์ฝ๋ํํ์ฌ, ๋ฐ์ดํฐ ์ ์ฅ๊ณต๊ฐ์ ํ์ ์ ์ผ๋ก ์ค์ด๋ ๊ธฐ์ ์ด๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ค๋ณต์ฑ์ด ๋์ ๋ฐ์ดํฐ์ ๋ํด ์๋ฐฑ๋ฐฐ๊น์ง ๋ฐ์ดํฐ๋ฅผ ์์ถํ ์ ์๋ค.
๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ์์ถ ๊ธฐ์ (ํนํ ๊ธฐ์ )
๋ ๋ฒ์งธ๋ ๋งํฌ๋ฒ ์ด์ค์ ํนํ ๊ธฐ์ ์ธ ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ์์ถ๊ธฐ์ ์ด๋ค.
์ด๋ ๋์คํฌ์ ์ ์ฅ๋ ๋ฌผ๋ฆฌ์ ์ธ ๋ฐ์ดํฐ ๋ธ๋ญ์ ๋ฏธ๋ฆฌ ์ผ์ ํ ํฌ๊ธฐ์ ํํฐ์ ์ผ๋ก ๋๋์ด ์์ถํ์ฌ ๋์คํฌ์ ๋ณ๋๋ก ๋ด๋ฆผ์ผ๋ก์จ ์ ์ฅ๋ ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ์ ๋์ ์ค์ด๊ณ , ๋๋ถ์ด ์์คํ ์ด ์ ๋ฐ์ํค๋ I/O ๋น์ฉ์ ๊ธ๊ฒฉํ๊ฒ ๋ฎ์ถ๋ ๊ธฐ์ ์ด๋ค. ์ด๋ฅผ ํตํด ์ค์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์์ถ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ๋ฒ ๋ ์์ถํ์ฌ ์ ์ฅ ๊ณต๊ฐ์ ํจ์จ์ฑ์ ๋์ด๋๋ฐ ์ผ์กฐํ๋ค.
ํ์ํ ์ง์ ์ฑ๋ฅ
๋งํฌ๋ฒ ์ด์ค์ ํ์ ์ ์ธ ๊ธฐ์ ์ ์ฐ์์ฑ์ ์ด๋น ์์ญ๋ง ๊ฑด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ ์์ค์๋ ์ด๋ฏธ ์ ์ฅ๋ ๊ณผ๊ฑฐ์ ์๋ฐฑ๋ง ํน์ ์์ฒ๋ง ๊ฑด์ ๋ฐ์ดํฐ์ ๋ํ ๊ฒ์ ๋ฐ ํต๊ณ ๋ถ์ ์ฑ๋ฅ์ด ๋งค์ฐ ๋น ๋ฅด๋ค๋ ๊ฒ์ด๋ค.
์ฝ์ ๊ณผ ๋ถ์ ๋ชจ๋์ ํ์ํ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ๋งํฌ๋ฒ ์ด์ค ๋ง์ ์ธ๋ฑ์ฑ ๊ธฐ์ ๋๋ฌธ์ ๊ฐ๋ฅํ ๊ฒ์ด๋ฉฐ ์ค์๊ฐ ๋น์ฆ๋์ค ์์ฌ ๊ฒฐ์ ์ ํต์ฌ์ ์ธ ์ญํ ์ ์ํํ ๊ฒ์ด๋ค.
์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌ๋ฆฌ, ๋งํฌ๋ฒ ์ด์ค๋ย ๋ ๊ฐ ์ด์์ ์ธ๋ฑ์ค๋ฅผ ํ๋์ ์ง์๋ฌธ์์ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ณ๋ ฌ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ ๋ช ๋ฐฐ๋ ๋ ๋น ๋ฅธ ์ฑ๋ฅ์ ๊ธฐ๋ํ ์ ์๋ค.
์๋๋ ๋ค์๊ณผ ๊ฐ์ ์ง์๋ฌธ์ ๋ํด ๋ ๊ฐ ์ด์์ ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ํ๋ธ ๊ฒ์ด๋ค.
SELECT * FROM table1 WHERE c1 = 1 and c2 = 2;
์๊ณ์ด ๋ฐ์ดํฐ ํน์ฑ SQL ๊ตฌ๋ฌธ ์ง์
์ผ์ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ์ต์ ๋ฐ์ดํฐ๊ฐ ์์ ์ ๋ฐ์ดํฐ๋ณด๋ค ๋ช ๋ฐฐ ๋ ๊ฐ์น๊ฐ ์์ผ๋ฉฐ ๋ฐ์ดํฐ์ ์ ๊ทผ ๋น๋๋ ์ต๊ทผ ๋ฐ์ดํฐ๊ฐ ์์ ๋ฐ์ดํฐ๋ณด๋ค ๋ช ๋ฐฐ ๋ ๋ง์ ํน์ง์ด ์๋ค.
์ด๋ฐ ์ด์ ๋ก ๋งํฌ๋ฒ ์ด์ค๋ ๋ ์ข ๋ฅ์ ํ ์ด๋ธ ์ฆ, ํ๊ทธ (Tag) Table๊ณผ ๋ก๊ทธ (Log) Table์ ํตํดย ์๊ณ์ด ๋ฐ์ดํฐ ํน์ง์ ์ง์ํ๋ค.
๋ก๊ทธ ํ ์ด๋ธ
๋งํฌ๋ฒ ์ด์ค์์ ์ง์ํ๋ ๋ก๊ทธ ํ ์ด๋ธ (Log Table) ์ ๋ค์ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
์ฒซ์งธ, ์ ๋ ฅ ์๊ฐ์ ์๋์ผ๋ก ์ ์ฅ
๋ ์ฝ๋๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ์๊ฐ ๋๋ ธ ์ธ์ปจ๋ ๋จ์์ timestamp๋ฅผ _arrival_time์ด๋ผ๋ ํ๋๋ก ์ ์ฅํ๋ค.
์ด ์๋ฏธ๋ ๋งํฌ๋ฒ ์ด์ค๊ฐ ์ ์ฅํ๋ ๋ชจ๋ ๋ ์ฝ๋๋ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ๊ฒ์ํ๊ฑฐ๋ ์กฐ๊ฑด์ ์ค ์ ์๋ค๋ ๊ฒ์ด๋ค.
๋์งธ, ์ต๊ทผ ๋ฐ์ดํฐ ์ฐ์ ์กฐํ
๋ฐ์ดํฐ ๊ฒ์์ ์ต๊ทผ ์๊ฐ์ด ์์ ์๊ฐ ๋ณด๋ค ๋จผ์ ์ถ๋ ฅ๋๋ค. ์ฆ, SELECT๋ฅผ ์ํํ ๋ ์ต๊ทผ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ์ถ๋ ฅ๋๋ค๋ ๊ฒ์ด๋ค.
์์์ ์ธ๊ธํ _arrival_time ์ปฌ๋ผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ (descendingย sort) ๋ฅผ ํ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ์ด๋ค.
์ ์งธ, DURATION ํค์๋
DURATION ํค์๋๋ฅผ ์ ๊ณตํด, ํน์ ์๊ฐ ๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ ์๊ฐ ๊ธฐ์ค์ผ๋ก ๋น ๋ฅด๊ฒ ์กฐํํ ์ ์๋ ๊ธฐ๋ฅ์ ํ์ฌํ๋ค.
๋จธ์ ๋ฐ์ดํฐ ๋ถ์์ ๊ฒฝ์ฐ ํน์ ์๊ฐ ๋ฒ์๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ SQL ๋ ๋ฒจ์์ ์ด๋ฌํ ํน์ฑ์ ์ ๊ณตํ๋ค.
์ด๋ฅผ ํตํด ๋ณต์กํ ์๊ฐ ์ฐ์ฐ์๋ฅผ where ์ ์ ์ฃผ์ง ์๋๋ผ๋ ํธ๋ฆฌํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ ์ ์๋ค.
-- ์1) ์ง๊ธ ๋ถํฐ 10๋ถ ์ ๊น์ง์ ๋ฐ์ดํฐ ํต๊ณ ์กฐํ SELECT SUM(traffic) FROM t1 DURATION 10 MINUTE; -- ์2) ์ง๊ธ ๋ถํฐ 1์๊ฐ ์ ์ 30๋ถ๊ฐ์ ๋ฐ์ดํฐ ํต๊ณ ์กฐํ SELECT SUM(traffic) FROM t1 DURATION 30 MINUTE BEFORE 1 HOUR;
ํ๊ทธ ํ ์ด๋ธ
๋งํฌ๋ฒ ์ด์ค 5.0 ๋ถํฐ ์ง์ํ๋ ํ๊ทธ ํ ์ด๋ธ (Tag Table) ์ ๋ค์ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
์ฒซ์งธ, ๊ณ ์ TAGID/์๊ฐ ์กฐ๊ฑด ๊ฒ์ ์ฑ๋ฅ
ํ๊ทธ ํ ์ด๋ธ์ย ์์์ ์๊ฐ ๋ฐ ์์์ ID ๊ธฐ๋ฐย ๊ฒ์ ์ฑ๋ฅ์ด ํ์ํ๋ค.
๊ธฐ์กด์ RDBMS๋ก๋ ๋๋ฌํ ์ ์๋ ์ด๊ณ ์์ ๋ฐ์ดํฐ ์ถ์ถ ์ฑ๋ฅ์ ์๋ํ๋ฉฐ, ์ด๋ ์์ญ์ต๊ฑด์ ์ผ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์ํฉ์์๋ ๋์ผํ ์๋๋ฅผ ๋ณด์ฅํ๋ค.
๋์งธ, ๊ณ ์ ํ๊ทธ ๋ฐ์ดํฐ ์ ๋ ฅ
ํ๊ทธ ํ ์ด๋ธ์ย ๊ณ ์์ ๋ฐ์ดํฐ ์ ๋ ฅ์ ์ง์ํ๋ค.
์์ ๋ก๊ทธ ํ ์ด๋ธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ์ด๋น ์์ญ๋ง๊ฑด์ ์ผ์๋ฐ์ดํฐ ์ ๋ ฅ์ ์์ด์๋ ๋ฌด๋ฆฌ์์ด ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ ์ ์๋ค.
์ ์งธ, ์ค์๊ฐ ํต๊ณ ๊ธฐ๋ฅ
ํ๊ทธ ํ ์ด๋ธ์ ์ค์๊ฐ ํต๊ณ ๊ธฐ๋ฅ์ ์ง์ํ๋ค.
๋งํฌ๋ฒ ์ด์ค๋ ์ด ํ๊ทธ ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ์ค์๊ฐ์ผ๋ก ๋ค์ฏ ์ข ๋ฅ์ ํต๊ณ๋ฅผ ์๋์ ์ผ๋ก ์์ฑํ๊ณ , ์ด๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ๊ทผํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
ํ ์คํธ ๊ฒ์ ๊ธฐ๋ฅ ์ง์
๋ก๊ทธ์ฑ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ํ์ฉํ๋ ์ฌ์ฉ์์ ๊ฐ์ฅ ์ค์ํ ์ค์ ์ฉ๋ ์ค ํ๋๋ ํน์ ์์ ์ ํน์ event ๊ฐ ๋ฐ์ํ๋์ง๋ฅผ ํ์ธํ๋ ๊ฒ์ด๋ค.
ํน์ ์์ ์ ๊ฒฝ์ฐ ์๊ณ์ด ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ก ๊ฐ๋ฅํ์ง๋ง, ํน์ event๊ฐ ๋ฐ์ํ ๊ฒ์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํน์ ์ปฌ๋ผ์ ์ ์ฅ๋ text field์์ ํน์ "๋จ์ด"๋ฅผ ์ฐพ๋ ํ์๊ฐ ํ์ํ๋ค.
๊ทธ๋ฌ๋, ์ ํต์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ํน์ ํ๋์ ๋จ์ด๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด์๋ B+ Tree๋ฅผ ํตํด exact match ํน์ LIKE ์ ์ ํตํด ์ต์ด ์ผ๋ถ ์บ๋ฆญํฐ์ ์กฐ๊ฑด์ ๊ฒ์ฌํ๊ฒ ๋๋๋ฐ, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด๋ ๋งค์ฐ ๋๋ฆฐ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ๋ค.
๊ทธ๋ฐ ์ด์ ๋ก ์ ํต์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํน์ ๋จ์ด์ ๋ํ ๊ฒ์์ ๋งค์ฐ ์ทจ์ฝํ๋ค.
๋ฐ๋ฉด, ๋งํฌ๋ฒ ์ด์ค์์๋ ๋ก๊ทธ ํ ์ด๋ธ ๊ธฐ๋ฐ์ SEARCH๋ผ๋ SQL ํค์๋๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์ค์๊ฐ ๋จ์ด ๊ฒ์์ด ๊ฐ๋ฅํ๋๋ก ํ์๋ค.
์ด๋ฅผ ํตํด ์ฅ๋น๋ก๋ถํฐ ๋ฐ์๋ ์์์ ์๋ฌ ํ ์คํธ๋ฅผ ์์๊ฐ์ ๊ฒ์ํ ์ ์๊ฒ ๋์๋ค.
-- ์1) msg ํ๋์ Error ํน์ 102๋ฅผ ํฌํจํ๋ ๋ ์ฝ๋๋ฅผ ์ถ๋ ฅ SELECT id, ipv4 FROM devices WHERE msg SEARCH 'Error' or msg SEARCH '102'; -- ์2) msg ํ๋์ Error ๊ทธ๋ฆฌ๊ณ 102๋ฅผ ํฌํจํ๋ ๋ ์ฝ๋๋ฅผ ์ถ๋ ฅ SELECT id, ipv4 FROM devices WHERE msg SEARCH 'Error 102';
์ ํ์ ์ญ์ ์ง์
์ผ์ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ์๋ ์ฝ์ ์ดํ์ ์ญ์ ์ฐ์ฐ์ด ๊ฑฐ์ ๋ฐ์ํ์ง ์๋ ๊ฒ์ด ํ์ค์ด๋ค.
๊ทธ๋ฌ๋ embedded ์ฅ๋น์ ๊ฒฝ์ฐ์๋ ์ ์ฅ ๊ณต๊ฐ์ ์ ์ฝ์ด ๋ถ๋ช ํ ์กด์ฌํ๊ณ , ์ฌ์ฉ์์ ์ํด ์ฃผ์ ๊น๊ฒ ๊ด๋ฆฌ๋์ง ์๋ ๊ฒ์ด ๊ทธ ํน์ง์ด๋ค.
์ด ๊ฒฝ์ฐ ํน์๋ ๋จธ์ ๋ฐ์ดํฐ์ ์ํด Disk full์ด ๋ฐ์ํ๊ฑฐ๋ ์ฅ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ฉด, ๊ธฐ์ ์ ์ฅ์์ ๋ง์ ์ํด๋ฅผ ๊ฐ์ํด์ผ ํ๋ค.
๋งํฌ๋ฒ ์ด์ค๋ ์ด๋ฐ ํ๊ฒฝ์์ ์ฃผ์ด์ง ํน์ ์กฐ๊ฑด์ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ ์ ์๋๋ก ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ฐ๋ผ์ embedded ๊ฐ๋ฐ์ฌ๋ CRON ํน์ ์ฃผ๊ธฐ์ ์ธ ํ๋ก๊ทธ๋จ์ ํตํด์ ๋งํฌ๋ฒ ์ด์ค๊ฐ ์ผ์ ํฌ๊ธฐ ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ์ง ์๋๋ก ์์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค.
๋ก๊ทธ ํ ์ด๋ธ์ ๊ฒฝ์ฐย
์๋ ๋ชจ๋ ๋ฌธ๋ฒ ์ง์ย
-- ์ฌ์ฉ ์1) ๊ฐ์ฅ ์ค๋๋ ๋ง์ง๋ง 100๊ฑด์ ์ญ์ ํ๋ผ. DELETE FROM devices OLDEST 100 ROWS; -- ์ฌ์ฉ ์2) ์ต๊ทผ 1000๊ฑด์ ์ ์ธํ๊ณ ๋ชจ๋ ์ญ์ ํ๋ผ. DELETE FROM devices EXCEPT 1000 ROWS; -- ์ฌ์ฉ ์3) ์ง๊ธ๋ถํฐ ํ๋ฃจ์น๋ฅผ ๋จ๊ธฐ๊ณ ๋ชจ๋ ์ญ์ ํ๋ผ. DELETE FROM devices EXCEPT 1 DAY; -- ์ฌ์ฉ ์4) 2014๋ 6์ 1์ผ ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ญ์ ํ๋ผ. DELETE FROM devices BEFORE TO_DATE('2014-06-01', 'YYYY-MM-DD');
ํ๊ทธ ํ ์ด๋ธ์ ๊ฒฝ์ฐย
์๋ ํ๊ฐ์ง ๋ฌธ๋ฒ ์ง์ย
-- 2016๋ 6์ 15์ผ ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ญ์ ํ๋ผ. DELETE FROM tag BEFORE TO_DATE('2016-06-15', 'YYYY-MM-DD');
์๋ํ๋ ๋ฐ์ดํฐ ์์ง
๋งํฌ๋ฒ ์ด์ค๋ ์ฐ์ฌํด ์๋ ๋จธ์ ๋ฐ์ดํฐ ๋ก๊ทธ ํ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ์๋์ผ๋ก ์ ์กํด์ฃผ๋ ๊ธฐ๋ฅ์ธ "์ปฌ๋ ํฐ (Collector)" ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
์ด๋ฅผ ํตํด syslog ๋ ์น์๋ฒ ๋ก๊ทธ ๋ฑ์ ์ด๋ฏธ ์ ํํ๋ ๋ฐ์ดํฐ๋ฅผ ์์งํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์๊ฐ ์์๋ก ์ ์ํ ๋ก๊ทธ ํฌ๋งท์ ๊ฒฝ์ฐ์๋ ๋งค์ฐ ์ฝ๊ฒ ๋ณํํ์ฌ ์๋์ผ๋ก ์์งํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.