NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง•

์†Œ๊ฐœ

NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง• โ€œ๊ทธ ์ž๋ฆฌ์— ๋จธ๋ฌผ๋ ค๋ฉด ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ๋‹ฌ๋ ค์•ผ ํ•ด์š”.
๊ทธ๋ฆฌ๊ณ  ์–ด๋”˜๊ฐ€์— ๊ฐ€๋ ค๋ฉด ์ตœ์†Œํ•œ ๋‘ ๋ฐฐ๋Š” ๋” ๋นจ๋ฆฌ ๋‹ฌ๋ ค์•ผ ํ•ด์š”!โ€
(c) ์ด์ƒํ•œ ๋‚˜๋ผ์˜ ์•จ๋ฆฌ์Šค

์–ผ๋งˆ ์ „ ๊ฐ•์˜๋ฅผ ํ•ด๋‹ฌ๋ผ๊ณ  ๋ถ€ํƒ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋ถ„์„๊ฐ€ ์šฐ๋ฆฌ ํšŒ์‚ฌ๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„ ์ฃผ์ œ์— ๋Œ€ํ•ด ์˜ค๋žซ๋™์•ˆ(๋•Œ๋กœ๋Š” ๋ช‡ ๋…„ ๋™์•ˆ) ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— IT ๊ธฐ์ˆ  ์„ธ๊ณ„์—์„œ ์šฐ๋ฆฌ ์ฃผ๋ณ€์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋†“์น˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํšŒ์‚ฌ์—์„œ๋Š”(๊ทธ๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค) ๋งŽ์€ ํ”„๋กœ์ ํŠธ๊ฐ€ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ ์–ด๋„ ์ง€๊ธˆ์€). ๊ทธ๋ž˜์„œ ์ €๋Š” ๊ฐ•์˜์—์„œ HBase์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„๋„๋กœ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด๊ณ  ์ž๋ฃŒ์˜ ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋ฐฉํ–ฅ์„ ๊ทธ์ชฝ์œผ๋กœ ๋งž์ถ”๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ๋„ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์—†๋Š” ์‚ฌ๋žŒ์€ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ช‡ ๋…„ ์ „์— ์ฝ์€ ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. Amandeep Khurana์˜ "HB ase ์Šคํ‚ค๋งˆ ๋””์ž์ธ ์†Œ๊ฐœ" ๊ธฐ์‚ฌ์—์„œ. ์˜ˆ์ œ๋ฅผ ๋ถ„์„ํ•  ๋•Œ ์ฒญ์ค‘์—๊ฒŒ ์ฃผ์š” ์•„์ด๋””์–ด๋ฅผ ๋” ์ž˜ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์˜ต์…˜์„ ๋น„๊ตํ–ˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ์— ๋‚˜๋Š” "ํ•  ์ผ์ด ์—†์–ด์„œ"(๊ฒฉ๋ฆฌ ๊ธฐ๊ฐ„์ด ๊ธด XNUMX์›” ์ฃผ๋ง์ด ํŠนํžˆ ๋„์›€์ด ๋จ) ์Šค์Šค๋กœ์—๊ฒŒ ์งˆ๋ฌธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ก ์  ๊ณ„์‚ฐ์ด ์‹ค์ œ์™€ ์–ผ๋งˆ๋‚˜ ์ผ์น˜ํ• ๊นŒ์š”? ์‚ฌ์‹ค ์ด ๊ธ€์˜ ์•„์ด๋””์–ด๋Š” ์ด๋ ‡๊ฒŒ ํƒ„์ƒํ–ˆ๋‹ค. ๋ฉฐ์น  ๋™์•ˆ NoSQL์„ ์‚ฌ์šฉํ•ด ์˜จ ๊ฐœ๋ฐœ์ž๋Š” NoSQL์—์„œ ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋ฐฐ์šฐ์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(๋”ฐ๋ผ์„œ ๊ธฐ์‚ฌ์˜ ์ ˆ๋ฐ˜์„ ์ฆ‰์‹œ ๊ฑด๋„ˆ๋›ธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค). ์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ถ„์„๊ฐ€์•„์ง NoSQL์„ ๋‹ค๋ฃจ์ง€ ์•Š์€ ๋ถ„๋“ค์—๊ฒŒ๋Š” HBase์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ดํ•ด๋ฅผ ์–ป๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ๋ถ„์„

์ œ ์ƒ๊ฐ์—๋Š” NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์‹ ์ค‘ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ์žฅ๋‹จ์ ์„ ๋”ฐ์ ธ๋ณผ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์ข… ๋ฌธ์ œ๋Š” ์ „ํ†ต์ ์ธ ๊ด€๊ณ„ํ˜• DBMS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŠน๋ณ„ํ•œ ์ด์œ  ์—†์ด๋Š” NoSQL์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์—์„œ์˜ ์„ค๊ณ„ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋‹ค์†Œ ๋‹ค๋ฅด๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ด์ „์— ๊ด€๊ณ„ํ˜• DBMS๋งŒ ๋‹ค๋ฃจ์—ˆ๋˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ๊ทธ ์ค‘ ์ผ๋ถ€๊ฐ€ ํŠน์ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋‚ด ๊ด€์ฐฐ์— ๋”ฐ๋ฅด๋ฉด). ๋”ฐ๋ผ์„œ "๊ด€๊ณ„ํ˜•" ์„ธ๊ณ„์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌธ์ œ ์˜์—ญ ๋ชจ๋ธ๋ง๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ชจ๋ธ์„ ๋น„์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค. NoSQL์—์„œ๋Š” ์šฐ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ์ž‘์—…์— ๋Œ€ํ•ด ์˜ˆ์ƒ๋˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ฆ‰์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น„์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์•„๋ž˜์—์„œ ์„ค๋ช…ํ•  ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ„์†ํ•ด์„œ ์—ฐ๊ตฌํ•  ๋‹ค์Œ๊ณผ ๊ฐ™์€ "ํ•ฉ์„ฑ" ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ์ถ”์ƒ์ ์ธ ์†Œ์…œ ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ์ž์˜ ์นœ๊ตฌ ๋ชฉ๋ก์— ๋Œ€ํ•œ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ์—ฐ๊ฒฐ์ด (Linkedin์ด ์•„๋‹Œ Instagram์—์„œ์™€ ๊ฐ™์ด) ๋ฐฉํ–ฅ์ด ์ง€์ •๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž A๊ฐ€ ์‚ฌ์šฉ์ž B๋ฅผ ์ฝ๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋‹ตํ•˜์‹ญ์‹œ์˜ค(์ฝ๊ธฐ ํŒจํ„ด).
  • ์‚ฌ์šฉ์ž B์—์„œ ์‚ฌ์šฉ์ž A๋ฅผ ๊ตฌ๋…/ํƒˆํ‡ดํ•˜๋Š” ๊ฒฝ์šฐ ์—ฐ๊ฒฐ ์ถ”๊ฐ€/์ œ๊ฑฐ ํ—ˆ์šฉ(๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ํ…œํ”Œ๋ฆฟ)

