๋ฌธ์„œ ๋ฉ”๋‰ด
๋ฌธ์„œ ํ™ˆ
/
BI ์ปค๋„ฅํ„ฐ
/

mongodrdl

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

  • ์„ค๋ช…
  • ๊ตฌ๋ฌธ
  • ๊ธฐ๋ณธ ์ตœ์†Œ TLS ๋ฒ„์ „
  • ๋ช…๋ น.
  • ์˜ต์…˜
  • ์‚ฌ์šฉ ์˜ˆ
  • MongoDB Atlas ์˜ˆ์ œ

์ฐธ๊ณ 

BI์šฉ MongoDB Connector ๋ฐ ๊ด€๋ จ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š”ํ˜„์žฌ ์ง€์›๋˜๋Š” ๋ชจ๋“  MongoDB ์„œ๋ฒ„ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

mongodrdl BI์šฉ MongoDB Connector๋ฅผ ์œ„ํ•œ ๊ด€๊ณ„ํ˜• ์Šคํ‚ค๋งˆ ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. mongodrdl ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Produce a schema ์€(๋Š”) ํ•˜๋‚˜ ์ด์ƒ์˜ MongoDB ์ปฌ๋ ‰์…˜ ์˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ mongosqld ์—์„œ์‚ฌ์šฉํ•˜๋Š” .drdl ํŒŒ์ผ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

  • Upload .drdl ํŒŒ์ผ์˜ ์Šคํ‚ค๋งˆ๋ฅผ BI Connector๊ฐ€ ์ฝ๊ณ  ์žˆ๋Š” MongoDB ๋ฐฐํฌ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • Download MongoDB ๋ฐฐํฌ์— ์ €์žฅ๋œ ์Šคํ‚ค๋งˆ.

  • Delete MongoDB ๋ฐฐํฌ์— ์ €์žฅ๋œ ์Šคํ‚ค๋งˆ.

  • Name MongoDB ๋ฐฐํฌ์— ์ €์žฅ๋œ ์Šคํ‚ค๋งˆ๋ฅผ ํ†ตํ•ด ๋”์šฑ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌ.

.drdl ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•˜์—ฌ BI Connector์˜ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1}.drdl ํ˜•์‹ ๋ฐ .drdl ํŒŒ์ผ ์ˆ˜๋™ ํŽธ์ง‘์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด DRDL ํŒŒ์ผ์—์„œ ์Šคํ‚ค๋งˆ ๋กœ๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ชจ๋“  BI Connector ์Šคํ‚ค๋งˆ ๊ด€๋ฆฌ ์˜ต์…˜์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ๊ด€๊ณ„ํ˜• ์Šคํ‚ค๋งˆ๋ฅผ MongoDB์— ๋งคํ•‘์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ค‘์š”

DRDL ํŒŒ์ผ์— ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์„ ์ ์šฉํ•˜๋ ค๋ฉด mongosqld๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

mongodrdl ๋‹ค์Œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

mongodrdl [<command>] [<options...>]

๋ฒ„์ „ 2.6์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ

