/
๋งˆํฌ๋ฒ ์ด์Šค ํŠน์ง•

๋งˆํฌ๋ฒ ์ด์Šค ํŠน์ง•

๋‹ค์–‘ํ•œ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ง€์›


๋งˆํฌ๋ฒ ์ด์Šค๋Š” ์‚ฌ์šฉ์ž์˜ ์šฉ๋„์— ๋”ฐ๋ผ ๋„ค๊ฐ€์ง€ ํ˜•ํƒœ์˜ ํ…Œ์ด๋ธ”์„ ๊ฐ๊ฐ ์ œ๊ณตํ•œ๋‹ค. (Tag, Log, Volatile, Lookup)

์ด๋Š” ์„ผ์„œ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณ ๊ฐ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋งค์šฐ ๋‹ค์–‘ํ•˜๊ณ , ํ•˜๋‚˜์˜ ๋น„์ง€๋‹ˆ์Šค๊ฐ€ ํ•˜๋‚˜์˜ ํŠน์ • ๋ฐ์ดํ„ฐ ํŒจํ„ด ๋งŒ์„ ๋‹ด๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๊ธฐ๋„ ํ•˜๋‹ค.

๋”ฐ๋ผ์„œ, ๊ทธ๋Ÿฌํ•œ ๋น„์ง€๋‹ˆ์Šค ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ž˜ ์ดํ•ดํ•˜๊ณ , ์ ์ ˆํ•œ ํ…Œ์ด๋ธ”์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

์•„๋ž˜๋Š” ๊ฐ ํ…Œ์ด๋ธ”์˜ ํŠน์„ฑ์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค.

ํ…Œ์ด๋ธ” ์ข…๋ฅ˜Tag TableLog TableVolatile TableLookup Table
๋ชฉ์ 

<์„ผ์„œ๋ช…, ์‹œ๊ฐ„, ์„ผ์„œ๊ฐ’> ํ˜•ํƒœ์˜ ์„ผ์„œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์ตœ์ ํ™”

PLC ํ˜•ํƒœ ๋กœ๊ทธ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์ตœ์ ํ™”
(ํ…์ŠคํŠธ ํฌํ•จ)

ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐย  ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ์˜๊ตฌ ์ €์žฅ ๊ฐ€๋Šฅํ•œ ๋งˆ์Šคํ„ฐ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
์„ค๋ช…

๊ณ ์†์œผ๋กœ ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผย ์ €์žฅํ•˜๊ณ , ๊ณ ์†์œผ๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ฑฐ๋‚˜, ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ†ต๊ณ„ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ ํ™œ์šฉ

์ฃผ๋กœ, ์‹ค์‹œ๊ฐ„ ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ

ํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•œ ๋กœ๊ทธ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ ,
์ด๋ฅผ ์ผ๋ฐ˜ DBMS ํ˜•ํƒœ๋กœ ๋ถ„์„ํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ ํ™œ์šฉ

์ฃผ๋กœ, ํžˆ์Šคํ† ๋ฆฌ์„ฑ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ

Insert, Delete, Update, Select ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ์„ฑ๋Šฅ์œผ๋กœ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ (์ดˆ๋‹น ์ˆ˜๋งŒ๊ฑด)

์‹œ์Šคํ…œ ์ข…๋ฃŒ์‹œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€๋ฉฐ,
์ฃผ๋กœ key-value ๊ธฐ๋ฐ˜์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ์šฉ๋„๋กœ ํ™œ์šฉํ•จ.

์‚ฌ์šฉ์ž์˜ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ฃผ์š” ๋งˆ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ ์ €์žฅํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•จ.

SELECT ์„ฑ๋Šฅ์€ ๊ณ ์†์ด์ง€๋งŒ,
๋‚˜๋จธ์ง€ INSERT, UPDATE, DELETE๋Š” ๋””์Šคํฌ ๊ธฐ๋ฐ˜์˜ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•จ.

ํ…Œ์ด๋ธ”
๊ตฌ์กฐ