๋ฌผ๋ก  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์šฐ๋ฆฌ๋Š” ๋‹จ์ˆœํžˆ ๊ด€๊ณ„ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ (์˜ˆ๋ฅผ ๋“ค์–ด ์ด "์นœ๊ตฌ"๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฐ€์กฑ, ์ง์žฅ ๋“ฑ์˜ ์‚ฌ์šฉ์ž ๊ทธ๋ฃน์„ ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ) ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ์ตœ์ ํ™”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ์†๋„๋Š” ์ธ๋ฑ์Šค/ํŒŒํ‹ฐ์…”๋‹์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ตœ์ข… ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

USER_ID
์นœ๊ตฌ ์•„์ด๋””

Vasya
ํŽ˜ํ‹ฐ

Vasya
ะžะปั

์ดํ•˜์—์„œ๋Š” ์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ์•„์ด๋”” ๋Œ€์‹  ์ด๋ฆ„์„ ํ‘œ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

HBase์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • Full Table Scan์ด ์•„๋‹Œ ํšจ์œจ์ ์ธ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅ ํ‚ค๋กœ๋งŒ ๋…์ ์ ์œผ๋กœ
    • ์‚ฌ์‹ค, ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์นœ์ˆ™ํ•œ SQL ์ฟผ๋ฆฌ๋ฅผ ๊ทธ๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์œ ์ƒ๊ฐ์ธ ์ด์œ ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ๋™์ผํ•œ Impala์—์„œ ์กฐ์ธ ๋ฐ ๊ธฐํƒ€ ๋กœ์ง์ด ํฌํ•จ๋œ SQL ์ฟผ๋ฆฌ๋ฅผ HBase๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์–ผ๋งˆ๋‚˜ ํšจ๊ณผ์ ์ผ๊นŒ์š”?

๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž ID๋ฅผ ํ‚ค๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  "์นœ๊ตฌ ID๋ฅผ ์–ด๋””์— ์–ด๋–ป๊ฒŒ ์ €์žฅํ•ด์•ผ ํ• ๊นŒ์š”?"๋ผ๋Š” ์ฃผ์ œ์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ์ƒ๊ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์—ด์— ์ €์žฅํ•˜๋Š” ์•„์ด๋””์–ด์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋ถ„๋ช…ํ•˜๊ณ  "์ˆœ์ง„ํ•œ" ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ต์…˜ 1(๊ธฐ๋ณธ๊ฐ’)์ถ”๊ฐ€ ์ฐธ์กฐ์šฉ):

RowKey
์—ฐ์‚ฌ

Vasya
1: ํŽ˜ํŠธ์•ผ
2: ์˜ฌ๋ฆฌ์•ผ
3: ๋‹ค์ƒค

ํŽ˜ํ‹ฐ
1: ๋งˆ์ƒค
2: ๋ฐ”์ƒค

