Skip to content

MongoDB User Guide Kor

Cho HyunJong edited this page Aug 17, 2013 · 10 revisions

Tadpole DB HUB(MongoDB) 사용자 가이드

올챙이는 웹 기반 DB 관리 도구입니다. 웹 브라우저에서 올챙이를 통해 다양한 DB로 접속할 수 있고, 정보의 개방성을 조절할 수 있습니다. 올챙이의 최종 지향은 DB HUB 입니다.

현재 Amazon RDS, CUBRID, MarisDB, MySQL, MSSQL, Oracle, PostgreSQL, SQLite, MongoDB를 지원합니다. 각 Database는 다음버전으로 테스트 되었습니다.

  • Amazon RDS : aws-java-sdk-1.4.7
  • CUBRID : 8.4.x ~
  • Oracle : 10g ~
  • MySQL : 5.4.x ~
  • MariaDB : 5.5.x ~
  • MSSQL : 2000 ~
  • PostgreSQL : 9.1.x ~
  • SQLite : 3.7.2 ~
  • MongoDB : 2.0.5 ~

올챙이는 몇가지 사용자 메뉴얼을 준비 되어 있습니다.

본 문서는 MongoDB 위주로 설명합니다.

목차

설치

  1. JAVA 1.6.x(Mac은 1.7.x) 이상이 설치 되어 있어야 합니다.
  2. 지원시스템 : 데스크톱(Linux, Mac, Windows), Tomcat 6.x
  1. 다운로드 받아서 적당한 디렉토리에 압축을 풉니다.
  2. 사용하시다가 문제나 궁금하신 부분은 다음을 이용하여 주십시오.

시작

독립 실행

  1. TadpoleDBHub-1.x.x\tadpole-standalone.exe 파일을 더블 클릭하여 실행합니다.
  2. 실행 후에 브라우저가 자동으로 실행됩니다.(혹은, TadpoleForDBToolsStartup 파일을 더블 클릭 하여 실행 하실 수 있습니다) 제일 처음 시작 할 때, 엔진이 구동 중이라 웹브라우저에서 페이지를 찾을 수 없다고 나올수도 있습니다. 새로고침 하십시오.
  3. 브라우저를 열고 http://127.0.0.1:10081/tadpole 를 입력하여 시작 하십시오.

ps) 올챙이의 DB는 TadpoleDBHub-1.x.x/configuration/tadpole/db/tadpole-system.db 입니다. 새로운 버전을 설치하고 백업하십시오.

Tomcat 실행

  1. 기존에 올챙이를 실행했던 적이 있다면 apache-tomcat-6.x.x/work/Catalina/localhost/tadpole/eclipse/configuration/tadpole/db/tadpole-system.db 파일을 백업받으세요. apache-tomcat-6.x.x/work의 디렉토리를 삭제하세요.
  2. TadpoleDBHub1.x.x-tadpole.war의 이름을 tadpole.war로 바꾸세요.
  3. WAR파일을 webapp 디렉토리에 두고, 톰켓을 시작하십시오.
  4. 브라우저에서 http://127.0.0.1:8080/tadpole/tadpole 시작하세요.
  5. 기존 디비의 데이터를 업그레이드 하려면 1.에서 백업받은 위치에 백업받은 tadpole-system.db 파일을 놓아두세요.

로그인

Login

  1. 프로그램을 테스트 모드로 동작시키면 다음과 같은 화면이 나타납니다.
  2. 시스템은 기본 유저를 만들어 놓았습니다. 어드민(adi.tadpole@gmail.com/admin), 관리자(manager.tadpole@gmail.com/manager), 개발자(guest.tadpole@gmail.com/guest)이며 로그인 창에 타이핑하여 로그인 할 수 있습니다.
  3. 테스트 모드로 동작할 때는 이메일,패스워드를 타이핑 하지 않아도 시스템을 테스트 해 볼수 있도록 버튼을 만들어 놓았습니다. 메니져 로그인, 개발자 로그인 버튼이 그것입니다. 버튼을 누르면 해당 권한으로 시스템을 사용해 볼 수가 있습니다.
  4. 신규등록은 다음을 참고하세요.