๊ธฐ๋ณธ ์ตœ์†Œ TLS ๋ฒ„์ „์€ 1 ์ž…๋‹ˆ๋‹ค. { mongodrdl ์—์„œ MongoDB๋กœ ๋‚˜๊ฐ€๋Š” ์—ฐ๊ฒฐ์˜ ๊ฒฝ์šฐ 1 ์ž…๋‹ˆ๋‹ค.

--minimumTLSVersion ์˜ต์…˜์œผ๋กœ ์ด ์„ค์ •์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „ 2.11์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ.

mongodrdl์˜ ๋™์ž‘์€ ๋‹ค์Œ ๋ช…๋ น ์ค‘ ํ•˜๋‚˜์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด mongodrdl์ด ์ง€์ •๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ƒ˜ํ”Œ๋งํ•ฉ๋‹ˆ๋‹ค.

sample

--db, ์„ ํƒ์  --collection ๋ฐ ๊ธฐํƒ€ ๋ช…๋ น์ค„ ์˜ต์…˜์œผ๋กœ ์ง€์ •๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ƒ˜ํ”Œ๋งํ•˜์—ฌ .drdl ํŒŒ์ผ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. sample ๋ช…๋ น์€ ๋ฒ„์ „ 2.11 ์ด์ „์˜ ๋ชจ๋“  mongodrdl ๋™์ž‘์„ ์บก์Šํ™”ํ•ฉ๋‹ˆ๋‹ค.

mongodrdl sample --db <db-name> --collection <collection-name> --out <filename>.drdl
list-schema-ids

์ €์žฅ๋œ ๊ฐ ์Šคํ‚ค๋งˆ์˜ ObjectId์™€ ์ƒ์„ฑ๋œ ๋‚ ์งœ์˜ ๋ฌธ์ž์—ด ํ‘œํ˜„์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

list-schema-ids ๋‹ค์Œ ์˜ต์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

์ด๋ฆ„
์„ค๋ช…
--schemaSource
ํ•„์ˆ˜ ์‚ฌํ•ญ. ์Šคํ‚ค๋งˆ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋ช…๋ น์€ schemas ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์Šคํ‚ค๋งˆ ID๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค:

mongodrdl list-schema-ids --schemaSource schemas

์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

5d72ad695c23a9e3e26e3c85 2019-09-06T15:03:05.556Z
5d72adea5c23a9e44882a1ad 2019-09-06T15:05:14.349Z
list-schema-names

์ด๋ฆ„์ด ์žˆ๋Š” ๊ฐ ์ €์žฅ๋œ ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•œ ObjectId์˜ ์ด๋ฆ„๊ณผ ๋ฌธ์ž์—ด ํ‘œํ˜„์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ๋œ ์Šคํ‚ค๋งˆ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ฆ„์ด ์ง€์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. download ๋ฐ delete ๋ช…๋ น๊ณผ ํ•จ๊ป˜ --name ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ช…๋œ ์Šคํ‚ค๋งˆ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. name-schema ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ‚ค๋งˆ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

list-schema-names ๋‹ค์Œ ์˜ต์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

์ด๋ฆ„
์„ค๋ช…
ํ•„์ˆ˜ ์‚ฌํ•ญ. ์Šคํ‚ค๋งˆ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ๋ช…๋ น์€ schemas ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ๋ช…๋ช…๋œ ๊ฐ ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•œ ์ด๋ฆ„๊ณผ ObjectId๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

mongodrdl list-schema-names --schemaSource schemas

์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

movies 5d72ad695c23a9e3e26e3c85
theaters 5d72adea5c23a9e44882a1ad
upload

์ง€์ •๋œ .drdl ํŒŒ์ผ์—์„œ --schemaSource ์˜ต์…˜์œผ๋กœ ์ง€์ •๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์Šคํ‚ค๋งˆ๋ฅผ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ๊ฐ€ schemas ์ปฌ๋ ‰์…˜์— ์—…๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

upload ๋‹ค์Œ ์˜ต์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

์ด๋ฆ„
์„ค๋ช…
ํ•„์ˆ˜ ์‚ฌํ•ญ. ์Šคํ‚ค๋งˆ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
--drdl
ํ•„์ˆ˜ ์‚ฌํ•ญ. ์—…๋กœ๋“œํ•  .drdl ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ๋ช…๋ น์€ movies.drdl ํŒŒ์ผ์˜ ์Šคํ‚ค๋งˆ๋ฅผ schemas ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

mongodrdl upload --schemaSource schemas --drdl ./movies.drdl

์—…๋กœ๋“œ๋œ ์Šคํ‚ค๋งˆ์˜ ObjectId์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด ํ‘œํ˜„์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค:

5d793f3f6a26a3ce66c304ea

๋‹ค์Œ ๋‹จ๊ณ„๋Š” name-schema ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ณตํ•œ ์ด๋ฆ„์œผ๋กœ ์Šคํ‚ค๋งˆ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

mongodrdl name-schema --name movies --schemaSource schemas --schema 5d793f3f6a26a3ce66c304ea

์ด๋ฆ„์ด ์ง€์ •๋œ ์ƒˆ๋กœ ์—…๋กœ๋“œ๋œ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด --schemaSource ์˜ต์…˜์œผ๋กœ ์ง€์ •๋œ ์Šคํ‚ค๋งˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ mongosqld๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ์Šคํ‚ค๋งˆ ์ด๋ฆ„์„ --schemaName(์œผ)๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค:

mongosqld --schemaSource <schema-db> --schemaName movies

์ค‘์š”

์‚ฌ์šฉ์ž ์ง€์ • ์Šคํ‚ค๋งˆ๋ฅผ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฐ˜๋“œ์‹œ name-schema๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์ •๋œ ์ด๋ฆ„์œผ๋กœ ์ €์žฅํ•œ ๋‹ค์Œ mongosqld์— --schemaName์œผ๋กœ ์ด ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ ์Šคํ‚ค๋งˆ ์ด๋ฆ„์„ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฉด ์Šคํ‚ค๋งˆ ์ด๋ฆ„์€ defaultSchema๋กœ ๊ธฐ๋ณธ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ ์ด๋ฆ„์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ mongosqld์—์„œ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 'MongoDB ์Šคํ‚ค๋งˆ๋ฅผ ์•„์ง ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ ์ดˆ๊ธฐํ™” ์˜ค๋ฅ˜: ํ•ด๋‹น ์ด๋ฆ„์˜ ์Šคํ‚ค๋งˆ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.'

download

์ด๋ฆ„ ๋˜๋Š” ObjectId์˜ ๋ฌธ์ž์—ด ํ‘œํ˜„์œผ๋กœ ์ง€์ •๋œ ์Šคํ‚ค๋งˆ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์ฝ˜์†”์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

download ๋‹ค์Œ ์˜ต์…˜์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค:

์ด๋ฆ„
์„ค๋ช…
ํ•„์ˆ˜ ์‚ฌํ•ญ. ์Šคํ‚ค๋งˆ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
--name

์Šคํ‚ค๋งˆ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ ์ด๋ฆ„ ์ง€์ •์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด name-schema ๋ช…๋ น์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--schema๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

--schema

์Šคํ‚ค๋งˆ์˜ ObjectId์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด ํ‘œํ˜„์ž…๋‹ˆ๋‹ค.

--name๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ๋ช…๋ น์€ movies ์Šคํ‚ค๋งˆ๋ฅผ ์ฝ˜์†”์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

mongodrdl download --schemaSource schemas --name movies

์Šคํ‚ค๋งˆ๋ฅผ .drdl ํŒŒ์ผ์— ์ €์žฅํ•˜๋ ค๋ฉด ์ถœ๋ ฅ์„ ์›ํ•˜๋Š” .drdl ํŒŒ์ผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค:

mongodrdl download --schemaSource schemas --name movies > ./movies.drdl
delete

ObjectId์˜ ์ด๋ฆ„ ๋˜๋Š” ๋ฌธ์ž์—ด ํ‘œํ˜„์œผ๋กœ ์ง€์ •๋œ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

delete ๋‹ค์Œ ์˜ต์…˜์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค:

์ด๋ฆ„
์„ค๋ช…
ํ•„์ˆ˜ ์‚ฌํ•ญ. ์Šคํ‚ค๋งˆ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
--name

์Šคํ‚ค๋งˆ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ ์ด๋ฆ„ ์ง€์ •์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด name-schema ๋ช…๋ น์„ ์ฐธ์กฐํ•˜์„ธ์š”.

--schema๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

--schema

์Šคํ‚ค๋งˆ์˜ ObjectId์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด ํ‘œํ˜„์ž…๋‹ˆ๋‹ค.

--name๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ๋ช…๋ น์€ schemas ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ID๊ฐ€ 5d7941dc6a26a3d0fc397284์ธ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

mongodrdl delete --schemaSource schemas --schema 5d7941dc6a26a3d0fc397284
name-schema

์Šคํ‚ค๋งˆ์˜ ์ƒˆ ์ด๋ฆ„์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์Šคํ‚ค๋งˆ์˜ ๊ธฐ์กด ์ด๋ฆ„์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ๋œ ์Šคํ‚ค๋งˆ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ฆ„์ด ์ง€์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. download ๋ฐ delete ๋ช…๋ น๊ณผ ํ•จ๊ป˜ --name ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ช…๋œ ์Šคํ‚ค๋งˆ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. name-schema ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ‚ค๋งˆ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

name-schema ๋‹ค์Œ ์˜ต์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

์ด๋ฆ„
์„ค๋ช…
ํ•„์ˆ˜ ์‚ฌํ•ญ. ์Šคํ‚ค๋งˆ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ•„์ˆ˜ ์‚ฌํ•ญ. ์Šคํ‚ค๋งˆ์˜ ์ƒˆ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
ํ•„์ˆ˜ ์‚ฌํ•ญ ์Šคํ‚ค๋งˆ์˜ ObjectId์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด ํ‘œํ˜„์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋ช…๋ น์€ schemas ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ 5d72adea5c23a9e44882a1ad ์Šคํ‚ค๋งˆ ์ด๋ฆ„์„ movies๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค:

mongodrdl name-schema --name movies --schemaSource schemas --schema 5d72adea5c23a9e44882a1ad
--help

์˜ต์…˜ ๋ฐ mongodrdl์˜ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

--version

mongodrdl ๋ฆด๋ฆฌ์Šค ๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

--verbose <level>, -v <level>

mongodrdl์ด ๋” ์ž์„ธํ•œ ๋กœ๊ทธ ์ถœ๋ ฅ์„ ์ œ๊ณตํ•˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ž์„ธํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์—ฌ๋Ÿฌ ๋ฒˆ(์˜ˆ: -vvvvv) ํฌํ•จํ•˜๊ฑฐ๋‚˜ ์ˆซ์ž ๊ฐ’(์˜ˆ: --verbose=5)์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--quiet

๋ชจ๋“  ๋กœ๊ทธ ์ถœ๋ ฅ์„ ์ˆจ๊น๋‹ˆ๋‹ค.

--uri <mongodb-uri>

๋ฒ„์ „ 2.12์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

MongoDB URI ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

์ค‘์š”

๋‹ค์Œ ๋ช…๋ น์ค„ ์˜ต์…˜์€ --uri ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋Œ€์‹  ์ด๋Ÿฌํ•œ ์˜ต์…˜์„ --uri ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์˜ ์ผ๋ถ€๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--host <hostname><:port>, -h <hostname><:port>

๊ธฐ๋ณธ๊ฐ’: localhost:27017

์—ฐ๊ฒฐํ•  mongod ์— ๋Œ€ํ•ด ํ™•์ธ ๊ฐ€๋Šฅํ•œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ mongodrdl ๋Š” ํฌํŠธ ๋ฒˆํ˜ธ 27017 ์˜ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ธ MongoDB ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด replSetName๊ณผ ์„ธํŠธ ๋ฉค๋ฒ„์˜ ์‹œ๋“œ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>

ํ˜ธ์ŠคํŠธ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•˜์—ฌ ์–ธ์ œ๋“ ์ง€ ๋‹จ์ผ MongoDB ์ธ์Šคํ„ด์Šค์— ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--port <port>

๊ธฐ๋ณธ๊ฐ’: 27017

MongoDB ์ธ์Šคํ„ด์Šค๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ ์ˆ˜์‹ ์„ ๋Œ€๊ธฐํ•˜๋Š” TCP ํฌํŠธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--db <database>, -d <database>

.drdl ์Šคํ‚ค๋งˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--collection <collection>, -c <collection>

.drdl ์Šคํ‚ค๋งˆ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ปฌ๋ ‰์…˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ด ์˜ต์…˜์€ ์ง€์ •๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ๋ชจ๋“  ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--customFilterField <name>, -f <name>

์‚ฌ์šฉ์ž ์ง€์ • MongoDB ํ•„ํ„ฐ์— ์ถ”๊ฐ€ํ•  ํ•„๋“œ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž ์ง€์ • ํ•„ํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

--out <path>, -o <path>

๊ธฐ๋ณธ๊ฐ’: ํ‘œ์ค€ ์•„์›ƒ.

mongodrdl ์ด ์Šคํ‚ค๋งˆ ํŒŒ์ผ์„ ์ž‘์„ฑํ•  ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ๋ฅผ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ๋ณด๋‚ด๋ ค๋ฉด ๊ฒฝ๋กœ ๋Œ€์‹  "-"๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--sampleSize <size>, -s <size>

๊ธฐ๋ณธ๊ฐ’: 1000

์ปฌ๋ ‰์…˜์˜ ์Šคํ‚ค๋งˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ƒ˜ํ”Œ๋งํ•  ๋ฌธ์„œ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--uuidSubtype3Encoding <old|csharp|java>, -b <old|csharp|java>

UUID ๋ฐ”์ด๋„ˆ๋ฆฌ ํ•˜์œ„ ์œ ํ˜•3์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฝ”๋”ฉ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ’ ์ค‘์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  • old: ์ด์ „ BSON ๋ฐ”์ด๋„ˆ๋ฆฌ ํ•˜์œ„ ์œ ํ˜• ํ‘œํ˜„

  • csharp: C#/.NET ๋ ˆ๊ฑฐ์‹œ UUID ํ‘œํ˜„

  • java: Java ๋ ˆ๊ฑฐ์‹œ UUID ํ‘œํ˜„

--preJoined

์ƒ์œ„ ์—ด์„ ํฌํ•จํ•˜์—ฌ ์–ธ์™€์ธ๋”ฉ๋œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜์—ฌ '์‚ฌ์ „์— ์กฐ์ธ๋œ' ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

--schema <db-id>

๋ฒ„์ „ 2.11์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ.

ํ•„์ˆ˜ ์‚ฌํ•ญ. ์Šคํ‚ค๋งˆ ObjectId์˜ ๋ฌธ์ž์—ด ํ‘œํ˜„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--name <db-name>

๋ฒ„์ „ 2.11์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ.

์Šคํ‚ค๋งˆ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์‚ฌ์šฉ์ž ์ง€์ • ์Šคํ‚ค๋งˆ๋ฅผ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฐ˜๋“œ์‹œ name-schema๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์ •๋œ ์ด๋ฆ„์œผ๋กœ ์ €์žฅํ•œ ๋‹ค์Œ mongosqld์— --schemaName์œผ๋กœ ์ด ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ๋ฅผ ์—…๋กœ๋“œํ•  ๋•Œ ์Šคํ‚ค๋งˆ ์ด๋ฆ„์„ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฉด ์Šคํ‚ค๋งˆ ์ด๋ฆ„์€ defaultSchema๋กœ ๊ธฐ๋ณธ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ ์ด๋ฆ„์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ mongosqld์—์„œ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 'MongoDB ์Šคํ‚ค๋งˆ๋ฅผ ์•„์ง ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ ์ดˆ๊ธฐํ™” ์˜ค๋ฅ˜: ํ•ด๋‹น ์ด๋ฆ„์˜ ์Šคํ‚ค๋งˆ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.'

--schemaSource <db-name>

๋ฒ„์ „ 2.11์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋จ.

์Šคํ‚ค๋งˆ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ sample ๋ช…๋ น์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

--ssl

Default(๊ธฐ๋ณธ๊ฐ’): False

mongodrdl๊ฐ€ MongoDB ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•  ๋•Œ TLS/SSL์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

--sslCAFile <filename>

์ธ์ฆ ๊ธฐ๊ด€์˜ ๋ฃจํŠธ ์ธ์ฆ์„œ ์ฒด์ธ์„ ํฌํ•จํ•˜๋Š” MongoDB ์ธ์Šคํ„ด์Šค์˜ .pem ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ด .pem ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

mongod ๋ฐ mongos ์— ๋Œ€ํ•œ SSL ์—ฐ๊ฒฐ( --ssl )์˜ ๊ฒฝ์šฐ mongodrdl ๊ฐ€ --sslCAFile ์—†์ด ์‹คํ–‰๋˜๋ฉด mongodrdl ๋Š” ์„œ๋ฒ„ ์ธ์ฆ์„œ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋งŒ๋ฃŒ๋œ mongod ๋ฐ mongos ์ธ์ฆ์„œ๋Š” ๋ฌผ๋ก  ์œ ํšจํ•œ mongod ๋˜๋Š” mongos ์ธ์Šคํ„ด์Šค๋กœ ๊ฐ€์žฅํ•˜๋Š” ์™ธ๋ถ€ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ทจ์•ฝ์„ฑ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์นจ์ž… ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„ ์ธ์ฆ์„œ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ํ•ญ์ƒ CA ํŒŒ์ผ์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--sslPEMKeyFile <filename>

MongoDB์— ์—ฐ๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉํ•  mongosqld์˜ TLS/SSL ์ธ์ฆ์„œ์™€ ํ‚ค๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋œ .pem ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋Œ€ ๊ฒฝ๋กœ๋‚˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .pem ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์€ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ net.ssl.allowConnectionsWithoutCertificates ์—†์ด --ssl { ๊ฐ€ mongos ํ™œ์„ฑํ™”๋œ mongod CAFile๋˜๋Š” ์— ์—ฐ๊ฒฐํ•  ๋•Œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค

--sslPEMKeyPassword <password>

MongoDB์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ์„œ์™€ ๋น„๊ณต๊ฐœ ํ‚ค๋ฅผ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--sslCRLFile <filename>

์ธ์ฆ์„œ ํ•ด์ง€ ๋ชฉ๋ก์ด ํฌํ•จ๋œ .pem ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ .pem ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--sslAllowInvalidCertificates

MongoDB ์ธ์Šคํ„ด์Šค๊ฐ€ ์ž˜๋ชป๋œ ์„œ๋ฒ„ SSL/TLS ์ธ์ฆ์„œ๋ฅผ ์ œ์‹œํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. allowInvalidCertificates ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, MongoDB๋Š” ์ž˜๋ชป๋œ ์ธ์ฆ์„œ ์‚ฌ์šฉ์„ ๊ฒฝ๊ณ ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

--sslAllowInvalidHostnames

TLS/SSL ์ธ์ฆ์„œ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด ์ง€์ •๋œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ mongodrdl ๊ฐ€ MongoDB ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

--sslFIPSMode

์„ค์น˜๋œ OpenSSL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ FIPS ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก mongodrdl ์— ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. --sslFIPSMode ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‹œ์Šคํ…œ์— FIPS๋ฅผ ์ค€์ˆ˜ํ•˜๋Š” OpenSSL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>

๊ธฐ๋ณธ๊ฐ’: TLS1_1

mongod ๋˜๋Š” mongos ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ mongodrdl์˜ ์ตœ์†Œ TLS ๋ฒ„์ „์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ TLS1_1์€ TLS ๋ฒ„์ „ 1.1์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

--username <username>, -u <username>

์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --password ๋ฐ --authenticationDatabase ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--password <password>, -p <password>

์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” MongoDB database์— ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --username ๋ฐ --authenticationDatabase ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

--authenticationDatabase <dbname>

์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

--authenticationMechanism <name>

๊ธฐ๋ณธ๊ฐ’: SCRAM-SHA-1

mongodrdl ์ธ์Šคํ„ด์Šค๊ฐ€ mongod ๋˜๋Š” mongos(์„)๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…
RFC 5802 SHA1 ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ‘œ์ค€ Salted Challenge Response ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜.
2๋ฒ„์ „ ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.6: RFC 7677 SHA2 ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ‘œ์ค€ Salted Challenge Response ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜.
PLAIN (LDAP SASL)
LDAP๋ฅผ ์‚ฌ์šฉํ•œ ์™ธ๋ถ€ ์ธ์ฆ. PLAIN ์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. PLAIN ์€(๋Š”) ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ MongoDB Enterprise ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
GSSAPI (Kerberos)
Kerberos๋ฅผ ์‚ฌ์šฉํ•œ ์™ธ๋ถ€ ์ธ์ฆ. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ MongoDB Enterprise ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
--gssapiServiceName <service-name>

๊ธฐ๋ณธ๊ฐ’: mongodb

GSSAPI/Kerberos๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•  ๋•Œ ์‚ฌ์šฉํ•  ์„œ๋น„์Šค ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

--gssapiHostName <hostname>

๊ธฐ๋ณธ๊ฐ’: ์›๊ฒฉ ์„œ๋ฒ„์˜ ์ฃผ์†Œ

GSSAPI/Kerberos๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•  ๋•Œ ์‚ฌ์šฉํ•  ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

BI Connector ๋Š” MongoDB ์ง‘๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ ์„ ์‚ฌ์šฉํ•˜์—ฌ MongoDB database ์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ‚ค๋งˆ์— ํŠน์ˆ˜ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • MongoDB $match ์ฟผ๋ฆฌ string ์„ MongoDB ์ธ์Šคํ„ด์Šค์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--customFilterField ์˜ต์…˜์„ mongodrdl ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • ํ•„ํ„ฐ ํ•„๋“œ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•„๋“œ๋Š” ๋„ค์ดํ‹ฐ๋ธŒ MongoDB $match ๋‹จ๊ณ„๋ฅผ ์ „๋‹ฌํ•˜์—ฌ MongoDB์—์„œ ๋ฐ˜ํ™˜๋œ ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ์ง‘๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. BI Connector๋Š” SQL์—์„œ ์ถ”๊ฐ€ ๋‹จ๊ณ„๋ฅผ ํ‘ธ์‹œํ•˜๊ธฐ ์ „์— ์ด ๋‹จ๊ณ„๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ๋Š” ํ•„๋“œ๊ฐ€ ๊ด€๊ณ„ํ˜• ์Šคํ‚ค๋งˆ์— ๋…ธ์ถœ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ํ•„๋“œ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ง€์ • ํ•„ํ„ฐ ์‚ฌ์šฉ ์˜ˆ์‹œ๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ํ•„ํ„ฐ ์˜ˆ์‹œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

test ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ abc ์ปฌ๋ ‰์…˜์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๋ฌธ์„œ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค:

{
"_id": ObjectId(),
"close": 7.45,
"detail": { "a": 2, "b": 3 }
}

mongodrdl ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ด ์ปฌ๋ ‰์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šคํ‚ค๋งˆ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

mongodrdl -d test -c abc -o schema.drdl

์ƒ์„ฑ๋œ ์Šคํ‚ค๋งˆ ํŒŒ์ผ(schema.drdl)์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค:

schema:
- db: test
tables:
- table: abc
collection: abc
pipeline: []
columns:
- Name: _id
MongoType: bson.ObjectId
SqlName: _id
SqlType: varchar
- Name: close
MongoType: float64
SqlName: close
SqlType: numeric
- Name: detail.a
MongoType: float64
SqlName: detail.a
SqlType: numeric
- Name: detail.b
MongoType: float64
SqlName: detail.b
SqlType: numeric

์ด ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ํ•„๋“œ์— ์‚ฌ์šฉํ•  ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ --customFilterField ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค:

mongodrdl [ other options ] --customFilterField _MONGOFILTER -o schema.drdl

DRDL ํŒŒ์ผ schema.drdl์—๋Š” ์ƒ์„ฑ๋œ ๋ชจ๋“  ํ…Œ์ด๋ธ”์— ๋‹ค์Œ ํ•„๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค:

- Name: _MONGOFILTER
MongoType: mongo.Filter
SqlName: _MONGOFILTER
SqlType: varchar

ํ‘œ์ค€ SQL์— ํŠน์ˆ˜ MongoDB ์ฟผ๋ฆฌ ๋‹จ๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ SQL ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

SELECT <normal>
FROM <tablename>
WHERE <normal conditions> AND
_MONGOFILTER='{ <json string that represents query to use> }'
SELECT name,age
FROM users
WHERE active='t' AND
_MONGOFILTER='{"addr":{"$elemMatch":{"city":"Springfield","state":"CA"}}}'

BI Connector๋Š” ์œ„์˜ SQL์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ MongoDB ์ง‘๊ณ„ ํ‘œํ˜„์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค:

db.users.aggregate([
{$match:{"addr":{"$elemMatch":{"city":"Springfield","state":"CA"}}},
{$match:{"active":true}},
{$project:{"name":1, "age":1}}
]);

๋ชจ๋“  ๋น„์ฆˆ๋‹ˆ์Šค ์ธํ…”๋ฆฌ์ „์Šค ๋„๊ตฌ์—์„œ ํŠน์ˆ˜ ํ•„๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์ผ์น˜ํ•˜๋Š” ๊ฐ’์„ ์œ ํšจํ•œ JSON์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ž‘์€๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์€ ๋ฌธ์ž์—ด๋กœ ์ œ๊ณตํ•˜๋ฉด ์ด ์‚ฌ์šฉ์ž ์ง€์ • ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JSON ๋‚ด์˜ ๋ชจ๋“  ๋”ฐ์˜ดํ‘œ๋Š” ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ ์ด ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ MongoDB ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ mongodrdl ๋ช…๋ น์˜ ์˜ต์…˜์œผ๋กœ ์‚ฌ์šฉ์ž ์ด๋ฆ„, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ฐ ์ธ์ฆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ์ด ํ™œ์„ฑํ™”๋œ mongod ์ธ์Šคํ„ด์Šค์—์„œ .drdl ํŒŒ์ผ์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

mongodrdl --host myhost.example.net:27017 \
--username dbUser \
--password myPassword \
--db reports \
--collection FY2017 \
--authenticationDatabase admin \
--out schema.drdl

MongoDB Atlas ๋Š” MongoDB ์ธ์Šคํ„ด์Šค ์ „์šฉ ์„œ๋ฒ„ ํ”„๋กœ๋น„์ €๋‹์„ ํฌํ•จํ•˜์—ฌ MongoDB ๋ฐฐํฌ๋ฅผ ์‹คํ–‰, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB Atlas๋Š” ํ˜ธ์ŠคํŒ…๋œ BI Connector๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Atlas์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” BI Connector์—์„œ๋Š” mongodrdl ๋ช…๋ น์˜ .drdl ํŒŒ์ผ ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Atlas BI Connector์—๋Š” ์ƒ˜ํ”Œ ์ƒˆ๋กœ ๊ณ ์นจ ๊ฐ„๊ฒฉ๊ณผ ์ƒ˜ํ”Œ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ˜ํ”Œ๋ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Atlas์—์„œ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” BI Connector์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Atlas์šฉ BI Connector๋ฅผ ํ†ตํ•œ ์—ฐ๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

BI Connector๋ฅผ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ ์ค‘์ด๋ฉฐ Atlas ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ .drdl ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

mongodrdl --host <domain0>.mongodb.net:27017,<domain1>.mongodb.net:27017,... \
--username <username> \
--password <password> \
--ssl \
--authenticationDatabase admin \
--db <database> \
--out schema.drdl

๋Œ์•„๊ฐ€๊ธฐ

mongosqld

๋‹ค์Œ

mongotranslate