์—ฌ๊ธฐ์„œ ๊ฐ ๋ผ์ธ์€ ํ•œ ๋ช…์˜ ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ์ž์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์—ด์—๋Š” ์ด๋ฆ„์ด ์žˆ์Šต๋‹ˆ๋‹ค: 1, 2, ... - ์นœ๊ตฌ ์ˆ˜์— ๋”ฐ๋ผ ์นœ๊ตฌ์˜ ID๊ฐ€ ์—ด์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ํ–‰์—๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์—ด ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ์˜ ์˜ˆ์—์„œ ํ•œ ํ–‰์—๋Š” 1๊ฐœ์˜ ์—ด(2, 3, 1)์ด ์žˆ๊ณ  ๋‘ ๋ฒˆ์งธ ํ–‰์—๋Š” 2๊ฐœ์˜ ์—ด(XNUMX๊ณผ XNUMX)๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—†๋Š” ๋‘ ๊ฐœ์˜ HBase ์†์„ฑ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์—ด ๊ตฌ์„ฑ์„ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ(์นœ๊ตฌ ์ถ”๊ฐ€ -> ์—ด ์ถ”๊ฐ€, ์นœ๊ตฌ ์ œ๊ฑฐ -> ์—ด ์‚ญ์ œ)
  • ํ–‰๋งˆ๋‹ค ์—ด ๊ตฌ์„ฑ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž‘์—… ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•˜๋Š”์ง€ ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ: Vasya๊ฐ€ Olya๋ฅผ ๊ตฌ๋…ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ๋นผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๋ผ์ธ RowKey = "Vasya" ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Olya๋ฅผ "๋งŒ๋‚ " ๋•Œ๊นŒ์ง€ ์—ด ๊ฐ’์„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” Olya๋ฅผ "์ถฉ์กฑํ•˜์ง€ ์•Š์Œ"์œผ๋กœ ๋ชจ๋“  ์—ด์˜ ๊ฐ’์„ ๋ฐ˜๋ณตํ•˜๊ณ  False๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ํŽธ์ง‘: ์นœ๊ตฌ ์ถ”๊ฐ€: ๋น„์Šทํ•œ ์ž‘์—…์˜ ๊ฒฝ์šฐ ๋นผ๊ธฐ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๋ผ์ธ RowKey = "Vasya" ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นœ๊ตฌ์˜ ์ด ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์นœ๊ตฌ์˜ ID๋ฅผ ์ ์–ด์•ผ ํ•˜๋Š” ์—ด์˜ ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋ ค๋ฉด ์ด ์ด ์นœ๊ตฌ ์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ: ์นœ๊ตฌ ์‚ญ์ œ:
    • ๋นผ์•ผํ•จ ์ „์ฒด ๋ผ์ธ RowKey = "Vasya" ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ญ์ œํ•  ์นœ๊ตฌ๊ฐ€ ๊ธฐ๋ก๋œ ์—ด์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์—ด์„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
    • ๋‹ค์Œ์œผ๋กœ ์นœ๊ตฌ๋ฅผ ์‚ญ์ œํ•œ ํ›„ ๋ฒˆํ˜ธ ๋งค๊ธฐ๊ธฐ์— "๊ฐ„๊ฒฉ"์ด ์ƒ๊ธฐ์ง€ ์•Š๋„๋ก ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ์—ด๋กœ "์ด๋™"ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ "์กฐ๊ฑด๋ถ€ ์ ์šฉ" ์ธก๋ฉด์—์„œ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ผ๋งˆ๋‚˜ ์ƒ์‚ฐ์ ์ธ์ง€ ํ‰๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. O-์ƒ์ง•. ๊ฐ€์ƒ์˜ ์†Œ์…œ ๋„คํŠธ์›Œํฌ์˜ ํฌ๊ธฐ๋ฅผ n์œผ๋กœ ํ‘œ์‹œํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์นœ๊ตฌ ์ˆ˜๋Š” (n-1)์ž…๋‹ˆ๋‹ค. O ๊ธฐํ˜ธ ์‚ฌ์šฉ์˜ ํ‹€ ๋‚ด์—์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ์˜ ๋ชฉ์ ์— ๋”ฐ๋ผ ์ด (-1)์„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ: ์ „์ฒด ์ค„์„ ๋นผ๊ณ  ํ•œ๋„ ๋‚ด์—์„œ ๋ชจ๋“  ์—ด์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋น„์šฉ์˜ ์ƒํ•œ ์ถ”์ •์น˜๊ฐ€ ๋Œ€๋žต O(n)์ด ๋จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ํŽธ์ง‘: ์นœ๊ตฌ ์ถ”๊ฐ€: ์นœ๊ตฌ ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋ ค๋ฉด ํ–‰์˜ ๋ชจ๋“  โ€‹โ€‹์—ด์„ ๋ฐ˜๋ณตํ•œ ๋‹ค์Œ ์ƒˆ ์—ด์„ ์‚ฝ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. => O(n)
  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ: ์นœ๊ตฌ ์‚ญ์ œ:
    • ์ถ”๊ฐ€์™€ ์œ ์‚ฌ - ์ œํ•œ์˜ ๋ชจ๋“  ์—ด์„ ํ†ต๊ณผํ•ด์•ผ ํ•จ => O(n)
    • ์—ด์„ ์ œ๊ฑฐํ•œ ํ›„์—๋Š” "์ด๋™"ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด "์ •๋ฉด"์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ ํ•œ๋„ ๋‚ด์—์„œ ์ตœ๋Œ€ (n-1)๊ฐœ์˜ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์™€ ์‹ค์ œ ๋ถ€๋ถ„์—์„œ๋Š” ๊ณ ์ •๋œ ์ˆ˜์˜ ์ž‘์—…์— ๋Œ€ํ•ด "์˜์‚ฌ ์‹œํ”„ํŠธ"๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, n์— ๊ด€๊ณ„์—†์ด ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค. ์ด ์ƒ์ˆ˜ ์‹œ๊ฐ„(์ •ํ™•ํžˆ๋Š” O(2))์€ O(n)์— ๋น„ํ•ด ๋ฌด์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ‘๊ทผ ๋ฐฉ์‹์€ ์•„๋ž˜ ๊ทธ๋ฆผ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. "๋งˆ์ง€๋ง‰" ์—ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋Š” ์—ด์— ๋ณต์‚ฌํ•œ ๋‹ค์Œ ๋งˆ์ง€๋ง‰ ์—ด์„ ์‚ญ์ œํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
      NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง•

์ „์ฒด์ ์œผ๋กœ ๋ชจ๋“  ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์šฐ๋ฆฌ๋Š” O(n)์˜ ์ ๊ทผ์  ๊ณ„์‚ฐ ๋ณต์žก์„ฑ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
์•„๋งˆ๋„ ์šฐ๋ฆฌ๋Š” ๊ฑฐ์˜ ํ•ญ์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ „์ฒด ํ–‰์„ ์ฝ์–ด์•ผ ํ•˜๋ฉฐ, XNUMX๊ฐœ ์ค‘ XNUMX๊ฐœ์˜ ๊ฒฝ์šฐ์—๋Š” ๋ชจ๋“  ์—ด์„ ์‚ดํŽด๋ณด๊ณ  ์ด ์นœ๊ตฌ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ด๋ฏธ ์•Œ๊ณ  ๊ณ„์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์ ํ™”๋ฅผ ์‹œ๋„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ์ž์˜ ์ด ์นœ๊ตฌ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” "count" ์—ด์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, ์ด ์นœ๊ตฌ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์ „์ฒด ํ–‰์„ ์ฝ์„ ์ˆ˜๋Š” ์—†์ง€๋งŒ "count" ์—ด์€ ํ•˜๋‚˜๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ๋•Œ "์นด์šดํŠธ"๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €๊ฒƒ. ์šฐ๋ฆฌ๋Š” ํ–ฅ์ƒ๋œ๋‹ค ์˜ต์…˜ 2(๊ฐœ์ˆ˜):

RowKey
์—ฐ์‚ฌ

Vasya
1: ํŽ˜ํŠธ์•ผ
2: ์˜ฌ๋ฆฌ์•ผ
3: ๋‹ค์ƒค
์นด์šดํŠธ: 3

ํŽ˜ํ‹ฐ
1: ๋งˆ์ƒค
2: ๋ฐ”์ƒค

์นด์šดํŠธ: 2