권한

  1. 어드민은 시스템에 등록된 모든 디비(패스워드 제외)와 사용자를 관리 합니다.
  2. 관리자는 사용자 그룹을 관리 합니다. 사용자들과 DB, 리소스등을 공유하며 함께 사용 합니다. 처음 관리자를 만드실때는 프로젝트 그룹 처음등록시 어드민의 허락이 필요합니다. DB를 등록 삭제 할 수 있습니다. 사용자는 디비를 등록 할 수 없습니다.
  3. DBA는 사용자 리스트와 디비를 볼 수 있으며, 사용자가 실행한 쿼리를 관리할 수 있습니다.
  4. 사용자는 실제 사용자 입니다. 사용자는 특정 그룹에 소속 되어야 하며 관리자의 승인 후 로그인 가능합니다. 관리자가 등록해 놓은 디비를 사용할 수 있으며, 쿼리등을 다른 사용자와 공유할 수 있습니다.

올챙이 전체 화면은 다음과 같습니다.

Tadpole part

  1. 툴바 : DB 연결, 저장, 권한 설정(관리자, DBA, 어드민 권한의 사용자일 경우 보여짐), 환경 설정 등을 합니다.
  2. 데이터베이스 목록 : 신규 DB의 등록, 삭제, 사용자 공유데이터가 있습니다.
  3. 오브젝트 탐색기기 : 데이터베이스 목록에서 선택된 DB의 Object(Table, View)등의 목록을 보여 줍니다.
  4. 메인화면 : 디비의 쿼리 에디터, 몽고디비의 프로파일 화면등 주용 작업화면이 표시 됩니다.

툴바

사용자가 빠른 명령을 실행 할 수 있도록 자주 사용하는 기능을 모아 놓았습니다. 사용자 툴바는 권한에 따라 기능이 제한 됩니다. '관리자'인 경우 모든 기능이 가능하지만, '사용자'의 경우는 DB 생성, 삭제, 프로파일 기능은 사용할 수가 없습니다.

toolbar

위의 이미지는 툴바 전체 기능이며 순서 대로 다음과 같습니다.

  • DB연결 창을 엽니다.
  • SQL Editor 창에 열린 데이터를 저장 합니다.
  • '데이터베이스 목록'창에서 선택된 DB의 SQL Editor창을 표시합니다.
  • '데이터베이스 목록'창에서 선택된 DB의 ERD Editor창을 표시합니다.
  • '데이터베이스 목록'창에서 선택된 DB의 공유 자원을 삭제 합니다.
  • 사용자, DB 정보를 화면에 표시합니다.
  • 모든 DB의 Query 정보 히스토리 정보를 표시합니다.
  • 환경 정보 창을 표시합니다.
  • 버그, 기능개선 제안 등록 창을 표시합니다.(Github 계정이 있어야 합니다)
  • 시스템 정보 창을 표시합니다.
  • 종료 버튼입니다.(Tomcat에서 실행하면, 로그 아웃합니다. 독립실행이면 프로그램을 종료합니다.)

데이터베이스 목록

연결된 DB목록이 있습니다. DB를 관리합니다. 또한 등록된 디비는 모든 그룹원이 공유하여 사용 합니다.

디비 등록 및 활용

DB의 등록은 관리자 권한을 가진 사용자만 할 수 있습니다.

디비등록 : 툴바의 connection-toolbar-btn 버튼을 누르세요.