<์„ผ์„œ๋ช…, ์‹œ๊ฐ„, ์„ผ์„œ๊ฐ’> ์ด ๊ธฐ๋ณธํ˜•์ด๋ฉฐ,
์ถ”๊ฐ€๋กœ ์ปฌ๋Ÿผ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ž„์˜์˜ ์Šคํ‚ค๋งˆ ๊ฐ€๋Šฅ์ž„์˜์˜ ์Šคํ‚ค๋งˆ ๊ฐ€๋Šฅ (Primary Key ์ง€์ • ๊ฐ€๋Šฅ)
INSERT (์ž…๋ ฅ)
์„ฑ๋Šฅ
์ดˆ๋‹น ์ˆ˜๋ฐฑ๋งŒ๊ฑด์ดˆ๋‹น ์ˆ˜๋ฐฑ๋งŒ๊ฑด์ดˆ๋‹น ์ˆ˜๋งŒ๊ฑด์ดˆ๋‹น ์ˆ˜๋ฐฑ๊ฑด
SELECT
(์งˆ์˜)
์„ผ์„œ๋ช… + ์‹œ๊ฐ„ ๋ฒ”์œ„ ํ•œ์ •๋ชจ๋“  ์งˆ์˜ ๊ฐ€๋Šฅ
DELETE
(์‚ญ์ œ)

์ž„์˜ ์‹œ์  ์ด์ „ ๋ฐ์ดํ„ฐ ์‹ค์‹œ๊ฐ„ ์‚ญ์ œ ๊ฐ€๋Šฅ

์ž„์˜ ์‹œ์ /๊ตฌ๊ฐ„ ๋ฐ์ดํ„ฐ ์‹ค์‹œ๊ฐ„ ์‚ญ์ œ ๊ฐ€๋Šฅ

Primary Key ๊ธฐ์ค€ Record Delete ์ง€์› (โ€ป Primary Key ์ง€์ • ํ•„์š”)

UPDATE
(๋ณ€๊ฒฝ)
์ง€์› ๋ถˆ๊ฐ€ (โ€ป ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ปฌ๋Ÿผ ์— ํ•œํ•ด์„œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ)์ง€์› ๋ถˆ๊ฐ€Primary Key ๊ธฐ์ค€ Update ์ง€์› (โ€ป Primary Key ์ง€์ • ํ•„์š”)
์ €์žฅ์†Œ
ํฌ๊ธฐ ํ•œ๊ณ„
๋””์Šคํฌ ํ•œ๊ณ„๋ฉ”๋ชจ๋ฆฌ ํ•œ๊ณ„ (question)
INDEX
๊ตฌ์กฐ
3 ๋‹จ๊ณ„์˜ Partitioning ์‹ค์‹œ๊ฐ„ ์ธ๋ฑ์Šค (โ€ป ๊ธฐ๋ณธ ์ƒ์„ฑ)LSM ์ธ๋ฑ์ŠคRed/Black ๋ฉ”๋ชจ๋ฆฌ ์ธ๋ฑ์Šค
STREAM
์ง€์›
ํƒ€๊ฒŸ ๋Œ€์ƒ์œผ๋กœ๋งŒ ๊ฐ€๋Šฅ (์ €์žฅ ๋Œ€์ƒ)์†Œ์Šค/ํƒ€๊ฒŸ ๋Œ€์ƒ ๋ชจ๋‘ ๊ฐ€๋Šฅ (์ฝ๊ธฐ ๋ฐ ์ €์žฅ๋Œ€์ƒ)๋ถˆ๊ฐ€๋Šฅ
๊ณ ๋ ค ์‚ฌํ•ญ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋ฅผ ๊ณ ๋ คํ•œ ์ถฉ๋ถ„ํ•œ ์Šคํ† ๋ฆฌ์ง€ ํ™•๋ณด ๊ณ ๋ คTag ์ž…๋ ฅ์„ ์œ„ํ•œ ์ž„์‹œ ์ €์žฅ์†Œ๋กœ ๊ณ ๋ ค๋ฉ”๋ชจ๋ฆฌ ํ•œ๊ณ„ ๊ณ ๋ ค (question)


๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ํ•˜๋“œ์›จ์–ด ์ง€์›


๋งˆํฌ๋ฒ ์ด์Šค๋Š” ์‚ฌ์šฉ์ž์˜ย  ํ™˜๊ฒฝ์— ๋”ฐ๋ฅธ ์•„๋ž˜์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ œํ’ˆ 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 ๋‚˜ ์›น์„œ๋ฒ„ ๋กœ๊ทธ ๋“ฑ์˜ ์ด๋ฏธ ์ •ํ˜•ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž๊ฐ€ ์ž„์˜๋กœ ์ •์˜ํ•œ ๋กœ๊ทธ ํฌ๋งท์˜ ๊ฒฝ์šฐ์—๋„ ๋งค์šฐ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

Related content