์ฒซ ๋ฒˆ์งธ ์˜ต์…˜๊ณผ ๋น„๊ตํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ: "Vasya๊ฐ€ Olya๋ฅผ ์ฝ๋‚˜์š”?"๋ผ๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์–ป์œผ๋ ค๋ฉด ์•„๋ฌด๊ฒƒ๋„ ๋ณ€ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค => O(n)
  • ๋ฐ์ดํ„ฐ ํŽธ์ง‘: ์นœ๊ตฌ ์ถ”๊ฐ€: ์ด์ œ ์ „์ฒด ํ–‰์„ ์ฝ๊ณ  ํ•ด๋‹น ์—ด์„ ๋ฐ˜๋ณตํ•  ํ•„์š”๊ฐ€ ์—†๊ณ  "count" ์—ด์˜ ๊ฐ’๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ƒˆ ์นœ๊ตฌ ์‚ฝ์ž…์„ ๋‹จ์ˆœํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์นœ๊ตฌ๋ฅผ ์‚ฝ์ž…ํ•  ์—ด ๋ฒˆํ˜ธ๋ฅผ ์ฆ‰์‹œ ๊ฒฐ์ •ํ•˜์„ธ์š”. ์ด๋กœ ์ธํ•ด ๊ณ„์‚ฐ ๋ณต์žก์„ฑ์ด O(1)๋กœ ๊ฐ์†Œ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ: ์นœ๊ตฌ ์‚ญ์ œ: ์นœ๊ตฌ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์ด ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ์…€ ์™ผ์ชฝ์œผ๋กœ "์ด๋™"ํ•  ๋•Œ I/O ์ž‘์—… ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ญ์ œํ•ด์•ผ ํ•  ์—ด์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์—ด์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ•˜๋Š” ํ•„์š”์„ฑ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋‚จ์•„ ์žˆ์œผ๋ฏ€๋กœ => โ€‹โ€‹O(n)
  • ๋ฐ˜๋ฉด์— ์ด์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ๋งˆ๋‹ค "count" ์—ด์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜์ง€๋งŒ ์ด๋Š” ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋ฏ€๋กœ O ๊ธฐํ˜ธ ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด์—์„œ๋Š” ๋ฌด์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์˜ต์…˜ 2๊ฐ€ ์กฐ๊ธˆ ๋” ์ตœ์ ์œผ๋กœ ๋ณด์ด์ง€๋งŒ โ€œํ˜๋ช…๋ณด๋‹ค๋Š” ์ง„ํ™”โ€์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. "ํ˜๋ช…"์„ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ•„์š”๋กœ ํ•  ๊ฒƒ์ด๋‹ค ์˜ต์…˜ 3(์—ด).
๋ชจ๋“  ๊ฒƒ์„ "๊ฑฐ๊พธ๋กœ"๋Œ๋ฆฌ์ž: ์šฐ๋ฆฌ๋Š” ์ง€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ์—ด ์ด๋ฆ„ ์‚ฌ์šฉ์ž ID! ์—ด ์ž์ฒด์— ๊ธฐ๋ก๋  ๋‚ด์šฉ์€ ๋” ์ด์ƒ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ˆซ์ž 1๋กœ ๋‘์‹ญ์‹œ์˜ค(์ผ๋ฐ˜์ ์œผ๋กœ "๊ฐ€์กฑ/์นœ๊ตฌ/๊ธฐํƒ€" ๊ทธ๋ฃน๊ณผ ๊ฐ™์ด ์œ ์šฉํ•œ ํ•ญ๋ชฉ์ด ์—ฌ๊ธฐ์— ์ €์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ด์ „์— NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ๊ฒฝํ—˜์ด ์—†๋Š” ์ค€๋น„๋˜์ง€ ์•Š์€ "์ผ๋ฐ˜์ธ"์„ ๋†€๋ผ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด ์ž‘์—…์—์„œ HBase์˜ ์ž ์žฌ๋ ฅ์„ ํ›จ์”ฌ ๋” ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๋ฐ”๋กœ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

RowKey
์—ฐ์‚ฌ

Vasya
ํŽ˜ํ‹ฐ์•„: 1
์˜ฌ๋ฆฌ์•ผ: 1
๋‹ค์ƒค: 1

ํŽ˜ํ‹ฐ
๋งˆ์ƒค : 1
๋ฐ”์ƒค: 1

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์ ์„ ์–ป์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๊ตฌ์กฐ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ๊ณ„์‚ฐ ๋ณต์žก์„ฑ์„ ์ถ”์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ: Vasya๊ฐ€ Olya๋ฅผ ๊ตฌ๋…ํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋‹ตํ•˜๋ ค๋ฉด "Olya" ์—ด ํ•˜๋‚˜๋ฅผ ์ฝ๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์—ด์ด ์žˆ์œผ๋ฉด ๋Œ€๋‹ต์€ True์ด๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด โ€“ False => O(1)์ž…๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ํŽธ์ง‘: ์นœ๊ตฌ ์ถ”๊ฐ€: ์นœ๊ตฌ ์ถ”๊ฐ€: "์นœ๊ตฌ ID" ์—ด์„ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค => O(1)
  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ: ์นœ๊ตฌ ์‚ญ์ œ: ์นœ๊ตฌ ID ์—ด๋งŒ ์‚ญ์ œ => O(1)

๋ณด์‹œ๋‹ค์‹œํ”ผ ์ด ์Šคํ† ๋ฆฌ์ง€ ๋ชจ๋ธ์˜ ์ค‘์š”ํ•œ ์žฅ์ ์€ ํ•„์š”ํ•œ ๋ชจ๋“  ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ํ•˜๋‚˜์˜ ์—ด๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ „์ฒด ํ–‰์„ ์ฝ์ง€ ์•Š๊ณ  ์ด ํ–‰์˜ ๋ชจ๋“  โ€‹โ€‹์—ด์„ ์—ด๊ฑฐํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฉˆ์ถœ ์ˆ˜๋„ ์žˆ์ง€๋งŒ...

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•  ๋•Œ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ณ  I/O ์ž‘์—…์„ ์ค„์ด๋Š” ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ์กฐ๊ธˆ ๋” ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๊ด€๊ณ„ ์ •๋ณด๋ฅผ row key ์ž์ฒด์— ์ง์ ‘ ์ €์žฅํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ์ฆ‰, userID.friendID์™€ ๊ฐ™์€ ํ‚ค ํ•ฉ์„ฑ์„ ๋งŒ๋“œ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด ๊ฒฝ์šฐ์—๋Š” ์ค„์˜ ์—ด์„ ์ „ํ˜€ ์ฝ์„ ํ•„์š”์กฐ์ฐจ ์—†์Šต๋‹ˆ๋‹ค(์˜ต์…˜ 4(ํ–‰)):

RowKey
์—ฐ์‚ฌ

๋ฐ”์ƒค.ํŽ˜ํŠธ์•ผ
ํŽ˜ํ‹ฐ์•„: 1

๋ฐ”์ƒค.์˜ฌ๋ฆฌ์•ผ
์˜ฌ๋ฆฌ์•ผ: 1

๋ฐ”์ƒค.๋‹ค์ƒค
๋‹ค์ƒค: 1

ํŽ˜ํŠธ์•ผ.๋งˆ์ƒค
๋งˆ์ƒค : 1

ํŽ˜ํŠธ์•ผ.๋ฐ”์ƒค
๋ฐ”์ƒค: 1

๋ถ„๋ช…ํžˆ ์ด์ „ ๋ฒ„์ „์—์„œ์™€ ๊ฐ™์ด ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ํ‰๊ฐ€๋Š” O(1)์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ต์…˜ 3๊ณผ์˜ ์ฐจ์ด์ ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ I/O ์ž‘์—… ํšจ์œจ์„ฑ์—๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๋งˆ์ง€๋ง‰ "ํ™œ". ์˜ต์…˜ 4์—์„œ๋Š” ํ–‰ ํ‚ค์˜ ๊ธธ์ด๊ฐ€ ๊ฐ€๋ณ€์ ์ด์–ด์„œ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์—ฌ๊ธฐ์„œ HBase๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ดํŠธ ์ง‘ํ•ฉ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ํ…Œ์ด๋ธ”์˜ ํ–‰์€ ํ‚ค๋ณ„๋กœ ์ •๋ ฌ๋œ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค). ๋˜ํ•œ ์ผ๋ถ€ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ํ–ฅ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด userID ๋ฐ friendID์˜ ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‘ ํ•ด์‹œ ๋ชจ๋‘ ์ผ์ •ํ•œ ๊ธธ์ด๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ ์—†์ด ๊ฐ„๋‹จํžˆ ์—ฐ๊ฒฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค(์˜ต์…˜ 5(ํ•ด์‹œ)):