connection dialog

  1. 연결하고자 하는 DB 목록 입니다.
  2. 올챙이에서 관리 하는 시스템 정보 입니다.
  • 운영 타입 : 입력하려는 DB의 운영 타입을 입력합니다.
  • 운영 타입 -> Production Server : 운영 DB를 등록합니다. 운영 DB 일경우 사용자 권한이 유저는 Collection을 삭제 할 수 없습니다.
  • 운영 타입 -> Developer Server : 입력하려는 DB가 개발자용 DB이며 권한에 상관없이 모든것이 가능합니다.
  • 운영 타입 -> Others Server : 입력하려는 DB가 기타 용도 DB이며 권한에 상관없이 모든것이 가능합니다.
  • 그룹 : DB의 컨넥션 정보의 그룹을 입력합니다. 등록 하려는 디비를 그룹별로 관리 할 때 유용하며 업무명 혹은 디비의 용도에 따른 그룹 이름을 지정하여 사용할 수 있습니다.
  • 이름 : DB가 데이터베이스 탐색기에서 표시될 이름을 입력합니다.
  1. 1.에서 선택 된 데이터 베이스 정보를 입력합니다.
  2. 2.에 연결된 정보의 부가 정보 입니다.
  • Readonly Connection : 연결된 디비는 삭제, 수정 조작명령을 할 수 없습니다. SQL Editor에서 SELECT 명령만 가능한 연결을 합니다.
  • Table Filters : 오브젝트 탐색기의 테이블 목록을 필터링 합니다. 즉, 보여주지 않아야 할 테이블 목록을 감출수 있습니다.
  • Show Tables : 오브젝트 탐색기의 테이블 목록을 보여줄지 여부를 설정합니다. 테이블 갯수가 1천개 이상이거나 할때 유묭합니다.
  1. 입력 된 DB를 테스트, 저장, 취소합니다.
  • Test Connection : 2.에 입력한 정보가 올바른지 DB를 연결해서 결과를 보여 줍니다.
  • 확인 : DB를 등록 합니다.
  • 취소 : DB 등록을 취소합니다.

연결된 DB

DB를 등록하면 '데이터베이스 목록' 창에 입력한 그룹에 표시됩니다.

connection-2

  1. DB는 'DB아이콘 [D] 등록이름 (개정정보)' 표시 됩니다. DB name tag
  • 첫 번째는 DB의 종류입니다.
  • [D]는 Developer Server의 약어입니다. Production Server는 [P]로 표시되면 Others Server는 [O]로 표시됩니다.
  • 등록했던 이름 입니다.
  • 등록했던 DB의 계정 정보입니다. (사용자 권한의 유저는 보이지 않습니다)
  1. DB를 선택하면, '오브젝트 탐색기'에 Object(예를 들어. 선택된 DB의 Collections, Indexes, JavaScript)가 표시됩니다.
  2. DB를 더블 클릭하면 DB의 인스턴스 정보, Collection 요약, 디비 락, 리플리카 셋, 샤딩 정보 창이 열립니다.
  3. DB를 선택 후 마우스 오른쪽 버튼을 클릭하면 사용자 권한의 엑션이 표시 됩니다.
  • Refresh : '데이터베이스 목록'창을 최신 정보로 갱신합니다.
  • 웹 콘솔 : MongoDB WebConsole 창이 열립니다.
  • Server Status : DB 프로세스 사용정보 다이얼로그가 보여 집니다.
  • GridFS : GridFS 명령의 결과 다이얼로그가 보여집니다.
  • Top : DB 사용 정보 다이얼로그 오픈됩니다.
  • ERD -> 모든 테이블 ERD : DB의 모든 테이블의 관계를 보여줍니다.
  • ERD -> ERD 기본창 생성 : ERD을 그릴 수 있는 창이 생성 됩니다. 사용자는 '오브젝트 탐색기'에서 테이블들을 가져다 놓을수 있습니다.
  • Administer -> 프로파일 : DB에서 실행 했던 쿼리 정보를 보여줍니다.
  • Administer -> 사용자 관리 : DB 사용자 관리 다이얼로그가 오픈됩니다.
  • Administer -> DB Information : '오브젝트 탐색기'에 Object(예를 들어. 선택된 DB의 Collections, Indexes, JavaScript)가 표시됩니다.
  • Administer -> Session List : DB에서 현재 실행 중인 Session 목록을 보여줍니다.
  • Administer -> 임포트 : 올챙이에 연결된 DB의 데이터를 MongoDB로 데이터를 가져옵니다.
  • Administer -> Delete Database : DB를 삭제합니다. 모든 사용자의 DB가 삭제되니 신중하게 선택해야 합니다.

