DBaaS ์ฑ๋ฅ ๋ณด๊ณ ์์์ Atlas์ Capella์ ๋น๊ต๋ฅผ ํ์ธํ์ธ์.
์ค์ํ MongoDB์ ๋จ์ ๊ณผ ์ด๋ฅผ ๊ทน๋ณตํ๋ Couchbase์ ๋ฐฉ๋ฒ
๋์ ๊ณผ์ 1: ์ฟผ๋ฆฌ ๋ณต์ก์ฑ
NoSQL์์ SQL ์ฌ์ฉํด ๋ณด๊ธฐMongoDB
๋ชฝ๊ณ DB์๋ ์ ์ธ์ ์ฟผ๋ฆฌ ์ธ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์ฒ๋ฆฌํ๋ ค๋ฉด ๋ณต์กํ ์ ์ฐจ์ ๋ก์ง์ด ํ์ํฉ๋๋ค. ์ด๋ ์ฟผ๋ฆฌ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ ์ ํ๋ก ์ด์ด์ง๋๋ค.Couchbase
SQL++๋ ๊ฐ๋ฐ์์ ๊ธฐ์ ์๊ฒ JSON ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌ, ๋ณํ, ์กฐ์ํ ์ ์๋ ํํ๋ ฅ์ด ํ๋ถํ๊ณ ๊ฐ๋ ฅํ๋ฉฐ ์๋ฒฝํ ์ธ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. JSON ๋ฌธ์์ ๋ํ ํฌ๊ด์ ์ด๊ณ ์ ์ธ์ ์ธ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋งค๋ ฅ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.๊ณผ์ 2: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐ์ธ ๋ถ์กฑ
JOIN ์ MongoDB
์ค๋๋ ์ปฌ๋ ์ ์ ํจ๊ณผ์ ์ธ ๋ฌธ์ ์กฐ์ธ์ด ์์ผ๋ฉด ๋ฐ์ดํฐ ๋ชจ๋ธ ์ค๊ณ์ ๊ธฐ์ ์ ์ ์ฝ์ด ์๊ธธ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ๋ถํ์ํ ๋น์ ๊ทํ, ๋ฐ์ดํฐ ์ค๋ณต, ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ด ๋ฐ์ํฉ๋๋ค.Couchbase
๊ฐ๋ฐ์๋ ANSI ์กฐ์ธ์ ์๋ฒฝํ๊ฒ ์ง์ํ๋ฏ๋ก ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์์ SQL์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํ ์ ์์ต๋๋ค. ๋ฌธ์ ์กฐ์ธ ๋ฐ ์ง๊ณ ํธ์๋ค์ด์ ๋ํ ํฌ๊ด์ ์ธ ์ง์์ ๋ฐ์ ์ ์์ต๋๋ค.๊ณผ์ 3: RDBMS์์ ์ด๋ ค์ด ๋ง์ด๊ทธ๋ ์ด์
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ง์ด๊ทธ๋ ์ด์ MongoDB
MongoDB์ ๋ ์ ์ฟผ๋ฆฌ API๋ SQL ๊ฐ๋ฐ์์๊ฒ ๋์ ํ์ต ๊ณก์ ์ ์ด๋ํ๊ณ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น์ฉ์ด ๋ง์ด ๋๋ ๋ฐฉ์์ผ๋ก ์ฌ์์ฑํด์ผ ํฉ๋๋ค.Couchbase
SQL++๋ ์ ๊ณ ํ์ค SQL์ JSON์ผ๋ก ํ์ฅํฉ๋๋ค. ๋ ๊ฑฐ์ RDBMS ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฟผ๋ฆฌํ๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ JSON ๋ฌธ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฟผ๋ฆฌํ ์ ์์ต๋๋ค.์นด์ฐ์น๋ฒ ์ด์ค๋ ANSI SQL์ ํ์ฅํ์ฌ ๋ค์์ ์ง์ํฉ๋๋ค.
์ ์ฐํ JSON ์คํค๋ง
MongoDB ์ฟผ๋ฆฌ | ์นด์ฐ์น๋ฒ ์ด์ค SQL++ |
---|---|
db.stocks.aggregate([ { "$match": { "$and": [ {"๊ธฐํธ": { "$in": [ "AAPL", "GOOG"]}}, { "value": { "$gt": 0 }}]}}, { "$group": { "_id": { "์ฌ๋ณผ": "$symbol" }, "ํฉ๊ณ(๊ฐ * ๋ณผ๋ฅจ)": { "$sum": { "$multiply": [ "$value", "$๋ณผ๋ฅจ"]}}}}, { "$project": { "_id": 0, "ํฉ๊ณ(๊ฐ * ๋ณผ๋ฅจ)": "$sum(value * volume)", "์ฌ๋ณผ": "$_id.symbol"}} {"$sort": { "ํฉ๊ณ(๊ฐ * ๋ณผ๋ฅจ)": -1, "symbol": 1 }}]} |
ํฉ๊ณ ์ ํ(๊ฐ * ๋ณผ๋ฅจ) AS val, ๊ธฐํธ FROM ย db.stocks ์ด๋ ย ๊ธฐํธ IN ( "aapl", "goog" ) AND ๊ฐ > 0 ๊ทธ๋ฃน ๊ธฐ์ค ๊ธฐํธ ์ฃผ๋ฌธ ๊ธฐ์ค val DESC, ๊ธฐํธ ASC |
์น์บ์คํธ: ํ์ฅ์ฑ, ์ฑ๋ฅ ๋ฐ ์ํคํ ์ฒ ๊ฐ์ ์ ์ํด MongoDBโข์์ ์ ๊ทธ๋ ์ด๋ํ๋ ๋ฐฉ๋ฒ
์ง๊ธ ๋ฑ๋กํ๊ธฐ์นดํ ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค ๋น๊ต
์นด์ฐ์น๋ฒ ์ด์ค ์นดํ ๋ผโข์ ๋ค๋ฅธ ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค ์ ๊ณต์ ์ฒด(์: MongoDB์โข Atlas ํด๋ผ์ฐ๋ ์๋น์ค ๋ฐ Amazon์ DynamoDB ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค)๋ฅผ ๋น๊ตํด ๋ณด์ธ์. Couchbase Capella๊ฐ ์ต๊ณ ์ ์๋ฃจ์ ์ธ ์ด์ ๋ฅผ ์์๋ณด์ธ์.