RowKey
์—ฐ์‚ฌ

dc084ef00e94aef49be885f9b01f51c01918fa783851db0dc1f72f83d33a5994
ํŽ˜ํ‹ฐ์•„: 1

dc084ef00e94aef49be885f9b01f51c0f06b7714b5ba522c3cf51328b66fe28a
์˜ฌ๋ฆฌ์•ผ: 1

dc084ef00e94aef49be885f9b01f51c00d2c2e5d69df6b238754f650d56c896a
๋‹ค์ƒค: 1

1918fa783851db0dc1f72f83d33a59949ee3309645bd2c0775899fca14f311e1
๋งˆ์ƒค : 1

1918fa783851db0dc1f72f83d33a5994dc084ef00e94aef49be885f9b01f51c0
๋ฐ”์ƒค: 1

๋ถ„๋ช…ํžˆ ์šฐ๋ฆฌ๊ฐ€ ๊ณ ๋ คํ•˜๊ณ  ์žˆ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋กœ ์ž‘์—…ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก์„ฑ์€ ์˜ต์…˜ 4, ์ฆ‰ O(1)๊ณผ โ€‹โ€‹๋™์ผํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ „์ฒด์ ์œผ๋กœ ๊ณ„์‚ฐ ๋ณต์žก์„ฑ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ถ”์ •์น˜๋ฅผ ํ•˜๋‚˜์˜ ํ‘œ์— ์š”์•ฝํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์นœ๊ตฌ ์ถ”๊ฐ€
์นœ๊ตฌ ํ™•์ธ ์ค‘
์นœ๊ตฌ ์‚ญ์ œ

์˜ต์…˜ 1(๊ธฐ๋ณธ๊ฐ’)
O (N)
O (N)
O (N)

์˜ต์…˜ 2(๊ฐœ์ˆ˜)
O (1)
O (N)
O (N)

์˜ต์…˜ 3(์—ด)
O (1)
O (1)
O (1)

์˜ต์…˜ 4(ํ–‰)
O (1)
O (1)
O (1)

์˜ต์…˜ 5(ํ•ด์‹œ)
O (1)
O (1)
O (1)

๋ณด์‹œ๋‹ค์‹œํ”ผ ์˜ต์…˜ 3-5๊ฐ€ ๊ฐ€์žฅ ์„ ํ˜ธ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ ์ด๋ก ์ ์œผ๋กœ ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ผ์ •ํ•œ ์‹œ๊ฐ„์— ์‹คํ–‰ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ž‘์—… ์กฐ๊ฑด์—์„œ๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ์นœ๊ตฌ ๋ชฉ๋ก์„ ์–ป์–ด์•ผ ํ•œ๋‹ค๋Š” ๋ช…์‹œ์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์—†์ง€๋งŒ ์‹ค์ œ ํ”„๋กœ์ ํŠธ ํ™œ๋™์—์„œ๋Š” ํ›Œ๋ฅญํ•œ ๋ถ„์„๊ฐ€๋กœ์„œ ๊ทธ๋Ÿฌํ•œ ์ž‘์—…์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  "์˜ˆ์ธก"ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. โ€œ๋นจ๋Œ€๋ฅผ ํŽด์„ธ์š”.โ€ ๋”ฐ๋ผ์„œ ์ €๋Š” ์˜ต์…˜ 3์— ๊ณต๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ ์ด ์š”์ฒญ์€ ์ด๋ฏธ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฏ€๋กœ ์ „์ฒด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ๋น„์ „์ด ์—†์œผ๋ฉด ๋งŒ๋“ค์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ตœ์ข… ๊ฒฐ๋ก .

์‹คํ—˜ ์ค€๋น„

๋‚˜๋Š” ์œ„์˜ ์ด๋ก ์  ์ฃผ์žฅ์„ ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธด ์ฃผ๋ง ๋™์•ˆ ๋ฐœ์ƒํ•œ ์•„์ด๋””์–ด์˜ ๋ชฉํ‘œ์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์— ๋Œ€ํ•ด ์„ค๋ช…๋œ ๋ชจ๋“  ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ "์กฐ๊ฑด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜"์˜ ์ž‘๋™ ์†๋„์™€ ์†Œ์…œ ๋„คํŠธ์›Œํฌ ๊ทœ๋ชจ(n)์˜ ์ฆ๊ฐ€์— ๋”ฐ๋ฅธ ์‹œ๊ฐ„ ์ฆ๊ฐ€๋ฅผ ํ‰๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ด€์‹ฌ์„ ๊ฐ–๊ณ  ์‹คํ—˜ ์ค‘์— ์ธก์ •ํ•  ๋Œ€์ƒ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•˜๋‚˜์˜ "๋น„์ฆˆ๋‹ˆ์Šค ์ž‘์—…"์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด "์กฐ๊ฑด๋ถ€ ์ ์šฉ"์ด ์†Œ๋น„ํ•œ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. "์‚ฌ์—… ๊ฑฐ๋ž˜"๋ž€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • ์ƒˆ ์นœ๊ตฌ ํ•œ๋ช… ์ถ”๊ฐ€
  • ์‚ฌ์šฉ์ž A๊ฐ€ ์‚ฌ์šฉ์ž B์˜ ์นœ๊ตฌ์ธ์ง€ ํ™•์ธ
  • ์นœ๊ตฌ XNUMX๋ช… ์‚ญ์ œ