오브젝트 탐색기

'데이터베이스 목록'에서 DB가 선택되면, Collections, Indexes, JavaScript가 표시됩니다.

mongo object

Filter : Collection을 검색합니다

  1. Collection이 선택되면 Collection의 field정보가 표시됩니다.
  2. Collection을 더블클릭하면 Collection 조회 창이 나타납니다.
  3. Collection을 선택하고 마우스 오른쪽 버튼을 누르면 팝업 메뉴가 나타납니다.
  • Create Collection : Collection을 생성합니다.
  • Drop Collection : Collection을 삭제합니다.
  • Refresh Collection : 현재 창을 최신 정보로 갱신 합니다.
  • Generate Statement : Collection : Collection에 새로운 row를 추가합니다.
  • Rename Collection : Collection 이름을 수정합니다.
  • ReIndex Collection : Connection의 인덱스를 새롭게 구성합니다. Collection에 데이터가 많은 경우 주의가 필요합니다.

Dataabase Information 에디터

연결된 몽고디비의 모든 Collection 정보를 보여 줍니다. 이 화면은 Connectection Manager에서 디비를 더블클릭하여 볼 수 있습니다.

mongodb all connection

  • Name Filter : Collection 이름을 기준으로 필터링 합니다.
  • Collection을 선택하면 해당 Collection의 field정보가 출력됩니다.
  • Collection을 더블 클릭하면 해당 Collection을 검색하는 창으로 이동합니다.
  • 하단에는 DB의 summary정보가 출력됩니다.

Find Collection

Collection 정보를 검색합니다. 기본적으로 JSON 으로 검색 할 수 있는 창이 존재합니다. 기본적인 검색 결과를 Tree, Table형태로 보여줍니다. 에디터에서 Ctrl + Space를 누르면 Field정보가 표시 됩니다.

mongodb find collection

  1. Collection 검색 창
  • 조건은 다음과 같이 입력합니다. op field 가 query인 항목을 검색한다고 하면 다음과 같습니다. {op : 'query'}
  • Find : 검색 정보를 입력 합니다 예를 들어 위의 캡쳐화면에서는 item_id가 7인 정보를 검색하는 예제입니다.
  • Field : 위의 캡쳐화면에서 검색 결과 필드를 quantity를 보여줍니다. 만약에 모든 Field를 보여주려면 입력하지 않습니다.
  • Sort : 위의 캡쳐화면에서 필드 quantity를 내림차순으로 검색합니다.
  • Skip : 검색 결과 중에 Skip합니다.
  • Limit : 검색 결과 중의 조건을 100건 만 표시합니다.
  1. 쿼리 플랜 : 검색 조건의 query explain 정보를 다이얼로그 화면을 오픈합니다.
  • 서버 메시지 : 검색 중에 서버에서 발생한 메시지 다이얼로그 화면을 오픈합니다.
  • 검색 : 검색을 시작합니다.
  1. 검색 결과를 출력합니다.
  • Tree View : 검색 결과를 Tree 형태로 출력합니다. Value클릭하여 값을 수정 할수 있습니다. 결과를 더블클릭하면 JSON형식으로 표시됩니다.
  • Table View : 검색 결과를 Table 형태로 출력합니다. 결과를 더블클릭하면 TREE형식으로 표시됩니다.
  • Tadpole Message : 검색 실패시 정보를 출력합니다.
  1. 검색 결과에 따른 명령을 수행합니다.