๋”ฐ๋ผ์„œ ์ดˆ๊ธฐ ์„ค๋ช…์— ์„ค๋ช…๋œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜๋ฉด ๊ฒ€์ฆ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ๊ธฐ๋ก. ํฌ๊ธฐ n์˜ ์ดˆ๊ธฐ ๋„คํŠธ์›Œํฌ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. "ํ˜„์‹ค ์„ธ๊ณ„"์— ๋” ๊ฐ€๊นŒ์›Œ์ง€๊ธฐ ์œ„ํ•ด ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์นœ๊ตฌ์˜ ์ˆ˜๋„ ์ž„์˜ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. "์กฐ๊ฑด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜"์ด ์ƒ์„ฑ๋œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ HBase์— ์“ฐ๋Š” ์‹œ๊ฐ„์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฒฐ๊ณผ ์‹œ๊ฐ„์„ ์ถ”๊ฐ€๋œ ์ด ์นœ๊ตฌ ์ˆ˜๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํ•˜๋‚˜์˜ "๋น„์ฆˆ๋‹ˆ์Šค ์šด์˜"์— ๋Œ€ํ•œ ํ‰๊ท  ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ. ๊ฐ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๋…ํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์–ป์–ด์•ผ ํ•˜๋Š” "์„ฑ๊ฒฉ" ๋ชฉ๋ก์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ชฉ๋ก์˜ ๊ธธ์ด๋Š” ๋Œ€๋žต ์‚ฌ์šฉ์ž์˜ ์นœ๊ตฌ ์ˆ˜์ด๋ฉฐ, ์ฒดํฌ๋œ ์นœ๊ตฌ ์ค‘ ์ ˆ๋ฐ˜์€ "์˜ˆ"๋กœ ๋Œ€๋‹ตํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์ ˆ๋ฐ˜์€ "์•„๋‹ˆ์š”"๋กœ ๋Œ€๋‹ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธ์€ "์˜ˆ"์™€ "์•„๋‹ˆ์š”"๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ๋‚˜ํƒ€๋‚˜๋Š” ์ˆœ์„œ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค(์ฆ‰, ๋‘ ๋ฒˆ์งธ ๊ฒฝ์šฐ๋งˆ๋‹ค ์˜ต์…˜ 1๊ณผ 2์— ๋Œ€ํ•œ ์ค„์˜ ๋ชจ๋“  ์—ด์„ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค). ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ์ƒ์˜ ์‹œ๊ฐ„์„ ํ…Œ์ŠคํŠธ๋œ ์นœ๊ตฌ ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๊ณผ๋ชฉ๋‹น ํ‰๊ท  ์ƒ์˜ ์‹œ๊ฐ„์„ ์–ป์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์‚ญ์ œ. ์‚ฌ์šฉ์ž์—๊ฒŒ์„œ ๋ชจ๋“  ์นœ๊ตฌ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์‚ญ์ œ ์ˆœ์„œ๋Š” ๋ฌด์ž‘์œ„์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ ์›๋ž˜ ๋ชฉ๋ก์„ "์„ž์Šต๋‹ˆ๋‹ค". ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ํ™•์ธ ์‹œ๊ฐ„์„ ์ œ๊ฑฐ๋œ ์นœ๊ตฌ ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ํ™•์ธ๋‹น ํ‰๊ท  ์‹œ๊ฐ„์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

5๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์˜ต์…˜ ๊ฐ๊ฐ๊ณผ ์†Œ์…œ ๋„คํŠธ์›Œํฌ์˜ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์— ๋Œ€ํ•ด ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์‹œ๊ฐ„์ด ์„ฑ์žฅํ•จ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ•˜๋‚˜์˜ n ๋‚ด์—์„œ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ๊ณผ ํ™•์ธํ•  ์‚ฌ์šฉ์ž ๋ชฉ๋ก์€ 5๊ฐ€์ง€ ์˜ต์…˜ ๋ชจ๋‘์—์„œ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋” ๋‚˜์€ ์ดํ•ด๋ฅผ ์œ„ํ•ด ๋‹ค์Œ์€ n= 5์— ๋Œ€ํ•ด ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์ž‘์„ฑ๋œ "์ƒ์„ฑ๊ธฐ"๋Š” ์„ธ ๊ฐœ์˜ ID ์‚ฌ์ „์„ ์ถœ๋ ฅ์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ์ฒซ ๋ฒˆ์งธ๋Š” ์‚ฝ์ž…์šฉ์ž…๋‹ˆ๋‹ค.
  • ๋‘ ๋ฒˆ์งธ๋Š” ํ™•์ธ์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์„ธ ๋ฒˆ์งธ โ€“ ์‚ญ์ œ์šฉ

{0: [1], 1: [4, 5, 3, 2, 1], 2: [1, 2], 3: [2, 4, 1, 5, 3], 4: [2, 1]} # ะฒัะตะณะพ 15 ะดั€ัƒะทะตะน

{0: [1, 10800], 1: [5, 10800, 2, 10801, 4, 10802], 2: [1, 10800], 3: [3, 10800, 1, 10801, 5, 10802], 4: [2, 10800]} # ะฒัะตะณะพ 18 ะฟั€ะพะฒะตั€ัะตะผั‹ั… ััƒะฑัŠะตะบั‚ะพะฒ

{0: [1], 1: [1, 3, 2, 5, 4], 2: [1, 2], 3: [4, 1, 2, 3, 5], 4: [1, 2]} # ะฒัะตะณะพ 15 ะดั€ัƒะทะตะน

๋ณด์‹œ๋‹ค์‹œํ”ผ, ํ™•์ธ์„ ์œ„ํ•ด ์‚ฌ์ „์— ์žˆ๋Š” 10๋ณด๋‹ค ํฐ ๋ชจ๋“  ID๋Š” ํ™•์‹คํžˆ False๋ผ๋Š” ๋Œ€๋‹ต์„ ์ œ๊ณตํ•˜๋Š” ID์ž…๋‹ˆ๋‹ค. '์นœ๊ตฌ' ์ถ”๊ฐ€, ํ™•์ธ, ์‚ญ์ œ๋Š” ์‚ฌ์ „์— ๋ช…์‹œ๋œ ์ˆœ์„œ๋Œ€๋กœ ์ •ํ™•ํ•˜๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์‹คํ—˜์€ Windows 10์„ ์‹คํ–‰ํ•˜๋Š” ๋…ธํŠธ๋ถ์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ HBase๋Š” ํ•˜๋‚˜์˜ Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜๊ณ  Python๊ณผ Jupyter Notebook์€ ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Docker์—๋Š” 2๊ฐœ์˜ CPU ์ฝ”์–ด์™€ 2GB์˜ RAM์ด ํ• ๋‹น๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ๋ฐ ์‹œ๊ฐ„ ์ธก์ •์„ ์œ„ํ•œ "์กฐ๊ฑด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜" ๋ฐ "ํŒŒ์ดํ•‘" ์—๋ฎฌ๋ ˆ์ด์…˜๊ณผ ๊ฐ™์€ ๋ชจ๋“  ๋กœ์ง์€ Python์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” HBase ์ž‘์—…์— ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ดํ”ผ๋ฒ ์ด์Šค, ์˜ต์…˜ 5์— ๋Œ€ํ•œ ํ•ด์‹œ(MD5) ๊ณ„์‚ฐ - hashlib

ํŠน์ • ๋…ธํŠธ๋ถ์˜ ์ปดํ“จํŒ… ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•˜์—ฌ n = 10, 30, โ€ฆ์— ๋Œ€ํ•œ ์ถœ์‹œ๊ฐ€ ์‹คํ—˜์ ์œผ๋กœ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 170 - ์ „์ฒด ํ…Œ์ŠคํŠธ ์ฃผ๊ธฐ(๋ชจ๋“  n์— ๋Œ€ํ•œ ๋ชจ๋“  ์˜ต์…˜์— ๋Œ€ํ•œ ๋ชจ๋“  ์‹œ๋‚˜๋ฆฌ์˜ค)์˜ ์ด ์ž‘๋™ ์‹œ๊ฐ„์ด ํ›จ์”ฌ ๋” ํ•ฉ๋ฆฌ์ ์ด๊ณ  ํ•œ ๋ฒˆ์˜ ๋‹ค๊ณผํšŒ ๋™์•ˆ ์ ํ•ฉํ–ˆ๋˜ ๊ฒฝ์šฐ(ํ‰๊ท  15๋ถ„).

์—ฌ๊ธฐ์„œ๋Š” ์ด ์‹คํ—˜์—์„œ ์ ˆ๋Œ€์ ์ธ ์„ฑ๋Šฅ ์ˆ˜์น˜๋ฅผ ์ฃผ๋กœ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ์–ธ๊ธ‰ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์„ ์ƒ๋Œ€์ ์œผ๋กœ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์กฐ์ฐจ ์™„์ „ํžˆ ์ •ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ๋Š” n์— ๋”ฐ๋ฅธ ์‹œ๊ฐ„ ๋ณ€ํ™”์˜ ์„ฑ๊ฒฉ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ "ํ…Œ์ŠคํŠธ ์Šคํƒ ๋“œ" ๊ตฌ์„ฑ์„ ๊ณ ๋ คํ•˜๋ฉด ๋ฌด์ž‘์œ„ ๋ฐ ๊ธฐํƒ€ ์š”์ธ์˜ ์˜ํ–ฅ์ด "์ œ๊ฑฐ๋œ" ์‹œ๊ฐ„ ์ถ”์ •์น˜๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค( ๊ทธ๋Ÿฌํ•œ ์ž‘์—…์€ ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

์‹คํ—˜๊ฒฐ๊ณผ

์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ๋Š” ์นœ๊ตฌ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”๊ฐ€์ž…๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜ ๊ทธ๋ž˜ํ”„์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.
NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง•
์˜ˆ์ƒ๋Œ€๋กœ ์˜ต์…˜ 3-5๋Š” ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ์˜ ์ฆ๊ฐ€์™€ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์—†๋Š” ์„ฑ๋Šฅ ์ฐจ์ด์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ๊ฑฐ์˜ ์ผ์ •ํ•œ "๋น„์ฆˆ๋‹ˆ์Šค ํŠธ๋žœ์žญ์…˜" ์‹œ๊ฐ„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
์˜ต์…˜ 2๋„ ์ผ์ •ํ•˜์ง€๋งŒ ์•ฝ๊ฐ„ ๋” ๋‚˜์œ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์˜ต์…˜ 2-3์— ๋น„ํ•ด ๊ฑฐ์˜ ์ •ํ™•ํžˆ 5๋ฐฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Š” ์ด๋ก ๊ณผ ๊ด€๋ จ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ปํ•  ์ˆ˜๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„์ „์—์„œ๋Š” HBase์™€์˜ I/O ์ž‘์—… ์ˆ˜๊ฐ€ ์ •ํ™•ํžˆ 2๋ฐฐ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์›์น™์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ๋ฒค์น˜๊ฐ€ ์šฐ์ˆ˜ํ•œ ์ •ํ™•์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฐ„์ ‘์ ์ธ ์ฆ๊ฑฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ์˜ˆ์ƒํ•œ ๋Œ€๋กœ ์˜ต์…˜ 1์€ ๊ฐ€์žฅ ๋Š๋ฆฐ ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์œผ๋ฉฐ ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ์— ์„œ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์ด ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
์ด์ œ ๋‘ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง•
์˜ต์…˜ 3-5๋Š” ๋‹ค์‹œ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด ์ผ์ •ํ•œ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ์˜ต์…˜ 1๊ณผ 2๋Š” ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์‹œ๊ฐ„์ด ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ณ  ์œ ์‚ฌํ•œ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋”์šฑ์ด, ์˜ต์…˜ 2๋Š” ์กฐ๊ธˆ ๋” ๋Š๋ฆฐ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ถ„๋ช…ํžˆ ์ถ”๊ฐ€ "์นด์šดํŠธ" ์—ด์„ ๊ต์ •ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ฉฐ, ์ด๋Š” n์ด ์„ฑ์žฅํ•จ์— ๋”ฐ๋ผ ๋”์šฑ ๋ˆˆ์— ๋„๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋น„๊ต์˜ ์ •ํ™•์„ฑ์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๋ก ์„ ๋‚ด๋ฆฌ์ง€๋Š” ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ๋น„์œจ(์˜ต์…˜ 1 ๋˜๋Š” 2๊ฐ€ ๋” ๋น ๋ฆ„)์€ ์‹คํ–‰๋งˆ๋‹ค ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜์กด์„ฑ ๋ฐ "์ƒ๋Œ€๋ฐฉ"์˜ ํŠน์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ).