GridFS 기능

GridFS은 몽고디비에서 파일을 올리거나 내릴 수 있습니다.

mongodb  gridfs

  1. bucket : 검색 할 bucket 이름
  2. File Name : 검색 할 파일 이름
  3. Skip : 검색 결과 skip 수
  4. Limit : 검색 결과 Limit 수
  5. Search Button : 검색 결과
  6. Insert Button : 입력 다이얼로그
  7. Delete Button : file 선택 후 삭제 버튼
  8. Download Button : file download

Insert 버튼을 클릭하면 다음과 같은 화면이 오픈 됩니다.

gridfa insert

  1. Bucket Name : 저장 할 bucket 이름을 입력합니다.
  2. Select File 버튼 : 업로드 할 파일을 선택합니다.
  3. Upload 버튼 : Select File에서 선택한 파일을 업로드 합니다.
  4. OK 버튼 : 저장 합니다.

Profiling

몽고디비는 실행한 질의를 프로파일 하는 기능이 있습니다.

profiling

  1. Start Profiling 버튼 : 몽고디비의 프로파일을 한번도 수행하지 않았다면 클릭하여 쿼리의 프로파일을 시작합니다.
  2. Stop Profiling 버튼 : 몽고디비의 프로파일을 중지합니다.
  3. Remove Profile Data 버튼 : 프로파일 데이터를 삭제합니다.
  4. Display 텍스트 : 화면 갱신 주기
  5. Great then(millis) 텍스트 : 쿼리 수행 속도
  6. Limit 텍스트 : 쿼리 검색 결과 한도
  7. Start Refresh : Great then, limit 조건으로 검색을 시작합니다.
  8. Stop Refresh : 검색을 중지합니다.

Query가 있는 검색 조건의 경우 쿼리를 튜닝 할 수 있습니다. 튜닝이 필요한 행을 더블 클릭하거나, Show Detail 버튼을 클릭하면 튜닝 화면이 오픈 됩니다.

query tuning

ERD

몽고디비의 컬랙션 정보를 읽어서 다이어그램 형태로 보여집니다. Connection Manager에서 All Table ERD를 클릭하면, 디비의 모든 Collection 를 diagram으로 표현 합니다. Create ERD Diagram을 클릭하면 Object Explorer에서 사용자가 원하는 Collection만 출력 할 수 있습니다.

mongodb erd

Import

올챙이에 연결된 디비의 데이터를 몽고디비로 Import하는 기능입니다. 테이블의 전체 혹은 쿼리를 입력하여 몽고디비에 데이터를 import합니다.

테이블 데이터는 가져올 때는 RDB의 테이블 명을 몽고디비 에서는 Collection 명으로 가져옵니다.

import-table

쿼리 정보를 이용하여 데이터를 임포트 합니다

import-query

Session List

  • MariaDB, MySQL은 Session List를 볼 수 있습니다.

session-list

Session List는 DB에서 실행 중인 Session 목록이 표시됩니다. 장시간 실행 중인 쿼리나 비정상적인 쿼리를 종료 할수 있습니다.

  1. Session List에서 실행할 수 있는 기능을 모아 놓았습니다.
  2. 현재실행 중인 쿼리 목록을 표시합니다.
  3. ②번의 쿼리를 선택하면, 어떤 쿼리가 실행 중인지 실제 SQL 문이 표시됩니다.

User Management

그룹에 사용자 리스트와, DB 리스트를 관리하며 사용자를 추가하거나, 사용중지 상태로 변경 할 수 있습니다. 혹은, 사용자가 실행 했던 쿼리목록을 조회할 수 있으며 이 기능은 관리자와 DBA만 사용 할 수 있습니다.

UserManagement

전체 사용자 리스트가 표시되며 사용자를 더블클릭하면 'Executed SQL Management' 화면이 표시됩니다. 이 화면은 사용자가 실행했던 쿼리를 다시 실행할 수 있습니다.