์ž, ๋งˆ์ง€๋ง‰ ๊ทธ๋ž˜ํ”„๋Š” ์ œ๊ฑฐ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

NoSQL์šฉ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„์˜ ํŠน์ง•

์ด๋ฒˆ์—๋„ ๋†€๋ž„ ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์˜ต์…˜ 3~5๋Š” ์ผ์ •ํ•œ ์‹œ๊ฐ„์— ์ œ๊ฑฐ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋”์šฑ์ด ํฅ๋ฏธ๋กญ๊ฒŒ๋„ ์˜ต์…˜ 4์™€ 5๋Š” ์ด์ „ ์‹œ๋‚˜๋ฆฌ์˜ค์™€ ๋‹ฌ๋ฆฌ ์˜ต์…˜ 3์— ๋น„ํ•ด ๋ˆˆ์— ๋„๊ฒŒ ์•ฝ๊ฐ„ ๋‚˜์œ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ํ–‰ ์‚ญ์ œ ์ž‘์—…์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋…ผ๋ฆฌ์ ์ธ ์—ด ์‚ญ์ œ ์ž‘์—…๋ณด๋‹ค ๋น„์šฉ์ด ๋” ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋Œ€๋กœ ์˜ต์…˜ 1๊ณผ 2๋Š” ์‹œ๊ฐ„์ด ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋™์‹œ์— ์˜ต์…˜ 2๋Š” ์นด์šดํŠธ ์—ด์„ "์œ ์ง€"ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ I/O ์ž‘์—…์œผ๋กœ ์ธํ•ด ์˜ต์…˜ 1๋ณด๋‹ค ์ง€์†์ ์œผ๋กœ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

์‹คํ—˜์˜ ์ผ๋ฐ˜์ ์ธ ๊ฒฐ๋ก :

  • ์˜ต์…˜ 3-5๋Š” HBase๋ฅผ ํ™œ์šฉํ•˜๋ฏ€๋กœ ๋” ๋†’์€ ํšจ์œจ์„ฑ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ฑ๋Šฅ์€ ์ƒ์ˆ˜์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅด๋ฉฐ ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ์— ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์˜ต์…˜ 4์™€ 5์˜ ์ฐจ์ด๋Š” ๊ธฐ๋ก๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ์˜ต์…˜ 5๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ๋ฒค์น˜์˜ ์„ฑ๋Šฅ ํŠน์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์‚ฌ์šฉ๋œ ์‹คํ—˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ์ด๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์—†์—ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "๋น„์ฆˆ๋‹ˆ์Šค ์šด์˜"์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„ ์ฆ๊ฐ€์˜ ํŠน์„ฑ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  ์˜ต์…˜์— ๋Œ€ํ•ด ์ด์ „์— ์–ป์€ ์ด๋ก ์  ๊ณ„์‚ฐ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ปคํŠผ์ฝœ

์ˆ˜ํ–‰๋œ ๋Œ€๋žต์ ์ธ ์‹คํ—˜์„ ์ ˆ๋Œ€์ ์ธ ์ง„์‹ค๋กœ ๋ฐ›์•„๋“ค์—ฌ์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ณ ๋ ค๋˜์ง€ ์•Š๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์™œ๊ณกํ•˜๋Š” ์š”์ธ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค(์ด๋Ÿฌํ•œ ๋ณ€๋™์€ ํŠนํžˆ ๋„คํŠธ์›Œํฌ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๊ทธ๋ž˜ํ”„์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ์˜ˆ๋ฅผ ๋“ค์–ด, happybase์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ ˆ์•ฝ์˜ ์†๋„, ๋‚ด๊ฐ€ Python์œผ๋กœ ์ž‘์„ฑํ•œ ๋…ผ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์–‘๊ณผ ๋ฐฉ๋ฒ•(์ฝ”๋“œ๊ฐ€ ์ตœ์ ์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ๊ณ  ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ธฐ๋Šฅ์„ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ ๋Š” ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค), ์•„๋งˆ๋„ HBase ์บ์‹ฑ ๊ธฐ๋Šฅ, ๋‚ด ๋…ธํŠธ๋ถ์—์„œ Windows 10์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ™œ๋™ ๋“ฑ ์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ์ด๋ก ์  ๊ณ„์‚ฐ์ด ์‹คํ—˜์ ์œผ๋กœ ๊ทธ ํƒ€๋‹น์„ฑ์„ ์ž…์ฆํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„, ์•„๋‹ˆ๋ฉด ์ ์–ด๋„ ๊ทธ๋Ÿฌํ•œ "์ •๋ฉด ๊ณต๊ฒฉ"์œผ๋กœ ๊ทธ๋“ค์„ ๋ฐ˜๋ฐ•ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ, HBase์—์„œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์„ค๊ณ„ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ์€ ์ด์ „์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ๊ฒฝํ—˜์„ ์š”์•ฝํ•˜๊ณ  "๊ณ„๋ช…"์„ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์„ค๊ณ„ํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” ๋„๋ฉ”์ธ ๋ชจ๋ธ์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์˜ ์ž‘์—…๊ณผ ํŒจํ„ด์„ ๋ฐ”ํƒ•์œผ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ํšจ์œจ์ ์ธ ์•ก์„ธ์Šค(์ „์ฒด ํ…Œ์ด๋ธ” ์Šค์บ” ์—†์Œ) โ€“ ํ‚ค๋กœ๋งŒ ๊ฐ€๋Šฅ
  • ๋น„์ •๊ทœํ™”
  • ์„œ๋กœ ๋‹ค๋ฅธ ํ–‰์—๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์—ด์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์Šคํ”ผ์ปค์˜ ๋™์  ๊ตฌ์„ฑ

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€